diff --git a/ai/generativelanguage/apiv1beta/generativelanguagepb/generative_service.pb.go b/ai/generativelanguage/apiv1beta/generativelanguagepb/generative_service.pb.go index 7328ccca79f..1063bcb4619 100755 --- a/ai/generativelanguage/apiv1beta/generativelanguagepb/generative_service.pb.go +++ b/ai/generativelanguage/apiv1beta/generativelanguagepb/generative_service.pb.go @@ -56,6 +56,10 @@ const ( TaskType_CLASSIFICATION TaskType = 4 // Specifies that the embeddings will be used for clustering. TaskType_CLUSTERING TaskType = 5 + // Specifies that the given text will be used for question answering. + TaskType_QUESTION_ANSWERING TaskType = 6 + // Specifies that the given text will be used for fact verification. + TaskType_FACT_VERIFICATION TaskType = 7 ) // Enum value maps for TaskType. @@ -67,6 +71,8 @@ var ( 3: "SEMANTIC_SIMILARITY", 4: "CLASSIFICATION", 5: "CLUSTERING", + 6: "QUESTION_ANSWERING", + 7: "FACT_VERIFICATION", } TaskType_value = map[string]int32{ "TASK_TYPE_UNSPECIFIED": 0, @@ -75,6 +81,8 @@ var ( "SEMANTIC_SIMILARITY": 3, "CLASSIFICATION": 4, "CLUSTERING": 5, + "QUESTION_ANSWERING": 6, + "FACT_VERIFICATION": 7, } ) @@ -490,7 +498,7 @@ type GenerationConfig struct { // Note: The default value varies by model, see the `Model.temperature` // attribute of the `Model` returned from the `getModel` function. // - // Values can range from [0.0, infinity). + // Values can range from [0.0, 2.0]. Temperature *float32 `protobuf:"fixed32,5,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` // Optional. The maximum cumulative probability of tokens to consider when // sampling. @@ -507,13 +515,20 @@ type GenerationConfig struct { TopP *float32 `protobuf:"fixed32,6,opt,name=top_p,json=topP,proto3,oneof" json:"top_p,omitempty"` // Optional. The maximum number of tokens to consider when sampling. // - // The model uses combined Top-k and nucleus sampling. - // + // Models use nucleus sampling or combined Top-k and nucleus sampling. // Top-k sampling considers the set of `top_k` most probable tokens. + // Models running with nucleus sampling don't allow top_k setting. // // Note: The default value varies by model, see the `Model.top_k` - // attribute of the `Model` returned from the `getModel` function. + // attribute of the `Model` returned from the `getModel` function. Empty + // `top_k` field in `Model` indicates the model doesn't apply top-k sampling + // and doesn't allow setting `top_k` on requests. TopK *int32 `protobuf:"varint,7,opt,name=top_k,json=topK,proto3,oneof" json:"top_k,omitempty"` + // Optional. Output response mimetype of the generated candidate text. + // Supported mimetype: + // `text/plain`: (default) Text output. + // `application/json`: JSON response in the candidates. + ResponseMimeType string `protobuf:"bytes,13,opt,name=response_mime_type,json=responseMimeType,proto3" json:"response_mime_type,omitempty"` } func (x *GenerationConfig) Reset() { @@ -590,6 +605,13 @@ func (x *GenerationConfig) GetTopK() int32 { return 0 } +func (x *GenerationConfig) GetResponseMimeType() string { + if x != nil { + return x.ResponseMimeType + } + return "" +} + // Configuration for retrieving grounding content from a `Corpus` or // `Document` created using the Semantic Retriever API. type SemanticRetrieverConfig struct { @@ -1278,6 +1300,10 @@ type EmbedContentRequest struct { // Note: Specifying a `title` for `RETRIEVAL_DOCUMENT` provides better quality // embeddings for retrieval. Title *string `protobuf:"bytes,4,opt,name=title,proto3,oneof" json:"title,omitempty"` + // Optional. Optional reduced dimension for the output embedding. If set, + // excessive values in the output embedding are truncated from the end. + // Supported by `models/text-embedding-latest`. + OutputDimensionality *int32 `protobuf:"varint,5,opt,name=output_dimensionality,json=outputDimensionality,proto3,oneof" json:"output_dimensionality,omitempty"` } func (x *EmbedContentRequest) Reset() { @@ -1340,6 +1366,13 @@ func (x *EmbedContentRequest) GetTitle() string { return "" } +func (x *EmbedContentRequest) GetOutputDimensionality() int32 { + if x != nil && x.OutputDimensionality != nil { + return *x.OutputDimensionality + } + return 0 +} + // A list of floats representing an embedding. type ContentEmbedding struct { state protoimpl.MessageState @@ -1987,7 +2020,7 @@ var file_google_ai_generativelanguage_v1beta_generative_service_proto_rawDesc = 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xdf, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x92, 0x03, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x6e, @@ -2004,417 +2037,428 @@ var file_google_ai_generativelanguage_v1beta_generative_service_proto_rawDesc = 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x50, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x04, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4b, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, - 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x22, 0x8b, 0x03, 0x0a, 0x17, 0x53, 0x65, 0x6d, - 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x47, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x63, 0x0a, 0x10, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x32, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, - 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, - 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x15, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, - 0x75, 0x6e, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x91, 0x04, 0x0a, 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, - 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x74, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x66, 0x65, 0x65, - 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x1a, 0xaf, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x7f, 0x0a, 0x0c, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0e, - 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, - 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x42, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, 0x10, 0x01, 0x12, - 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x22, 0xbc, 0x05, 0x0a, 0x09, 0x43, - 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x04, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x5f, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x22, 0x8b, 0x03, 0x0a, 0x17, + 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x63, 0x0a, + 0x10, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x32, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x17, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x15, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x1a, 0x0a, + 0x18, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x91, 0x04, 0x0a, 0x17, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, - 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, + 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0e, 0x70, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x1a, 0xaf, 0x02, 0x0a, 0x0e, + 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x7f, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, + 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, + 0x6b, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, 0x61, 0x66, 0x65, - 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x67, 0x0a, 0x11, 0x63, 0x69, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x69, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x10, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x75, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x6e, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, - 0x1d, 0x0a, 0x19, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x58, 0x5f, - 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, - 0x54, 0x59, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x43, 0x49, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x05, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xd9, 0x03, 0x0a, 0x13, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x7a, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, + 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x42, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x22, 0xbc, 0x05, + 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x00, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x48, 0x00, 0x52, 0x10, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x8b, 0x01, - 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, - 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x68, 0x75, 0x6e, - 0x6b, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x5c, 0x0a, 0x12, 0x47, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x61, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, - 0x70, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x6d, - 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x68, - 0x75, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x42, 0x08, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, - 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x22, 0xfc, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x0f, - 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, - 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x48, 0x00, 0x52, - 0x0e, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x6d, 0x0a, 0x12, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, + 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0xe0, 0x41, + 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, + 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x67, 0x0a, 0x11, + 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x10, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x75, 0x0a, 0x16, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x11, 0x73, 0x65, 0x6d, - 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x12, 0x45, - 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x4d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x0c, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, + 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, + 0x41, 0x58, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, + 0x41, 0x46, 0x45, 0x54, 0x59, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x43, 0x49, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, + 0x10, 0x05, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xd9, 0x03, 0x0a, + 0x13, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x7a, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x48, 0x00, 0x52, 0x10, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x8b, 0x01, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x2e, 0x53, 0x65, + 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, + 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x5c, + 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, + 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x50, 0x0a, 0x16, + 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x72, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x42, 0x08, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x5a, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, + 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xfc, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x61, 0x0a, 0x0f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x12, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x11, + 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x72, 0x12, 0x45, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x4d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x74, 0x79, - 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, - 0x74, 0x79, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x0c, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, - 0x01, 0x01, 0x22, 0x59, 0x0a, 0x0b, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, - 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x59, 0x4c, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0f, 0x0a, 0x0b, 0x41, 0x42, 0x53, 0x54, 0x52, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x54, 0x52, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, - 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x45, 0x10, 0x03, 0x42, 0x12, 0x0a, - 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x22, 0x91, 0x05, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, - 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x61, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x16, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x15, 0x61, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, - 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, + 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, + 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, + 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x0b, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x88, 0x01, 0x01, 0x22, 0x59, 0x0a, 0x0b, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, + 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x59, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x42, 0x53, 0x54, 0x52, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x54, 0x52, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x45, 0x10, 0x03, + 0x42, 0x12, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x22, 0x91, 0x05, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x46, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x16, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x15, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x0e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x48, 0x01, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, + 0x6b, 0x88, 0x01, 0x01, 0x1a, 0xc3, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, + 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x82, 0x01, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, - 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x88, 0x01, - 0x01, 0x1a, 0xc3, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, - 0x61, 0x63, 0x6b, 0x12, 0x82, 0x01, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x65, 0x65, - 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x61, 0x66, 0x65, - 0x74, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x22, 0x42, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, - 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x65, 0x65, - 0x64, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xb7, 0x02, 0x0a, 0x13, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, - 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, - 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, - 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x54, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, - 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x14, 0x45, - 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xbd, 0x01, - 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x05, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x12, 0x59, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x78, 0x0a, - 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0a, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x6d, 0x62, - 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, - 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x4d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x22, 0x38, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2a, 0x8f, - 0x01, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, - 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, - 0x56, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x52, - 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, - 0x54, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x4d, 0x41, 0x4e, 0x54, 0x49, 0x43, 0x5f, - 0x53, 0x49, 0x4d, 0x49, 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, - 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, - 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, - 0x32, 0x81, 0x0b, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x86, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0e, 0x73, + 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x42, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, + 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x22, 0x90, 0x03, 0x0a, 0x13, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x45, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x3a, 0x01, - 0x2a, 0x5a, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, - 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x74, 0x75, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, - 0xeb, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x15, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, + 0x52, 0x14, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x6d, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x2a, 0x0a, 0x10, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x14, 0x45, 0x6d, 0x62, 0x65, 0x64, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0xda, 0x41, 0x2b, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x73, - 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2c, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0xe0, 0x01, - 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x01, - 0x12, 0xc5, 0x01, 0x0a, 0x0c, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x19, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x59, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x78, 0x0a, 0x1a, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, - 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6d, 0x62, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0xde, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x47, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x05, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x29, 0x0a, 0x27, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x12, 0x4d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x38, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2a, 0xbe, 0x01, 0x0a, 0x08, 0x54, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x53, 0x4b, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x41, 0x4c, 0x5f, + 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x54, 0x52, 0x49, + 0x45, 0x56, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x53, 0x45, 0x4d, 0x41, 0x4e, 0x54, 0x49, 0x43, 0x5f, 0x53, 0x49, 0x4d, 0x49, + 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, + 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, + 0x51, 0x55, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x32, 0x81, 0x0b, 0x0a, 0x11, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x86, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, + 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x78, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x3a, 0x01, 0x2a, 0x5a, 0x32, 0x3a, 0x01, + 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x3d, 0x74, 0x75, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x22, 0x28, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0xeb, 0x01, 0x0a, 0x0e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x3a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0xda, 0x41, 0x2b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, + 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2c, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, + 0x27, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0xe0, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, - 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, - 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x24, - 0xca, 0x41, 0x21, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0xa2, 0x01, 0x0a, 0x27, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0xda, + 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0xc5, 0x01, 0x0a, 0x0c, + 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x40, 0xda, 0x41, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0xde, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x42, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0xda, 0x41, 0x0e, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, + 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x3d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x24, 0xca, 0x41, 0x21, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, + 0xa2, 0x01, 0x0a, 0x27, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, + 0x69, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x16, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x2f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x70, 0x62, 0x3b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x67, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ai/generativelanguage/apiv1beta/generativelanguagepb/model.pb.go b/ai/generativelanguage/apiv1beta/generativelanguagepb/model.pb.go index ea5c9b518b3..38cb0c17963 100755 --- a/ai/generativelanguage/apiv1beta/generativelanguagepb/model.pb.go +++ b/ai/generativelanguage/apiv1beta/generativelanguagepb/model.pb.go @@ -98,6 +98,8 @@ type Model struct { // Top-k sampling considers the set of `top_k` most probable tokens. // This value specifies default to be used by the backend while making the // call to the model. + // If empty, indicates the model doesn't use top-k sampling, and `top_k` isn't + // allowed as a generation parameter. TopK *int32 `protobuf:"varint,11,opt,name=top_k,json=topK,proto3,oneof" json:"top_k,omitempty"` } diff --git a/batch/apiv1/batchpb/job.pb.go b/batch/apiv1/batchpb/job.pb.go index 5e826198652..7ae87eddff5 100755 --- a/batch/apiv1/batchpb/job.pb.go +++ b/batch/apiv1/batchpb/job.pb.go @@ -713,7 +713,17 @@ type AllocationPolicy struct { // Describe instances that can be created by this AllocationPolicy. // Only instances[0] is supported now. Instances []*AllocationPolicy_InstancePolicyOrTemplate `protobuf:"bytes,8,rep,name=instances,proto3" json:"instances,omitempty"` - // Service account that VMs will run as. + // Defines the service account for Batch-created VMs. If omitted, the [default + // Compute Engine service + // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) + // is used. Must match the service account specified in any used instance + // template configured in the Batch job. + // + // Includes the following fields: + // - email: The service account's email address. If not set, the default + // Compute Engine service account is used. + // - scopes: Additional OAuth scopes to grant the service account, beyond the + // default cloud-platform scope. (list of strings) ServiceAccount *ServiceAccount `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` // Labels applied to all VM instances and other resources // created by AllocationPolicy. @@ -981,13 +991,9 @@ type ServiceAccount struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Email address of the service account. If not specified, the default - // Compute Engine service account for the project will be used. If instance - // template is being used, the service account has to be specified in the - // instance template and it has to match the email field here. + // Email address of the service account. Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - // List of scopes to be enabled for this service account on the VM, in - // addition to the cloud-platform API scope that will be added by default. + // List of scopes to be enabled for this service account. Scopes []string `protobuf:"bytes,2,rep,name=scopes,proto3" json:"scopes,omitempty"` } diff --git a/discoveryengine/apiv1beta/auxiliary.go b/discoveryengine/apiv1beta/auxiliary.go index dcf5ce13893..8c755f2879e 100755 --- a/discoveryengine/apiv1beta/auxiliary.go +++ b/discoveryengine/apiv1beta/auxiliary.go @@ -1199,6 +1199,70 @@ func (op *TrainCustomModelOperation) Name() string { return op.lro.Name() } +// TuneEngineOperation manages a long-running operation from TuneEngine. +type TuneEngineOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *TuneEngineOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*discoveryenginepb.TuneEngineResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp discoveryenginepb.TuneEngineResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *TuneEngineOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*discoveryenginepb.TuneEngineResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp discoveryenginepb.TuneEngineResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *TuneEngineOperation) Metadata() (*discoveryenginepb.TuneEngineMetadata, error) { + var meta discoveryenginepb.TuneEngineMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *TuneEngineOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *TuneEngineOperation) Name() string { + return op.lro.Name() +} + // UpdateSchemaOperation manages a long-running operation from UpdateSchema. type UpdateSchemaOperation struct { lro *longrunning.Operation @@ -1703,6 +1767,53 @@ func (it *ServingConfigIterator) takeBuf() interface{} { return b } +// SessionIterator manages a stream of *discoveryenginepb.Session. +type SessionIterator struct { + items []*discoveryenginepb.Session + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*discoveryenginepb.Session, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SessionIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *SessionIterator) Next() (*discoveryenginepb.Session, error) { + var item *discoveryenginepb.Session + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SessionIterator) bufLen() int { + return len(it.items) +} + +func (it *SessionIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + // TargetSiteIterator manages a stream of *discoveryenginepb.TargetSite. type TargetSiteIterator struct { items []*discoveryenginepb.TargetSite diff --git a/discoveryengine/apiv1beta/conversational_search_client.go b/discoveryengine/apiv1beta/conversational_search_client.go index a1e90123841..cbf988ae649 100755 --- a/discoveryengine/apiv1beta/conversational_search_client.go +++ b/discoveryengine/apiv1beta/conversational_search_client.go @@ -51,6 +51,13 @@ type ConversationalSearchCallOptions struct { UpdateConversation []gax.CallOption GetConversation []gax.CallOption ListConversations []gax.CallOption + AnswerQuery []gax.CallOption + GetAnswer []gax.CallOption + CreateSession []gax.CallOption + DeleteSession []gax.CallOption + UpdateSession []gax.CallOption + GetSession []gax.CallOption + ListSessions []gax.CallOption GetOperation []gax.CallOption ListOperations []gax.CallOption } @@ -143,6 +150,90 @@ func defaultConversationalSearchCallOptions() *ConversationalSearchCallOptions { }) }), }, + AnswerQuery: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetAnswer: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListSessions: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, GetOperation: []gax.CallOption{ gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { @@ -238,6 +329,83 @@ func defaultConversationalSearchRESTCallOptions() *ConversationalSearchCallOptio http.StatusServiceUnavailable) }), }, + AnswerQuery: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetAnswer: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetSession: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListSessions: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, GetOperation: []gax.CallOption{ gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { @@ -274,6 +442,13 @@ type internalConversationalSearchClient interface { UpdateConversation(context.Context, *discoveryenginepb.UpdateConversationRequest, ...gax.CallOption) (*discoveryenginepb.Conversation, error) GetConversation(context.Context, *discoveryenginepb.GetConversationRequest, ...gax.CallOption) (*discoveryenginepb.Conversation, error) ListConversations(context.Context, *discoveryenginepb.ListConversationsRequest, ...gax.CallOption) *ConversationIterator + AnswerQuery(context.Context, *discoveryenginepb.AnswerQueryRequest, ...gax.CallOption) (*discoveryenginepb.AnswerQueryResponse, error) + GetAnswer(context.Context, *discoveryenginepb.GetAnswerRequest, ...gax.CallOption) (*discoveryenginepb.Answer, error) + CreateSession(context.Context, *discoveryenginepb.CreateSessionRequest, ...gax.CallOption) (*discoveryenginepb.Session, error) + DeleteSession(context.Context, *discoveryenginepb.DeleteSessionRequest, ...gax.CallOption) error + UpdateSession(context.Context, *discoveryenginepb.UpdateSessionRequest, ...gax.CallOption) (*discoveryenginepb.Session, error) + GetSession(context.Context, *discoveryenginepb.GetSessionRequest, ...gax.CallOption) (*discoveryenginepb.Session, error) + ListSessions(context.Context, *discoveryenginepb.ListSessionsRequest, ...gax.CallOption) *SessionIterator GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator } @@ -355,6 +530,52 @@ func (c *ConversationalSearchClient) ListConversations(ctx context.Context, req return c.internalClient.ListConversations(ctx, req, opts...) } +// AnswerQuery answer query method. +func (c *ConversationalSearchClient) AnswerQuery(ctx context.Context, req *discoveryenginepb.AnswerQueryRequest, opts ...gax.CallOption) (*discoveryenginepb.AnswerQueryResponse, error) { + return c.internalClient.AnswerQuery(ctx, req, opts...) +} + +// GetAnswer gets a Answer. +func (c *ConversationalSearchClient) GetAnswer(ctx context.Context, req *discoveryenginepb.GetAnswerRequest, opts ...gax.CallOption) (*discoveryenginepb.Answer, error) { + return c.internalClient.GetAnswer(ctx, req, opts...) +} + +// CreateSession creates a Session. +// +// If the Session to create +// already exists, an ALREADY_EXISTS error is returned. +func (c *ConversationalSearchClient) CreateSession(ctx context.Context, req *discoveryenginepb.CreateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + return c.internalClient.CreateSession(ctx, req, opts...) +} + +// DeleteSession deletes a Session. +// +// If the Session to delete +// does not exist, a NOT_FOUND error is returned. +func (c *ConversationalSearchClient) DeleteSession(ctx context.Context, req *discoveryenginepb.DeleteSessionRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteSession(ctx, req, opts...) +} + +// UpdateSession updates a Session. +// +// Session action type cannot +// be changed. If the Session +// to update does not exist, a NOT_FOUND error is returned. +func (c *ConversationalSearchClient) UpdateSession(ctx context.Context, req *discoveryenginepb.UpdateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + return c.internalClient.UpdateSession(ctx, req, opts...) +} + +// GetSession gets a Session. +func (c *ConversationalSearchClient) GetSession(ctx context.Context, req *discoveryenginepb.GetSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + return c.internalClient.GetSession(ctx, req, opts...) +} + +// ListSessions lists all Sessions by their parent +// DataStore. +func (c *ConversationalSearchClient) ListSessions(ctx context.Context, req *discoveryenginepb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + return c.internalClient.ListSessions(ctx, req, opts...) +} + // GetOperation is a utility method from google.longrunning.Operations. func (c *ConversationalSearchClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { return c.internalClient.GetOperation(ctx, req, opts...) @@ -642,16 +863,34 @@ func (c *conversationalSearchGRPCClient) ListConversations(ctx context.Context, return it } -func (c *conversationalSearchGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { +func (c *conversationalSearchGRPCClient) AnswerQuery(ctx context.Context, req *discoveryenginepb.AnswerQueryRequest, opts ...gax.CallOption) (*discoveryenginepb.AnswerQueryResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "serving_config", url.QueryEscape(req.GetServingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).AnswerQuery[0:len((*c.CallOptions).AnswerQuery):len((*c.CallOptions).AnswerQuery)], opts...) + var resp *discoveryenginepb.AnswerQueryResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.conversationalSearchClient.AnswerQuery(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *conversationalSearchGRPCClient) GetAnswer(ctx context.Context, req *discoveryenginepb.GetAnswerRequest, opts ...gax.CallOption) (*discoveryenginepb.Answer, error) { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} hds = append(c.xGoogHeaders, hds...) ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) - opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) - var resp *longrunningpb.Operation + opts = append((*c.CallOptions).GetAnswer[0:len((*c.CallOptions).GetAnswer):len((*c.CallOptions).GetAnswer)], opts...) + var resp *discoveryenginepb.Answer err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error - resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + resp, err = c.conversationalSearchClient.GetAnswer(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { @@ -660,16 +899,84 @@ func (c *conversationalSearchGRPCClient) GetOperation(ctx context.Context, req * return resp, nil } -func (c *conversationalSearchGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { +func (c *conversationalSearchGRPCClient) CreateSession(ctx context.Context, req *discoveryenginepb.CreateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateSession[0:len((*c.CallOptions).CreateSession):len((*c.CallOptions).CreateSession)], opts...) + var resp *discoveryenginepb.Session + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.conversationalSearchClient.CreateSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *conversationalSearchGRPCClient) DeleteSession(ctx context.Context, req *discoveryenginepb.DeleteSessionRequest, opts ...gax.CallOption) error { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} hds = append(c.xGoogHeaders, hds...) ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) - opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) - it := &OperationIterator{} - req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) - it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { - resp := &longrunningpb.ListOperationsResponse{} + opts = append((*c.CallOptions).DeleteSession[0:len((*c.CallOptions).DeleteSession):len((*c.CallOptions).DeleteSession)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.conversationalSearchClient.DeleteSession(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *conversationalSearchGRPCClient) UpdateSession(ctx context.Context, req *discoveryenginepb.UpdateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "session.name", url.QueryEscape(req.GetSession().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSession[0:len((*c.CallOptions).UpdateSession):len((*c.CallOptions).UpdateSession)], opts...) + var resp *discoveryenginepb.Session + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.conversationalSearchClient.UpdateSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *conversationalSearchGRPCClient) GetSession(ctx context.Context, req *discoveryenginepb.GetSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetSession[0:len((*c.CallOptions).GetSession):len((*c.CallOptions).GetSession)], opts...) + var resp *discoveryenginepb.Session + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.conversationalSearchClient.GetSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *conversationalSearchGRPCClient) ListSessions(ctx context.Context, req *discoveryenginepb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListSessions[0:len((*c.CallOptions).ListSessions):len((*c.CallOptions).ListSessions)], opts...) + it := &SessionIterator{} + req = proto.Clone(req).(*discoveryenginepb.ListSessionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*discoveryenginepb.Session, string, error) { + resp := &discoveryenginepb.ListSessionsResponse{} if pageToken != "" { req.PageToken = pageToken } @@ -680,7 +987,7 @@ func (c *conversationalSearchGRPCClient) ListOperations(ctx context.Context, req } err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { var err error - resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + resp, err = c.conversationalSearchClient.ListSessions(ctx, req, settings.GRPC...) return err }, opts...) if err != nil { @@ -688,7 +995,7 @@ func (c *conversationalSearchGRPCClient) ListOperations(ctx context.Context, req } it.Response = resp - return resp.GetOperations(), resp.GetNextPageToken(), nil + return resp.GetSessions(), resp.GetNextPageToken(), nil } fetch := func(pageSize int, pageToken string) (string, error) { items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) @@ -706,18 +1013,82 @@ func (c *conversationalSearchGRPCClient) ListOperations(ctx context.Context, req return it } -// ConverseConversation converses a conversation. -func (c *conversationalSearchRESTClient) ConverseConversation(ctx context.Context, req *discoveryenginepb.ConverseConversationRequest, opts ...gax.CallOption) (*discoveryenginepb.ConverseConversationResponse, error) { - m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} - jsonReq, err := m.Marshal(req) - if err != nil { - return nil, err - } +func (c *conversationalSearchGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} - baseUrl, err := url.Parse(c.endpoint) - if err != nil { - return nil, err - } + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *conversationalSearchGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// ConverseConversation converses a conversation. +func (c *conversationalSearchRESTClient) ConverseConversation(ctx context.Context, req *discoveryenginepb.ConverseConversationRequest, opts ...gax.CallOption) (*discoveryenginepb.ConverseConversationResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } baseUrl.Path += fmt.Sprintf("/v1beta/%v:converse", req.GetName()) params := url.Values{} @@ -1122,6 +1493,481 @@ func (c *conversationalSearchRESTClient) ListConversations(ctx context.Context, return it } +// AnswerQuery answer query method. +func (c *conversationalSearchRESTClient) AnswerQuery(ctx context.Context, req *discoveryenginepb.AnswerQueryRequest, opts ...gax.CallOption) (*discoveryenginepb.AnswerQueryResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:answer", req.GetServingConfig()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "serving_config", url.QueryEscape(req.GetServingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).AnswerQuery[0:len((*c.CallOptions).AnswerQuery):len((*c.CallOptions).AnswerQuery)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.AnswerQueryResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetAnswer gets a Answer. +func (c *conversationalSearchRESTClient) GetAnswer(ctx context.Context, req *discoveryenginepb.GetAnswerRequest, opts ...gax.CallOption) (*discoveryenginepb.Answer, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetAnswer[0:len((*c.CallOptions).GetAnswer):len((*c.CallOptions).GetAnswer)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Answer{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateSession creates a Session. +// +// If the Session to create +// already exists, an ALREADY_EXISTS error is returned. +func (c *conversationalSearchRESTClient) CreateSession(ctx context.Context, req *discoveryenginepb.CreateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSession() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v/sessions", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).CreateSession[0:len((*c.CallOptions).CreateSession):len((*c.CallOptions).CreateSession)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Session{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// DeleteSession deletes a Session. +// +// If the Session to delete +// does not exist, a NOT_FOUND error is returned. +func (c *conversationalSearchRESTClient) DeleteSession(ctx context.Context, req *discoveryenginepb.DeleteSessionRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + // Returns nil if there is no error, otherwise wraps + // the response code and body into a non-nil error + return googleapi.CheckResponse(httpRsp) + }, opts...) +} + +// UpdateSession updates a Session. +// +// Session action type cannot +// be changed. If the Session +// to update does not exist, a NOT_FOUND error is returned. +func (c *conversationalSearchRESTClient) UpdateSession(ctx context.Context, req *discoveryenginepb.UpdateSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSession() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetSession().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "session.name", url.QueryEscape(req.GetSession().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateSession[0:len((*c.CallOptions).UpdateSession):len((*c.CallOptions).UpdateSession)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Session{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetSession gets a Session. +func (c *conversationalSearchRESTClient) GetSession(ctx context.Context, req *discoveryenginepb.GetSessionRequest, opts ...gax.CallOption) (*discoveryenginepb.Session, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetSession[0:len((*c.CallOptions).GetSession):len((*c.CallOptions).GetSession)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Session{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListSessions lists all Sessions by their parent +// DataStore. +func (c *conversationalSearchRESTClient) ListSessions(ctx context.Context, req *discoveryenginepb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + it := &SessionIterator{} + req = proto.Clone(req).(*discoveryenginepb.ListSessionsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*discoveryenginepb.Session, string, error) { + resp := &discoveryenginepb.ListSessionsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v/sessions", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetSessions(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + // GetOperation is a utility method from google.longrunning.Operations. func (c *conversationalSearchRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { baseUrl, err := url.Parse(c.endpoint) diff --git a/discoveryengine/apiv1beta/conversational_search_client_example_test.go b/discoveryengine/apiv1beta/conversational_search_client_example_test.go index c6135f3f77b..e67053b5605 100644 --- a/discoveryengine/apiv1beta/conversational_search_client_example_test.go +++ b/discoveryengine/apiv1beta/conversational_search_client_example_test.go @@ -59,6 +59,31 @@ func ExampleNewConversationalSearchRESTClient() { _ = c } +func ExampleConversationalSearchClient_AnswerQuery() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.AnswerQueryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#AnswerQueryRequest. + } + resp, err := c.AnswerQuery(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleConversationalSearchClient_ConverseConversation() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -109,6 +134,31 @@ func ExampleConversationalSearchClient_CreateConversation() { _ = resp } +func ExampleConversationalSearchClient_CreateSession() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.CreateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#CreateSessionRequest. + } + resp, err := c.CreateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleConversationalSearchClient_DeleteConversation() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -132,6 +182,54 @@ func ExampleConversationalSearchClient_DeleteConversation() { } } +func ExampleConversationalSearchClient_DeleteSession() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.DeleteSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#DeleteSessionRequest. + } + err = c.DeleteSession(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleConversationalSearchClient_GetAnswer() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.GetAnswerRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#GetAnswerRequest. + } + resp, err := c.GetAnswer(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleConversationalSearchClient_GetConversation() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -157,6 +255,31 @@ func ExampleConversationalSearchClient_GetConversation() { _ = resp } +func ExampleConversationalSearchClient_GetSession() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.GetSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#GetSessionRequest. + } + resp, err := c.GetSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleConversationalSearchClient_ListConversations() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -194,6 +317,43 @@ func ExampleConversationalSearchClient_ListConversations() { } } +func ExampleConversationalSearchClient_ListSessions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.ListSessionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#ListSessionsRequest. + } + it := c.ListSessions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*discoveryenginepb.ListSessionsResponse) + } +} + func ExampleConversationalSearchClient_UpdateConversation() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -219,6 +379,31 @@ func ExampleConversationalSearchClient_UpdateConversation() { _ = resp } +func ExampleConversationalSearchClient_UpdateSession() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.UpdateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#UpdateSessionRequest. + } + resp, err := c.UpdateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleConversationalSearchClient_GetOperation() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. diff --git a/discoveryengine/apiv1beta/discoveryenginepb/answer.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/answer.pb.go new file mode 100755 index 00000000000..fbb17eb3fa6 --- /dev/null +++ b/discoveryengine/apiv1beta/discoveryenginepb/answer.pb.go @@ -0,0 +1,2098 @@ +// 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.32.0 +// protoc v4.25.2 +// source: google/cloud/discoveryengine/v1beta/answer.proto + +package discoveryenginepb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Enumeration of the state of the answer generation. +type Answer_State int32 + +const ( + // Unknown. + Answer_STATE_UNSPECIFIED Answer_State = 0 + // Answer generation is currently in progress. + Answer_IN_PROGRESS Answer_State = 1 + // Answer generation currently failed. + Answer_FAILED Answer_State = 2 + // Answer generation has succeeded. + Answer_SUCCEEDED Answer_State = 3 +) + +// Enum value maps for Answer_State. +var ( + Answer_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + 2: "FAILED", + 3: "SUCCEEDED", + } + Answer_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + "FAILED": 2, + "SUCCEEDED": 3, + } +) + +func (x Answer_State) Enum() *Answer_State { + p := new(Answer_State) + *p = x + return p +} + +func (x Answer_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Answer_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[0].Descriptor() +} + +func (Answer_State) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[0] +} + +func (x Answer_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Answer_State.Descriptor instead. +func (Answer_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 0} +} + +// An enum for answer skipped reasons. +type Answer_AnswerSkippedReason int32 + +const ( + // Default value. The answer skipped reason is not specified. + Answer_ANSWER_SKIPPED_REASON_UNSPECIFIED Answer_AnswerSkippedReason = 0 + // The adversarial query ignored case. + Answer_ADVERSARIAL_QUERY_IGNORED Answer_AnswerSkippedReason = 1 + // The non-answer seeking query ignored case. + Answer_NON_ANSWER_SEEKING_QUERY_IGNORED Answer_AnswerSkippedReason = 2 + // The out-of-domain query ignored case. + // + // Google skips the answer if there are no high-relevance search results. + Answer_OUT_OF_DOMAIN_QUERY_IGNORED Answer_AnswerSkippedReason = 3 + // The potential policy violation case. + // + // Google skips the answer if there is a potential policy violation + // detected. This includes content that may be violent or toxic. + Answer_POTENTIAL_POLICY_VIOLATION Answer_AnswerSkippedReason = 4 +) + +// Enum value maps for Answer_AnswerSkippedReason. +var ( + Answer_AnswerSkippedReason_name = map[int32]string{ + 0: "ANSWER_SKIPPED_REASON_UNSPECIFIED", + 1: "ADVERSARIAL_QUERY_IGNORED", + 2: "NON_ANSWER_SEEKING_QUERY_IGNORED", + 3: "OUT_OF_DOMAIN_QUERY_IGNORED", + 4: "POTENTIAL_POLICY_VIOLATION", + } + Answer_AnswerSkippedReason_value = map[string]int32{ + "ANSWER_SKIPPED_REASON_UNSPECIFIED": 0, + "ADVERSARIAL_QUERY_IGNORED": 1, + "NON_ANSWER_SEEKING_QUERY_IGNORED": 2, + "OUT_OF_DOMAIN_QUERY_IGNORED": 3, + "POTENTIAL_POLICY_VIOLATION": 4, + } +) + +func (x Answer_AnswerSkippedReason) Enum() *Answer_AnswerSkippedReason { + p := new(Answer_AnswerSkippedReason) + *p = x + return p +} + +func (x Answer_AnswerSkippedReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Answer_AnswerSkippedReason) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[1].Descriptor() +} + +func (Answer_AnswerSkippedReason) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[1] +} + +func (x Answer_AnswerSkippedReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Answer_AnswerSkippedReason.Descriptor instead. +func (Answer_AnswerSkippedReason) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 1} +} + +// Enumeration of the state of the step. +type Answer_Step_State int32 + +const ( + // Unknown. + Answer_Step_STATE_UNSPECIFIED Answer_Step_State = 0 + // Step is currently in progress. + Answer_Step_IN_PROGRESS Answer_Step_State = 1 + // Step currently failed. + Answer_Step_FAILED Answer_Step_State = 2 + // Step has succeeded. + Answer_Step_SUCCEEDED Answer_Step_State = 3 +) + +// Enum value maps for Answer_Step_State. +var ( + Answer_Step_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + 2: "FAILED", + 3: "SUCCEEDED", + } + Answer_Step_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + "FAILED": 2, + "SUCCEEDED": 3, + } +) + +func (x Answer_Step_State) Enum() *Answer_Step_State { + p := new(Answer_Step_State) + *p = x + return p +} + +func (x Answer_Step_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Answer_Step_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[2].Descriptor() +} + +func (Answer_Step_State) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[2] +} + +func (x Answer_Step_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Answer_Step_State.Descriptor instead. +func (Answer_Step_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0} +} + +// Query classification types. +type Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type int32 + +const ( + // Unspecified query classification type. + Answer_QueryUnderstandingInfo_QueryClassificationInfo_TYPE_UNSPECIFIED Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type = 0 + // Adversarial query classification type. + Answer_QueryUnderstandingInfo_QueryClassificationInfo_ADVERSARIAL_QUERY Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type = 1 + // Non-answer-seeking query classification type. + Answer_QueryUnderstandingInfo_QueryClassificationInfo_NON_ANSWER_SEEKING_QUERY Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type = 2 +) + +// Enum value maps for Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type. +var ( + Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "ADVERSARIAL_QUERY", + 2: "NON_ANSWER_SEEKING_QUERY", + } + Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "ADVERSARIAL_QUERY": 1, + "NON_ANSWER_SEEKING_QUERY": 2, + } +) + +func (x Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) Enum() *Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type { + p := new(Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) + *p = x + return p +} + +func (x Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[3].Descriptor() +} + +func (Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes[3] +} + +func (x Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type.Descriptor instead. +func (Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 4, 0, 0} +} + +// Defines an answer. +type Answer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. Fully qualified name + // `project/*/locations/global/collections/{collection}/engines/{engine}/sessions/*/answers/*` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The state of the answer generation. + State Answer_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.discoveryengine.v1beta.Answer_State" json:"state,omitempty"` + // The textual answer. + AnswerText string `protobuf:"bytes,3,opt,name=answer_text,json=answerText,proto3" json:"answer_text,omitempty"` + // Citations. + Citations []*Answer_Citation `protobuf:"bytes,4,rep,name=citations,proto3" json:"citations,omitempty"` + // References. + References []*Answer_Reference `protobuf:"bytes,5,rep,name=references,proto3" json:"references,omitempty"` + // Suggested related questions. + RelatedQuestions []string `protobuf:"bytes,6,rep,name=related_questions,json=relatedQuestions,proto3" json:"related_questions,omitempty"` + // Answer generation steps. + Steps []*Answer_Step `protobuf:"bytes,7,rep,name=steps,proto3" json:"steps,omitempty"` + // Query understanding information. + QueryUnderstandingInfo *Answer_QueryUnderstandingInfo `protobuf:"bytes,10,opt,name=query_understanding_info,json=queryUnderstandingInfo,proto3" json:"query_understanding_info,omitempty"` + // Additional answer-skipped reasons. This provides the reason for ignored + // cases. If nothing is skipped, this field is not set. + AnswerSkippedReasons []Answer_AnswerSkippedReason `protobuf:"varint,11,rep,packed,name=answer_skipped_reasons,json=answerSkippedReasons,proto3,enum=google.cloud.discoveryengine.v1beta.Answer_AnswerSkippedReason" json:"answer_skipped_reasons,omitempty"` + // Output only. Answer creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Answer completed timestamp. + CompleteTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=complete_time,json=completeTime,proto3" json:"complete_time,omitempty"` +} + +func (x *Answer) Reset() { + *x = Answer{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer) ProtoMessage() {} + +func (x *Answer) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer.ProtoReflect.Descriptor instead. +func (*Answer) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0} +} + +func (x *Answer) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Answer) GetState() Answer_State { + if x != nil { + return x.State + } + return Answer_STATE_UNSPECIFIED +} + +func (x *Answer) GetAnswerText() string { + if x != nil { + return x.AnswerText + } + return "" +} + +func (x *Answer) GetCitations() []*Answer_Citation { + if x != nil { + return x.Citations + } + return nil +} + +func (x *Answer) GetReferences() []*Answer_Reference { + if x != nil { + return x.References + } + return nil +} + +func (x *Answer) GetRelatedQuestions() []string { + if x != nil { + return x.RelatedQuestions + } + return nil +} + +func (x *Answer) GetSteps() []*Answer_Step { + if x != nil { + return x.Steps + } + return nil +} + +func (x *Answer) GetQueryUnderstandingInfo() *Answer_QueryUnderstandingInfo { + if x != nil { + return x.QueryUnderstandingInfo + } + return nil +} + +func (x *Answer) GetAnswerSkippedReasons() []Answer_AnswerSkippedReason { + if x != nil { + return x.AnswerSkippedReasons + } + return nil +} + +func (x *Answer) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Answer) GetCompleteTime() *timestamppb.Timestamp { + if x != nil { + return x.CompleteTime + } + return nil +} + +// Citation info for a segment. +type Answer_Citation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Index indicates the start of the segment, measured in bytes (UTF-8 + // 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 []*Answer_CitationSource `protobuf:"bytes,3,rep,name=sources,proto3" json:"sources,omitempty"` +} + +func (x *Answer_Citation) Reset() { + *x = Answer_Citation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Citation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Citation) ProtoMessage() {} + +func (x *Answer_Citation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Citation.ProtoReflect.Descriptor instead. +func (*Answer_Citation) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Answer_Citation) GetStartIndex() int64 { + if x != nil { + return x.StartIndex + } + return 0 +} + +func (x *Answer_Citation) GetEndIndex() int64 { + if x != nil { + return x.EndIndex + } + return 0 +} + +func (x *Answer_Citation) GetSources() []*Answer_CitationSource { + if x != nil { + return x.Sources + } + return nil +} + +// Citation source. +type Answer_CitationSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID of the citation source. + ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` +} + +func (x *Answer_CitationSource) Reset() { + *x = Answer_CitationSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_CitationSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_CitationSource) ProtoMessage() {} + +func (x *Answer_CitationSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_CitationSource.ProtoReflect.Descriptor instead. +func (*Answer_CitationSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *Answer_CitationSource) GetReferenceId() string { + if x != nil { + return x.ReferenceId + } + return "" +} + +// Reference. +type Answer_Reference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Search result content. + // + // Types that are assignable to Content: + // + // *Answer_Reference_UnstructuredDocumentInfo_ + // *Answer_Reference_ChunkInfo_ + Content isAnswer_Reference_Content `protobuf_oneof:"content"` +} + +func (x *Answer_Reference) Reset() { + *x = Answer_Reference{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Reference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Reference) ProtoMessage() {} + +func (x *Answer_Reference) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Reference.ProtoReflect.Descriptor instead. +func (*Answer_Reference) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 2} +} + +func (m *Answer_Reference) GetContent() isAnswer_Reference_Content { + if m != nil { + return m.Content + } + return nil +} + +func (x *Answer_Reference) GetUnstructuredDocumentInfo() *Answer_Reference_UnstructuredDocumentInfo { + if x, ok := x.GetContent().(*Answer_Reference_UnstructuredDocumentInfo_); ok { + return x.UnstructuredDocumentInfo + } + return nil +} + +func (x *Answer_Reference) GetChunkInfo() *Answer_Reference_ChunkInfo { + if x, ok := x.GetContent().(*Answer_Reference_ChunkInfo_); ok { + return x.ChunkInfo + } + return nil +} + +type isAnswer_Reference_Content interface { + isAnswer_Reference_Content() +} + +type Answer_Reference_UnstructuredDocumentInfo_ struct { + // Unstructured document information. + UnstructuredDocumentInfo *Answer_Reference_UnstructuredDocumentInfo `protobuf:"bytes,1,opt,name=unstructured_document_info,json=unstructuredDocumentInfo,proto3,oneof"` +} + +type Answer_Reference_ChunkInfo_ struct { + // Chunk information. + ChunkInfo *Answer_Reference_ChunkInfo `protobuf:"bytes,2,opt,name=chunk_info,json=chunkInfo,proto3,oneof"` +} + +func (*Answer_Reference_UnstructuredDocumentInfo_) isAnswer_Reference_Content() {} + +func (*Answer_Reference_ChunkInfo_) isAnswer_Reference_Content() {} + +// Step information. +type Answer_Step struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The state of the step. + State Answer_Step_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.discoveryengine.v1beta.Answer_Step_State" json:"state,omitempty"` + // The description of the step. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + // The thought of the step. + Thought string `protobuf:"bytes,3,opt,name=thought,proto3" json:"thought,omitempty"` + // Actions. + Actions []*Answer_Step_Action `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"` +} + +func (x *Answer_Step) Reset() { + *x = Answer_Step{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step) ProtoMessage() {} + +func (x *Answer_Step) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step.ProtoReflect.Descriptor instead. +func (*Answer_Step) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *Answer_Step) GetState() Answer_Step_State { + if x != nil { + return x.State + } + return Answer_Step_STATE_UNSPECIFIED +} + +func (x *Answer_Step) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Answer_Step) GetThought() string { + if x != nil { + return x.Thought + } + return "" +} + +func (x *Answer_Step) GetActions() []*Answer_Step_Action { + if x != nil { + return x.Actions + } + return nil +} + +// Query understanding information. +type Answer_QueryUnderstandingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Query classification information. + QueryClassificationInfo []*Answer_QueryUnderstandingInfo_QueryClassificationInfo `protobuf:"bytes,1,rep,name=query_classification_info,json=queryClassificationInfo,proto3" json:"query_classification_info,omitempty"` +} + +func (x *Answer_QueryUnderstandingInfo) Reset() { + *x = Answer_QueryUnderstandingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_QueryUnderstandingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_QueryUnderstandingInfo) ProtoMessage() {} + +func (x *Answer_QueryUnderstandingInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_QueryUnderstandingInfo.ProtoReflect.Descriptor instead. +func (*Answer_QueryUnderstandingInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *Answer_QueryUnderstandingInfo) GetQueryClassificationInfo() []*Answer_QueryUnderstandingInfo_QueryClassificationInfo { + if x != nil { + return x.QueryClassificationInfo + } + return nil +} + +// Unstructured document information. +type Answer_Reference_UnstructuredDocumentInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Document resource name. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // URI for the document. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Title. + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + // List of cited chunk contents derived from document content. + ChunkContents []*Answer_Reference_UnstructuredDocumentInfo_ChunkContent `protobuf:"bytes,4,rep,name=chunk_contents,json=chunkContents,proto3" json:"chunk_contents,omitempty"` +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) Reset() { + *x = Answer_Reference_UnstructuredDocumentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Reference_UnstructuredDocumentInfo) ProtoMessage() {} + +func (x *Answer_Reference_UnstructuredDocumentInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Reference_UnstructuredDocumentInfo.ProtoReflect.Descriptor instead. +func (*Answer_Reference_UnstructuredDocumentInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 2, 0} +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) GetDocument() string { + if x != nil { + return x.Document + } + return "" +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Answer_Reference_UnstructuredDocumentInfo) GetChunkContents() []*Answer_Reference_UnstructuredDocumentInfo_ChunkContent { + if x != nil { + return x.ChunkContents + } + return nil +} + +// Chunk information. +type Answer_Reference_ChunkInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chunk resource name. + Chunk string `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"` + // Chunk textual content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + // Relevance score. + RelevanceScore *float32 `protobuf:"fixed32,3,opt,name=relevance_score,json=relevanceScore,proto3,oneof" json:"relevance_score,omitempty"` + // Document metadata. + DocumentMetadata *Answer_Reference_ChunkInfo_DocumentMetadata `protobuf:"bytes,4,opt,name=document_metadata,json=documentMetadata,proto3" json:"document_metadata,omitempty"` +} + +func (x *Answer_Reference_ChunkInfo) Reset() { + *x = Answer_Reference_ChunkInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Reference_ChunkInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Reference_ChunkInfo) ProtoMessage() {} + +func (x *Answer_Reference_ChunkInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Reference_ChunkInfo.ProtoReflect.Descriptor instead. +func (*Answer_Reference_ChunkInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 2, 1} +} + +func (x *Answer_Reference_ChunkInfo) GetChunk() string { + if x != nil { + return x.Chunk + } + return "" +} + +func (x *Answer_Reference_ChunkInfo) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *Answer_Reference_ChunkInfo) GetRelevanceScore() float32 { + if x != nil && x.RelevanceScore != nil { + return *x.RelevanceScore + } + return 0 +} + +func (x *Answer_Reference_ChunkInfo) GetDocumentMetadata() *Answer_Reference_ChunkInfo_DocumentMetadata { + if x != nil { + return x.DocumentMetadata + } + return nil +} + +// Chunk content. +type Answer_Reference_UnstructuredDocumentInfo_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 *Answer_Reference_UnstructuredDocumentInfo_ChunkContent) Reset() { + *x = Answer_Reference_UnstructuredDocumentInfo_ChunkContent{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Reference_UnstructuredDocumentInfo_ChunkContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Reference_UnstructuredDocumentInfo_ChunkContent) ProtoMessage() {} + +func (x *Answer_Reference_UnstructuredDocumentInfo_ChunkContent) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Reference_UnstructuredDocumentInfo_ChunkContent.ProtoReflect.Descriptor instead. +func (*Answer_Reference_UnstructuredDocumentInfo_ChunkContent) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 2, 0, 0} +} + +func (x *Answer_Reference_UnstructuredDocumentInfo_ChunkContent) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *Answer_Reference_UnstructuredDocumentInfo_ChunkContent) GetPageIdentifier() string { + if x != nil { + return x.PageIdentifier + } + return "" +} + +// Document metadata. +type Answer_Reference_ChunkInfo_DocumentMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Document resource name. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // URI for the document. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Title. + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + // Page identifier. + PageIdentifier string `protobuf:"bytes,4,opt,name=page_identifier,json=pageIdentifier,proto3" json:"page_identifier,omitempty"` +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) Reset() { + *x = Answer_Reference_ChunkInfo_DocumentMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Reference_ChunkInfo_DocumentMetadata) ProtoMessage() {} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Answer_Reference_ChunkInfo_DocumentMetadata.ProtoReflect.Descriptor instead. +func (*Answer_Reference_ChunkInfo_DocumentMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 2, 1, 0} +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) GetDocument() string { + if x != nil { + return x.Document + } + return "" +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Answer_Reference_ChunkInfo_DocumentMetadata) GetPageIdentifier() string { + if x != nil { + return x.PageIdentifier + } + return "" +} + +// Action. +type Answer_Step_Action struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The action. + // + // Types that are assignable to Action: + // + // *Answer_Step_Action_SearchAction_ + Action isAnswer_Step_Action_Action `protobuf_oneof:"action"` + // Observation. + Observation *Answer_Step_Action_Observation `protobuf:"bytes,3,opt,name=observation,proto3" json:"observation,omitempty"` +} + +func (x *Answer_Step_Action) Reset() { + *x = Answer_Step_Action{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action) ProtoMessage() {} + +func (x *Answer_Step_Action) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Answer_Step_Action.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0} +} + +func (m *Answer_Step_Action) GetAction() isAnswer_Step_Action_Action { + if m != nil { + return m.Action + } + return nil +} + +func (x *Answer_Step_Action) GetSearchAction() *Answer_Step_Action_SearchAction { + if x, ok := x.GetAction().(*Answer_Step_Action_SearchAction_); ok { + return x.SearchAction + } + return nil +} + +func (x *Answer_Step_Action) GetObservation() *Answer_Step_Action_Observation { + if x != nil { + return x.Observation + } + return nil +} + +type isAnswer_Step_Action_Action interface { + isAnswer_Step_Action_Action() +} + +type Answer_Step_Action_SearchAction_ struct { + // Search action. + SearchAction *Answer_Step_Action_SearchAction `protobuf:"bytes,2,opt,name=search_action,json=searchAction,proto3,oneof"` +} + +func (*Answer_Step_Action_SearchAction_) isAnswer_Step_Action_Action() {} + +// Search action. +type Answer_Step_Action_SearchAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The query to search. + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` +} + +func (x *Answer_Step_Action_SearchAction) Reset() { + *x = Answer_Step_Action_SearchAction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action_SearchAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action_SearchAction) ProtoMessage() {} + +func (x *Answer_Step_Action_SearchAction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step_Action_SearchAction.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action_SearchAction) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0, 0} +} + +func (x *Answer_Step_Action_SearchAction) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +// Observation. +type Answer_Step_Action_Observation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Search results observed by the search action, it can be snippets info + // or chunk info, depending on the citation type set by the user. + SearchResults []*Answer_Step_Action_Observation_SearchResult `protobuf:"bytes,2,rep,name=search_results,json=searchResults,proto3" json:"search_results,omitempty"` +} + +func (x *Answer_Step_Action_Observation) Reset() { + *x = Answer_Step_Action_Observation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action_Observation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action_Observation) ProtoMessage() {} + +func (x *Answer_Step_Action_Observation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step_Action_Observation.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action_Observation) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0, 1} +} + +func (x *Answer_Step_Action_Observation) GetSearchResults() []*Answer_Step_Action_Observation_SearchResult { + if x != nil { + return x.SearchResults + } + return nil +} + +type Answer_Step_Action_Observation_SearchResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Document resource name. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // URI for the document. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Title. + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + // If citation_type is DOCUMENT_LEVEL_CITATION, populate document + // level snippets. + SnippetInfo []*Answer_Step_Action_Observation_SearchResult_SnippetInfo `protobuf:"bytes,4,rep,name=snippet_info,json=snippetInfo,proto3" json:"snippet_info,omitempty"` + // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, + // populate chunk info. + ChunkInfo []*Answer_Step_Action_Observation_SearchResult_ChunkInfo `protobuf:"bytes,5,rep,name=chunk_info,json=chunkInfo,proto3" json:"chunk_info,omitempty"` +} + +func (x *Answer_Step_Action_Observation_SearchResult) Reset() { + *x = Answer_Step_Action_Observation_SearchResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action_Observation_SearchResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action_Observation_SearchResult) ProtoMessage() {} + +func (x *Answer_Step_Action_Observation_SearchResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step_Action_Observation_SearchResult.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action_Observation_SearchResult) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0, 1, 0} +} + +func (x *Answer_Step_Action_Observation_SearchResult) GetDocument() string { + if x != nil { + return x.Document + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult) GetSnippetInfo() []*Answer_Step_Action_Observation_SearchResult_SnippetInfo { + if x != nil { + return x.SnippetInfo + } + return nil +} + +func (x *Answer_Step_Action_Observation_SearchResult) GetChunkInfo() []*Answer_Step_Action_Observation_SearchResult_ChunkInfo { + if x != nil { + return x.ChunkInfo + } + return nil +} + +// Snippet information. +type Answer_Step_Action_Observation_SearchResult_SnippetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Snippet content. + Snippet string `protobuf:"bytes,1,opt,name=snippet,proto3" json:"snippet,omitempty"` + // Status of the snippet defined by the search team. + SnippetStatus string `protobuf:"bytes,2,opt,name=snippet_status,json=snippetStatus,proto3" json:"snippet_status,omitempty"` +} + +func (x *Answer_Step_Action_Observation_SearchResult_SnippetInfo) Reset() { + *x = Answer_Step_Action_Observation_SearchResult_SnippetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action_Observation_SearchResult_SnippetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action_Observation_SearchResult_SnippetInfo) ProtoMessage() {} + +func (x *Answer_Step_Action_Observation_SearchResult_SnippetInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step_Action_Observation_SearchResult_SnippetInfo.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action_Observation_SearchResult_SnippetInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0, 1, 0, 0} +} + +func (x *Answer_Step_Action_Observation_SearchResult_SnippetInfo) GetSnippet() string { + if x != nil { + return x.Snippet + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult_SnippetInfo) GetSnippetStatus() string { + if x != nil { + return x.SnippetStatus + } + return "" +} + +// Chunk information. +type Answer_Step_Action_Observation_SearchResult_ChunkInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chunk resource name. + Chunk string `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"` + // Chunk textual content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + // Relevance score. + RelevanceScore *float32 `protobuf:"fixed32,3,opt,name=relevance_score,json=relevanceScore,proto3,oneof" json:"relevance_score,omitempty"` +} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) Reset() { + *x = Answer_Step_Action_Observation_SearchResult_ChunkInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_Step_Action_Observation_SearchResult_ChunkInfo) ProtoMessage() {} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_Step_Action_Observation_SearchResult_ChunkInfo.ProtoReflect.Descriptor instead. +func (*Answer_Step_Action_Observation_SearchResult_ChunkInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 3, 0, 1, 0, 1} +} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) GetChunk() string { + if x != nil { + return x.Chunk + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *Answer_Step_Action_Observation_SearchResult_ChunkInfo) GetRelevanceScore() float32 { + if x != nil && x.RelevanceScore != nil { + return *x.RelevanceScore + } + return 0 +} + +// Query classification information. +type Answer_QueryUnderstandingInfo_QueryClassificationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Query classification type. + Type Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.discoveryengine.v1beta.Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type" json:"type,omitempty"` + // Classification output. + Positive bool `protobuf:"varint,2,opt,name=positive,proto3" json:"positive,omitempty"` +} + +func (x *Answer_QueryUnderstandingInfo_QueryClassificationInfo) Reset() { + *x = Answer_QueryUnderstandingInfo_QueryClassificationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Answer_QueryUnderstandingInfo_QueryClassificationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Answer_QueryUnderstandingInfo_QueryClassificationInfo) ProtoMessage() {} + +func (x *Answer_QueryUnderstandingInfo_QueryClassificationInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_answer_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 Answer_QueryUnderstandingInfo_QueryClassificationInfo.ProtoReflect.Descriptor instead. +func (*Answer_QueryUnderstandingInfo_QueryClassificationInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP(), []int{0, 4, 0} +} + +func (x *Answer_QueryUnderstandingInfo_QueryClassificationInfo) GetType() Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type { + if x != nil { + return x.Type + } + return Answer_QueryUnderstandingInfo_QueryClassificationInfo_TYPE_UNSPECIFIED +} + +func (x *Answer_QueryUnderstandingInfo_QueryClassificationInfo) GetPositive() bool { + if x != nil { + return x.Positive + } + return false +} + +var File_google_cloud_discoveryengine_v1beta_answer_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_answer_proto_rawDesc = []byte{ + 0x0a, 0x30, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x23, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x52, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, + 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, + 0x65, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, + 0x70, 0x73, 0x12, 0x7c, 0x0a, 0x18, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, + 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x55, + 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x75, 0x0a, 0x16, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x3f, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x52, 0x14, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, + 0x9e, 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, 0x54, 0x0a, 0x07, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 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, 0x33, 0x0a, 0x0e, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x1a, 0xca, 0x08, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1a, 0x75, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x18, 0x75, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xe4, 0x02, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0e, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5b, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0xd7, 0x03, + 0x0a, 0x09, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x05, 0x63, + 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xfa, 0x41, 0x26, 0x0a, + 0x24, 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, + 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x7d, 0x0a, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x50, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x10, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0xad, 0x01, 0x0a, 0x10, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x1a, 0xe7, 0x09, 0x0a, 0x04, 0x53, 0x74, 0x65, 0x70, 0x12, 0x4c, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, + 0x6f, 0x75, 0x67, 0x68, 0x74, 0x12, 0x51, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x04, 0x20, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb5, 0x07, 0x0a, 0x06, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x65, 0x0a, 0x0b, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x24, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0xa6, 0x05, + 0x0a, 0x0b, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x77, 0x0a, + 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x9d, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x73, + 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, + 0x74, 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x79, 0x0a, 0x0a, + 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x5a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x53, 0x74, + 0x65, 0x70, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x68, + 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x4e, 0x0a, 0x0b, 0x53, 0x6e, 0x69, 0x70, 0x70, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, + 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x7d, 0x0a, 0x09, 0x43, 0x68, 0x75, 0x6e, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, + 0x0e, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x4a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x1a, 0xb1, 0x03, 0x0a, + 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x96, 0x01, 0x0a, 0x19, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, + 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0xfd, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x73, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5f, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, + 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x51, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, + 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, + 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, + 0x5f, 0x53, 0x45, 0x45, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, + 0x22, 0x4a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x22, 0xc2, 0x01, 0x0a, + 0x13, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 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, 0x24, 0x0a, 0x20, 0x4e, 0x4f, + 0x4e, 0x5f, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 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, 0x3a, 0x85, 0x03, 0xea, 0x41, 0x81, 0x03, 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, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, + 0x63, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, + 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x7d, 0x12, 0x7c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x7d, 0x12, 0x75, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x7d, 0x42, 0x92, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0b, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, + 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, + 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_answer_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_answer_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_google_cloud_discoveryengine_v1beta_answer_proto_goTypes = []interface{}{ + (Answer_State)(0), // 0: google.cloud.discoveryengine.v1beta.Answer.State + (Answer_AnswerSkippedReason)(0), // 1: google.cloud.discoveryengine.v1beta.Answer.AnswerSkippedReason + (Answer_Step_State)(0), // 2: google.cloud.discoveryengine.v1beta.Answer.Step.State + (Answer_QueryUnderstandingInfo_QueryClassificationInfo_Type)(0), // 3: google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.QueryClassificationInfo.Type + (*Answer)(nil), // 4: google.cloud.discoveryengine.v1beta.Answer + (*Answer_Citation)(nil), // 5: google.cloud.discoveryengine.v1beta.Answer.Citation + (*Answer_CitationSource)(nil), // 6: google.cloud.discoveryengine.v1beta.Answer.CitationSource + (*Answer_Reference)(nil), // 7: google.cloud.discoveryengine.v1beta.Answer.Reference + (*Answer_Step)(nil), // 8: google.cloud.discoveryengine.v1beta.Answer.Step + (*Answer_QueryUnderstandingInfo)(nil), // 9: google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo + (*Answer_Reference_UnstructuredDocumentInfo)(nil), // 10: google.cloud.discoveryengine.v1beta.Answer.Reference.UnstructuredDocumentInfo + (*Answer_Reference_ChunkInfo)(nil), // 11: google.cloud.discoveryengine.v1beta.Answer.Reference.ChunkInfo + (*Answer_Reference_UnstructuredDocumentInfo_ChunkContent)(nil), // 12: google.cloud.discoveryengine.v1beta.Answer.Reference.UnstructuredDocumentInfo.ChunkContent + (*Answer_Reference_ChunkInfo_DocumentMetadata)(nil), // 13: google.cloud.discoveryengine.v1beta.Answer.Reference.ChunkInfo.DocumentMetadata + (*Answer_Step_Action)(nil), // 14: google.cloud.discoveryengine.v1beta.Answer.Step.Action + (*Answer_Step_Action_SearchAction)(nil), // 15: google.cloud.discoveryengine.v1beta.Answer.Step.Action.SearchAction + (*Answer_Step_Action_Observation)(nil), // 16: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation + (*Answer_Step_Action_Observation_SearchResult)(nil), // 17: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult + (*Answer_Step_Action_Observation_SearchResult_SnippetInfo)(nil), // 18: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.SnippetInfo + (*Answer_Step_Action_Observation_SearchResult_ChunkInfo)(nil), // 19: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.ChunkInfo + (*Answer_QueryUnderstandingInfo_QueryClassificationInfo)(nil), // 20: google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.QueryClassificationInfo + (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp +} +var file_google_cloud_discoveryengine_v1beta_answer_proto_depIdxs = []int32{ + 0, // 0: google.cloud.discoveryengine.v1beta.Answer.state:type_name -> google.cloud.discoveryengine.v1beta.Answer.State + 5, // 1: google.cloud.discoveryengine.v1beta.Answer.citations:type_name -> google.cloud.discoveryengine.v1beta.Answer.Citation + 7, // 2: google.cloud.discoveryengine.v1beta.Answer.references:type_name -> google.cloud.discoveryengine.v1beta.Answer.Reference + 8, // 3: google.cloud.discoveryengine.v1beta.Answer.steps:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step + 9, // 4: google.cloud.discoveryengine.v1beta.Answer.query_understanding_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo + 1, // 5: google.cloud.discoveryengine.v1beta.Answer.answer_skipped_reasons:type_name -> google.cloud.discoveryengine.v1beta.Answer.AnswerSkippedReason + 21, // 6: google.cloud.discoveryengine.v1beta.Answer.create_time:type_name -> google.protobuf.Timestamp + 21, // 7: google.cloud.discoveryengine.v1beta.Answer.complete_time:type_name -> google.protobuf.Timestamp + 6, // 8: google.cloud.discoveryengine.v1beta.Answer.Citation.sources:type_name -> google.cloud.discoveryengine.v1beta.Answer.CitationSource + 10, // 9: google.cloud.discoveryengine.v1beta.Answer.Reference.unstructured_document_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.Reference.UnstructuredDocumentInfo + 11, // 10: google.cloud.discoveryengine.v1beta.Answer.Reference.chunk_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.Reference.ChunkInfo + 2, // 11: google.cloud.discoveryengine.v1beta.Answer.Step.state:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.State + 14, // 12: google.cloud.discoveryengine.v1beta.Answer.Step.actions:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action + 20, // 13: google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.query_classification_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.QueryClassificationInfo + 12, // 14: google.cloud.discoveryengine.v1beta.Answer.Reference.UnstructuredDocumentInfo.chunk_contents:type_name -> google.cloud.discoveryengine.v1beta.Answer.Reference.UnstructuredDocumentInfo.ChunkContent + 13, // 15: google.cloud.discoveryengine.v1beta.Answer.Reference.ChunkInfo.document_metadata:type_name -> google.cloud.discoveryengine.v1beta.Answer.Reference.ChunkInfo.DocumentMetadata + 15, // 16: google.cloud.discoveryengine.v1beta.Answer.Step.Action.search_action:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action.SearchAction + 16, // 17: google.cloud.discoveryengine.v1beta.Answer.Step.Action.observation:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation + 17, // 18: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.search_results:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult + 18, // 19: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.snippet_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.SnippetInfo + 19, // 20: google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.chunk_info:type_name -> google.cloud.discoveryengine.v1beta.Answer.Step.Action.Observation.SearchResult.ChunkInfo + 3, // 21: google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.QueryClassificationInfo.type:type_name -> google.cloud.discoveryengine.v1beta.Answer.QueryUnderstandingInfo.QueryClassificationInfo.Type + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_answer_proto_init() } +func file_google_cloud_discoveryengine_v1beta_answer_proto_init() { + if File_google_cloud_discoveryengine_v1beta_answer_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Citation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_CitationSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Reference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_QueryUnderstandingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Reference_UnstructuredDocumentInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Reference_ChunkInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Reference_UnstructuredDocumentInfo_ChunkContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Reference_ChunkInfo_DocumentMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action_SearchAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action_Observation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action_Observation_SearchResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action_Observation_SearchResult_SnippetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_Step_Action_Observation_SearchResult_ChunkInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Answer_QueryUnderstandingInfo_QueryClassificationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*Answer_Reference_UnstructuredDocumentInfo_)(nil), + (*Answer_Reference_ChunkInfo_)(nil), + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*Answer_Step_Action_SearchAction_)(nil), + } + file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes[15].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_discoveryengine_v1beta_answer_proto_rawDesc, + NumEnums: 4, + NumMessages: 17, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_discoveryengine_v1beta_answer_proto_goTypes, + DependencyIndexes: file_google_cloud_discoveryengine_v1beta_answer_proto_depIdxs, + EnumInfos: file_google_cloud_discoveryengine_v1beta_answer_proto_enumTypes, + MessageInfos: file_google_cloud_discoveryengine_v1beta_answer_proto_msgTypes, + }.Build() + File_google_cloud_discoveryengine_v1beta_answer_proto = out.File + file_google_cloud_discoveryengine_v1beta_answer_proto_rawDesc = nil + file_google_cloud_discoveryengine_v1beta_answer_proto_goTypes = nil + file_google_cloud_discoveryengine_v1beta_answer_proto_depIdxs = nil +} diff --git a/discoveryengine/apiv1beta/discoveryenginepb/common.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/common.pb.go index 84208805226..5974cd5a84c 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/common.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/common.pb.go @@ -48,6 +48,8 @@ const ( IndustryVertical_GENERIC IndustryVertical = 1 // The media industry vertical. IndustryVertical_MEDIA IndustryVertical = 2 + // The healthcare FHIR vertical. + IndustryVertical_HEALTHCARE_FHIR IndustryVertical = 7 ) // Enum value maps for IndustryVertical. @@ -56,11 +58,13 @@ var ( 0: "INDUSTRY_VERTICAL_UNSPECIFIED", 1: "GENERIC", 2: "MEDIA", + 7: "HEALTHCARE_FHIR", } IndustryVertical_value = map[string]int32{ "INDUSTRY_VERTICAL_UNSPECIFIED": 0, "GENERIC": 1, "MEDIA": 2, + "HEALTHCARE_FHIR": 7, } ) @@ -103,6 +107,10 @@ const ( SolutionType_SOLUTION_TYPE_SEARCH SolutionType = 2 // Used for use cases related to the Generative AI agent. SolutionType_SOLUTION_TYPE_CHAT SolutionType = 3 + // Used for use cases related to the Generative Chat agent. + // It's used for Generative chat engine only, the associated data stores + // must enrolled with `SOLUTION_TYPE_CHAT` solution. + SolutionType_SOLUTION_TYPE_GENERATIVE_CHAT SolutionType = 4 ) // Enum value maps for SolutionType. @@ -112,12 +120,14 @@ var ( 1: "SOLUTION_TYPE_RECOMMENDATION", 2: "SOLUTION_TYPE_SEARCH", 3: "SOLUTION_TYPE_CHAT", + 4: "SOLUTION_TYPE_GENERATIVE_CHAT", } SolutionType_value = map[string]int32{ - "SOLUTION_TYPE_UNSPECIFIED": 0, - "SOLUTION_TYPE_RECOMMENDATION": 1, - "SOLUTION_TYPE_SEARCH": 2, - "SOLUTION_TYPE_CHAT": 3, + "SOLUTION_TYPE_UNSPECIFIED": 0, + "SOLUTION_TYPE_RECOMMENDATION": 1, + "SOLUTION_TYPE_SEARCH": 2, + "SOLUTION_TYPE_CHAT": 3, + "SOLUTION_TYPE_GENERATIVE_CHAT": 4, } ) @@ -149,7 +159,7 @@ func (SolutionType) EnumDescriptor() ([]byte, []int) { } // Tiers of search features. Different tiers might have different -// pricing. To learn more, please check the pricing documentation. +// pricing. To learn more, check the pricing documentation. type SearchTier int32 const ( @@ -678,69 +688,121 @@ var file_google_cloud_discoveryengine_v1beta_common_proto_rawDesc = []byte{ 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x22, 0x24, 0x0a, 0x0a, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x2a, 0x4d, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x74, + 0x2a, 0x62, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x44, 0x55, 0x53, 0x54, 0x52, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x49, 0x43, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10, 0x02, 0x2a, - 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x20, 0x0a, 0x1c, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, - 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, - 0x54, 0x10, 0x03, 0x2a, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x65, - 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, - 0x53, 0x45, 0x10, 0x02, 0x2a, 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, - 0x64, 0x4f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x41, 0x44, - 0x44, 0x5f, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x41, 0x44, 0x44, - 0x5f, 0x4f, 0x4e, 0x5f, 0x4c, 0x4c, 0x4d, 0x10, 0x01, 0x42, 0xec, 0x04, 0xea, 0x41, 0xe6, 0x01, - 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, 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, - 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x12, 0x6a, 0x70, 0x72, 0x6f, 0x6a, + 0x49, 0x43, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x10, 0x02, 0x12, + 0x13, 0x0a, 0x0f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x43, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x48, + 0x49, 0x52, 0x10, 0x07, 0x2a, 0xa4, 0x01, 0x0a, 0x0c, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, 0x4c, 0x55, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, + 0x54, 0x49, 0x56, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x10, 0x04, 0x2a, 0x5f, 0x0a, 0x0a, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, + 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x02, 0x2a, 0x43, 0x0a, 0x0b, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, 0x64, 0x4f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x4f, 0x4e, 0x5f, 0x4c, 0x4c, 0x4d, 0x10, + 0x01, 0x42, 0xe9, 0x0a, 0xea, 0x41, 0xe6, 0x01, 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, 0x12, + 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, + 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x7d, 0x12, 0x6a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x62, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0xea, 0x41, + 0x6d, 0x0a, 0x29, 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, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0xea, 0x41, + 0x52, 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, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, + 0x6f, 0x6e, 0x7d, 0xea, 0x41, 0x7d, 0x0a, 0x2e, 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, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x7d, 0xea, 0x41, 0x77, 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, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x72, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0xea, 0x41, 0x79, + 0x0a, 0x23, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x61, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x68, 0x69, 0x72, + 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x52, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, + 0x7d, 0x2f, 0x66, 0x68, 0x69, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x68, + 0x69, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0xea, 0x41, 0xae, 0x02, 0x0a, 0x24, 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, 0x43, 0x68, + 0x75, 0x6e, 0x6b, 0x12, 0x75, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0xea, 0x41, 0x6d, 0x0a, 0x29, 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, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, - 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, - 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, - 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x63, 0x68, 0x75, 0x6e, + 0x6b, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x7d, 0x12, 0x8e, 0x01, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x7d, 0x0a, 0x27, 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, + 0x62, 0x65, 0x74, 0x61, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, + 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, + 0x23, 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, + 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/discoveryengine/apiv1beta/discoveryenginepb/conversational_search_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/conversational_search_service.pb.go index 77400d89532..f7d21d89c7a 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/conversational_search_service.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/conversational_search_service.pb.go @@ -42,6 +42,59 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Query classification types. +type AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type int32 + +const ( + // Unspecified query classification type. + AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_TYPE_UNSPECIFIED AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type = 0 + // Adversarial query classification type. + AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_ADVERSARIAL_QUERY AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type = 1 + // Non-answer-seeking query classification type. + AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_NON_ANSWER_SEEKING_QUERY AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type = 2 +) + +// Enum value maps for AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type. +var ( + AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "ADVERSARIAL_QUERY", + 2: "NON_ANSWER_SEEKING_QUERY", + } + AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "ADVERSARIAL_QUERY": 1, + "NON_ANSWER_SEEKING_QUERY": 2, + } +) + +func (x AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) Enum() *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type { + p := new(AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) + *p = x + return p +} + +func (x AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_enumTypes[0].Descriptor() +} + +func (AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_enumTypes[0] +} + +func (x AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type.Descriptor instead. +func (AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 4, 0, 0} +} + // Request message for // [ConversationalSearchService.ConverseConversation][google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation] // method. @@ -667,533 +720,3239 @@ func (x *ListConversationsResponse) GetNextPageToken() string { return "" } -var File_google_cloud_discoveryengine_v1beta_conversational_search_service_proto protoreflect.FileDescriptor +// Request message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery] +// method. +type AnswerQueryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDesc = []byte{ - 0x0a, 0x47, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x9f, 0x06, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x05, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, - 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, 0x55, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x5f, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x61, - 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x71, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 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, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x73, 0x0a, 0x0c, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x73, - 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 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, 0x62, 0x65, - 0x74, 0x61, 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, 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, 0xcd, 0x02, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x55, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, - 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x0c, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, - 0x64, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9c, - 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0d, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xd1, 0x14, - 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x03, - 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x02, 0xda, 0x41, - 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x8d, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x5e, 0x3a, 0x01, 0x2a, 0x22, 0x59, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x5a, 0x5b, 0x3a, 0x01, 0x2a, 0x22, 0x56, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x65, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, - 0xba, 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x02, 0xda, 0x41, 0x13, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x93, 0x02, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x60, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 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, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5a, 0x5d, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe6, 0x02, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xf7, 0x01, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x2a, 0x50, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, - 0x5a, 0x4f, 0x2a, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, - 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x7d, 0x2a, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe6, 0x03, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0xdc, 0x02, 0xda, 0x41, 0x18, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0xba, 0x02, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5a, 0x6d, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x32, 0x5d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x7d, 0x5a, 0x6a, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x32, 0x5a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x32, 0x4f, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xfb, - 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x12, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x4f, 0x12, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x8e, 0x03, 0x0a, - 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x3d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xf9, 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x12, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5a, 0x4f, 0x12, 0x4d, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0xa7, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x20, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, - 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, - 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + // 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/*/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"` + // Required. Current user query. + Query *Query `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` + // The session resource name. Not required. + // + // When session field is not set, the API is in sessionless mode. + // + // We support auto session mode: users can use the wildcard symbol “-” as + // session id. A new id will be automatically generated and assigned. + Session string `protobuf:"bytes,3,opt,name=session,proto3" json:"session,omitempty"` + // Model specification. + SafetySpec *AnswerQueryRequest_SafetySpec `protobuf:"bytes,4,opt,name=safety_spec,json=safetySpec,proto3" json:"safety_spec,omitempty"` + // Related questions specification. + RelatedQuestionsSpec *AnswerQueryRequest_RelatedQuestionsSpec `protobuf:"bytes,5,opt,name=related_questions_spec,json=relatedQuestionsSpec,proto3" json:"related_questions_spec,omitempty"` + // Answer generation specification. + AnswerGenerationSpec *AnswerQueryRequest_AnswerGenerationSpec `protobuf:"bytes,7,opt,name=answer_generation_spec,json=answerGenerationSpec,proto3" json:"answer_generation_spec,omitempty"` + // Search specification. + SearchSpec *AnswerQueryRequest_SearchSpec `protobuf:"bytes,8,opt,name=search_spec,json=searchSpec,proto3" json:"search_spec,omitempty"` + // Query understanding specification. + QueryUnderstandingSpec *AnswerQueryRequest_QueryUnderstandingSpec `protobuf:"bytes,9,opt,name=query_understanding_spec,json=queryUnderstandingSpec,proto3" json:"query_understanding_spec,omitempty"` + // Asynchronous mode control. + // + // If enabled, the response will be returned with answer/session resource + // name without final answer. The API users need to do the polling to get + // the latest status of answer/session by calling + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer] + // or + // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession] + // method. + AsynchronousMode bool `protobuf:"varint,10,opt,name=asynchronous_mode,json=asynchronousMode,proto3" json:"asynchronous_mode,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`. + // + // 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,12,opt,name=user_pseudo_id,json=userPseudoId,proto3" json:"user_pseudo_id,omitempty"` } -var ( - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescOnce sync.Once - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDesc -) +func (x *AnswerQueryRequest) Reset() { + *x = AnswerQueryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP() []byte { - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescOnce.Do(func() { - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData) - }) - return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData +func (x *AnswerQueryRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_goTypes = []interface{}{ - (*ConverseConversationRequest)(nil), // 0: google.cloud.discoveryengine.v1beta.ConverseConversationRequest - (*ConverseConversationResponse)(nil), // 1: google.cloud.discoveryengine.v1beta.ConverseConversationResponse - (*CreateConversationRequest)(nil), // 2: google.cloud.discoveryengine.v1beta.CreateConversationRequest - (*UpdateConversationRequest)(nil), // 3: google.cloud.discoveryengine.v1beta.UpdateConversationRequest - (*DeleteConversationRequest)(nil), // 4: google.cloud.discoveryengine.v1beta.DeleteConversationRequest - (*GetConversationRequest)(nil), // 5: google.cloud.discoveryengine.v1beta.GetConversationRequest - (*ListConversationsRequest)(nil), // 6: google.cloud.discoveryengine.v1beta.ListConversationsRequest - (*ListConversationsResponse)(nil), // 7: google.cloud.discoveryengine.v1beta.ListConversationsResponse - nil, // 8: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.UserLabelsEntry - (*TextInput)(nil), // 9: google.cloud.discoveryengine.v1beta.TextInput - (*Conversation)(nil), // 10: google.cloud.discoveryengine.v1beta.Conversation - (*SearchRequest_ContentSearchSpec_SummarySpec)(nil), // 11: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec - (*SearchRequest_BoostSpec)(nil), // 12: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec - (*Reply)(nil), // 13: google.cloud.discoveryengine.v1beta.Reply - (*SearchResponse_SearchResult)(nil), // 14: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult - (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 16: google.protobuf.Empty +func (*AnswerQueryRequest) ProtoMessage() {} + +func (x *AnswerQueryRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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) } -var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_depIdxs = []int32{ - 9, // 0: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.query:type_name -> google.cloud.discoveryengine.v1beta.TextInput - 10, // 1: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation - 8, // 2: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.user_labels:type_name -> google.cloud.discoveryengine.v1beta.ConverseConversationRequest.UserLabelsEntry - 11, // 3: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.summary_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec - 12, // 4: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.boost_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec - 13, // 5: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.reply:type_name -> google.cloud.discoveryengine.v1beta.Reply - 10, // 6: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation - 14, // 7: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.search_results:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult - 10, // 8: google.cloud.discoveryengine.v1beta.CreateConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation - 10, // 9: google.cloud.discoveryengine.v1beta.UpdateConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation - 15, // 10: google.cloud.discoveryengine.v1beta.UpdateConversationRequest.update_mask:type_name -> google.protobuf.FieldMask - 10, // 11: google.cloud.discoveryengine.v1beta.ListConversationsResponse.conversations:type_name -> google.cloud.discoveryengine.v1beta.Conversation - 0, // 12: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation:input_type -> google.cloud.discoveryengine.v1beta.ConverseConversationRequest - 2, // 13: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateConversation:input_type -> google.cloud.discoveryengine.v1beta.CreateConversationRequest - 4, // 14: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteConversation:input_type -> google.cloud.discoveryengine.v1beta.DeleteConversationRequest - 3, // 15: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateConversation:input_type -> google.cloud.discoveryengine.v1beta.UpdateConversationRequest - 5, // 16: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetConversation:input_type -> google.cloud.discoveryengine.v1beta.GetConversationRequest - 6, // 17: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListConversations:input_type -> google.cloud.discoveryengine.v1beta.ListConversationsRequest - 1, // 18: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation:output_type -> google.cloud.discoveryengine.v1beta.ConverseConversationResponse - 10, // 19: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation - 16, // 20: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteConversation:output_type -> google.protobuf.Empty - 10, // 21: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation - 10, // 22: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation - 7, // 23: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListConversations:output_type -> google.cloud.discoveryengine.v1beta.ListConversationsResponse - 18, // [18:24] is the sub-list for method output_type - 12, // [12:18] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + +// Deprecated: Use AnswerQueryRequest.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8} } -func init() { file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_init() } -func file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_init() { - if File_google_cloud_discoveryengine_v1beta_conversational_search_service_proto != nil { - return +func (x *AnswerQueryRequest) GetServingConfig() string { + if x != nil { + return x.ServingConfig } - file_google_cloud_discoveryengine_v1beta_conversation_proto_init() - file_google_cloud_discoveryengine_v1beta_search_service_proto_init() - if !protoimpl.UnsafeEnabled { - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConverseConversationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConverseConversationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateConversationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConversationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteConversationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListConversationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListConversationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } + return "" +} + +func (x *AnswerQueryRequest) GetQuery() *Query { + if x != nil { + return x.Query + } + return nil +} + +func (x *AnswerQueryRequest) GetSession() string { + if x != nil { + return x.Session + } + return "" +} + +func (x *AnswerQueryRequest) GetSafetySpec() *AnswerQueryRequest_SafetySpec { + if x != nil { + return x.SafetySpec + } + return nil +} + +func (x *AnswerQueryRequest) GetRelatedQuestionsSpec() *AnswerQueryRequest_RelatedQuestionsSpec { + if x != nil { + return x.RelatedQuestionsSpec + } + return nil +} + +func (x *AnswerQueryRequest) GetAnswerGenerationSpec() *AnswerQueryRequest_AnswerGenerationSpec { + if x != nil { + return x.AnswerGenerationSpec + } + return nil +} + +func (x *AnswerQueryRequest) GetSearchSpec() *AnswerQueryRequest_SearchSpec { + if x != nil { + return x.SearchSpec + } + return nil +} + +func (x *AnswerQueryRequest) GetQueryUnderstandingSpec() *AnswerQueryRequest_QueryUnderstandingSpec { + if x != nil { + return x.QueryUnderstandingSpec + } + return nil +} + +func (x *AnswerQueryRequest) GetAsynchronousMode() bool { + if x != nil { + return x.AsynchronousMode + } + return false +} + +func (x *AnswerQueryRequest) GetUserPseudoId() string { + if x != nil { + return x.UserPseudoId + } + return "" +} + +// Response message for +// [ConversationalSearchService.AnswerQuery][google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery] +// method. +type AnswerQueryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Answer resource object. + // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, + // use [Answer.name][google.cloud.discoveryengine.v1beta.Answer.name] to fetch + // answer information using + // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer] + // API. + Answer *Answer `protobuf:"bytes,1,opt,name=answer,proto3" json:"answer,omitempty"` + // Session resource object. + // It will be only available when session field is set and valid in the + // [AnswerQueryRequest][google.cloud.discoveryengine.v1beta.AnswerQueryRequest] + // request. + Session *Session `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"` +} + +func (x *AnswerQueryResponse) Reset() { + *x = AnswerQueryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryResponse) ProtoMessage() {} + +func (x *AnswerQueryResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnswerQueryResponse.ProtoReflect.Descriptor instead. +func (*AnswerQueryResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{9} +} + +func (x *AnswerQueryResponse) GetAnswer() *Answer { + if x != nil { + return x.Answer + } + return nil +} + +func (x *AnswerQueryResponse) GetSession() *Session { + if x != nil { + return x.Session + } + return nil +} + +// Request for GetAnswer method. +type GetAnswerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Answer to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetAnswerRequest) Reset() { + *x = GetAnswerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnswerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnswerRequest) ProtoMessage() {} + +func (x *GetAnswerRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAnswerRequest.ProtoReflect.Descriptor instead. +func (*GetAnswerRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{10} +} + +func (x *GetAnswerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for CreateSession method. +type CreateSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Full resource name of parent data store. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The session to create. + Session *Session `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"` +} + +func (x *CreateSessionRequest) Reset() { + *x = CreateSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSessionRequest) ProtoMessage() {} + +func (x *CreateSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 CreateSessionRequest.ProtoReflect.Descriptor instead. +func (*CreateSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{11} +} + +func (x *CreateSessionRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSessionRequest) GetSession() *Session { + if x != nil { + return x.Session + } + return nil +} + +// Request for UpdateSession method. +type UpdateSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The Session to update. + Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` + // Indicates which fields in the provided + // [Session][google.cloud.discoveryengine.v1beta.Session] to update. The + // following are NOT supported: + // + // * [Session.name][google.cloud.discoveryengine.v1beta.Session.name] + // + // If not set or empty, all supported fields are updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateSessionRequest) Reset() { + *x = UpdateSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSessionRequest) ProtoMessage() {} + +func (x *UpdateSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 UpdateSessionRequest.ProtoReflect.Descriptor instead. +func (*UpdateSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{12} +} + +func (x *UpdateSessionRequest) GetSession() *Session { + if x != nil { + return x.Session + } + return nil +} + +func (x *UpdateSessionRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request for DeleteSession method. +type DeleteSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Session to delete. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteSessionRequest) Reset() { + *x = DeleteSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSessionRequest) ProtoMessage() {} + +func (x *DeleteSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 DeleteSessionRequest.ProtoReflect.Descriptor instead. +func (*DeleteSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{13} +} + +func (x *DeleteSessionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for GetSession method. +type GetSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Session to get. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSessionRequest) Reset() { + *x = GetSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSessionRequest) ProtoMessage() {} + +func (x *GetSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 GetSessionRequest.ProtoReflect.Descriptor instead. +func (*GetSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{14} +} + +func (x *GetSessionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for ListSessions method. +type ListSessionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The data store resource name. Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Maximum number of results to return. If unspecified, defaults + // to 50. Max allowed value is 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListSessions` call. + // Provide this to retrieve the subsequent page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A filter to apply on the list results. The supported features are: + // user_pseudo_id, state. + // + // Example: + // "user_pseudo_id = some_id" + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // - `update_time` + // - `create_time` + // - `session_name` + // + // Example: + // "update_time desc" + // "create_time" + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListSessionsRequest) Reset() { + *x = ListSessionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionsRequest) ProtoMessage() {} + +func (x *ListSessionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 ListSessionsRequest.ProtoReflect.Descriptor instead. +func (*ListSessionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{15} +} + +func (x *ListSessionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSessionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSessionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSessionsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListSessionsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for ListSessions method. +type ListSessionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // All the Sessions for a given data store. + Sessions []*Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"` + // Pagination token, if not returned indicates the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListSessionsResponse) Reset() { + *x = ListSessionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionsResponse) ProtoMessage() {} + +func (x *ListSessionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 ListSessionsResponse.ProtoReflect.Descriptor instead. +func (*ListSessionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{16} +} + +func (x *ListSessionsResponse) GetSessions() []*Session { + if x != nil { + return x.Sessions + } + return nil +} + +func (x *ListSessionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Safety specification. +type AnswerQueryRequest_SafetySpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enable the safety filtering on the answer response. It is false by + // default. + Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` +} + +func (x *AnswerQueryRequest_SafetySpec) Reset() { + *x = AnswerQueryRequest_SafetySpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SafetySpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SafetySpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_SafetySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SafetySpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SafetySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *AnswerQueryRequest_SafetySpec) GetEnable() bool { + if x != nil { + return x.Enable + } + return false +} + +// Related questions specification. +type AnswerQueryRequest_RelatedQuestionsSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enable related questions feature if true. + Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` +} + +func (x *AnswerQueryRequest_RelatedQuestionsSpec) Reset() { + *x = AnswerQueryRequest_RelatedQuestionsSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_RelatedQuestionsSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_RelatedQuestionsSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_RelatedQuestionsSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_RelatedQuestionsSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_RelatedQuestionsSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *AnswerQueryRequest_RelatedQuestionsSpec) GetEnable() bool { + if x != nil { + return x.Enable + } + return false +} + +// Answer generation specification. +type AnswerQueryRequest_AnswerGenerationSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Answer generation model specification. + ModelSpec *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec `protobuf:"bytes,1,opt,name=model_spec,json=modelSpec,proto3" json:"model_spec,omitempty"` + // Answer generation prompt specification. + PromptSpec *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec `protobuf:"bytes,2,opt,name=prompt_spec,json=promptSpec,proto3" json:"prompt_spec,omitempty"` + // Specifies whether to include citation metadata in the answer. The default + // value is `false`. + IncludeCitations bool `protobuf:"varint,3,opt,name=include_citations,json=includeCitations,proto3" json:"include_citations,omitempty"` + // Language code for Answer. Use language tags defined by + // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + // Note: This is an experimental feature. + AnswerLanguageCode string `protobuf:"bytes,4,opt,name=answer_language_code,json=answerLanguageCode,proto3" json:"answer_language_code,omitempty"` + // Specifies whether to filter out adversarial queries. The default value + // is `false`. + // + // Google employs search-query classification to detect adversarial + // queries. No answer 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 answers for adversarial queries and return + // fallback messages instead. + IgnoreAdversarialQuery bool `protobuf:"varint,5,opt,name=ignore_adversarial_query,json=ignoreAdversarialQuery,proto3" json:"ignore_adversarial_query,omitempty"` + // Specifies whether to filter out queries that are not answer-seeking. + // The default value is `false`. + // + // Google employs search-query classification to detect answer-seeking + // queries. No answer is returned if the search query is classified as a + // non-answer seeking query. If this field is set to `true`, we skip + // generating answers for non-answer seeking queries and return + // fallback messages instead. + IgnoreNonAnswerSeekingQuery bool `protobuf:"varint,6,opt,name=ignore_non_answer_seeking_query,json=ignoreNonAnswerSeekingQuery,proto3" json:"ignore_non_answer_seeking_query,omitempty"` +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) Reset() { + *x = AnswerQueryRequest_AnswerGenerationSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_AnswerGenerationSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_AnswerGenerationSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_AnswerGenerationSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 2} +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetModelSpec() *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec { + if x != nil { + return x.ModelSpec + } + return nil +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetPromptSpec() *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec { + if x != nil { + return x.PromptSpec + } + return nil +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetIncludeCitations() bool { + if x != nil { + return x.IncludeCitations + } + return false +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetAnswerLanguageCode() string { + if x != nil { + return x.AnswerLanguageCode + } + return "" +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetIgnoreAdversarialQuery() bool { + if x != nil { + return x.IgnoreAdversarialQuery + } + return false +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec) GetIgnoreNonAnswerSeekingQuery() bool { + if x != nil { + return x.IgnoreNonAnswerSeekingQuery + } + return false +} + +// Search specification. +type AnswerQueryRequest_SearchSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Search parameters to control the search behavior. + // Or provide search result list to generate answer. + // + // Types that are assignable to Input: + // + // *AnswerQueryRequest_SearchSpec_SearchParams_ + // *AnswerQueryRequest_SearchSpec_SearchResultList_ + Input isAnswerQueryRequest_SearchSpec_Input `protobuf_oneof:"input"` +} + +func (x *AnswerQueryRequest_SearchSpec) Reset() { + *x = AnswerQueryRequest_SearchSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_SearchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3} +} + +func (m *AnswerQueryRequest_SearchSpec) GetInput() isAnswerQueryRequest_SearchSpec_Input { + if m != nil { + return m.Input + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec) GetSearchParams() *AnswerQueryRequest_SearchSpec_SearchParams { + if x, ok := x.GetInput().(*AnswerQueryRequest_SearchSpec_SearchParams_); ok { + return x.SearchParams + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec) GetSearchResultList() *AnswerQueryRequest_SearchSpec_SearchResultList { + if x, ok := x.GetInput().(*AnswerQueryRequest_SearchSpec_SearchResultList_); ok { + return x.SearchResultList + } + return nil +} + +type isAnswerQueryRequest_SearchSpec_Input interface { + isAnswerQueryRequest_SearchSpec_Input() +} + +type AnswerQueryRequest_SearchSpec_SearchParams_ struct { + // Search parameters. + SearchParams *AnswerQueryRequest_SearchSpec_SearchParams `protobuf:"bytes,1,opt,name=search_params,json=searchParams,proto3,oneof"` +} + +type AnswerQueryRequest_SearchSpec_SearchResultList_ struct { + // Search result list. + SearchResultList *AnswerQueryRequest_SearchSpec_SearchResultList `protobuf:"bytes,2,opt,name=search_result_list,json=searchResultList,proto3,oneof"` +} + +func (*AnswerQueryRequest_SearchSpec_SearchParams_) isAnswerQueryRequest_SearchSpec_Input() {} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_) isAnswerQueryRequest_SearchSpec_Input() {} + +// Query understanding specification. +type AnswerQueryRequest_QueryUnderstandingSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Query classification specification. + QueryClassificationSpec *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec `protobuf:"bytes,1,opt,name=query_classification_spec,json=queryClassificationSpec,proto3" json:"query_classification_spec,omitempty"` + // Query rephraser specification. + QueryRephraserSpec *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec `protobuf:"bytes,2,opt,name=query_rephraser_spec,json=queryRephraserSpec,proto3" json:"query_rephraser_spec,omitempty"` +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec) Reset() { + *x = AnswerQueryRequest_QueryUnderstandingSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_QueryUnderstandingSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_QueryUnderstandingSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_QueryUnderstandingSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 4} +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec) GetQueryClassificationSpec() *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec { + if x != nil { + return x.QueryClassificationSpec + } + return nil +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec) GetQueryRephraserSpec() *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec { + if x != nil { + return x.QueryRephraserSpec + } + return nil +} + +// Answer Generation Model specification. +type AnswerQueryRequest_AnswerGenerationSpec_ModelSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Model version. If not set, it will use the default stable model. + // Allowed values are: stable, preview. + ModelVersion string `protobuf:"bytes,1,opt,name=model_version,json=modelVersion,proto3" json:"model_version,omitempty"` +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) Reset() { + *x = AnswerQueryRequest_AnswerGenerationSpec_ModelSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_AnswerGenerationSpec_ModelSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 2, 0} +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_ModelSpec) GetModelVersion() string { + if x != nil { + return x.ModelVersion + } + return "" +} + +// Answer generation prompt specification. +type AnswerQueryRequest_AnswerGenerationSpec_PromptSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Customized preamble. + Preamble string `protobuf:"bytes,1,opt,name=preamble,proto3" json:"preamble,omitempty"` +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) Reset() { + *x = AnswerQueryRequest_AnswerGenerationSpec_PromptSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_AnswerGenerationSpec_PromptSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 2, 1} +} + +func (x *AnswerQueryRequest_AnswerGenerationSpec_PromptSpec) GetPreamble() string { + if x != nil { + return x.Preamble + } + return "" +} + +// Search parameters. +type AnswerQueryRequest_SearchSpec_SearchParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Number of search results to return. + // The default value is 10. + MaxReturnResults int32 `protobuf:"varint,1,opt,name=max_return_results,json=maxReturnResults,proto3" json:"max_return_results,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. This will be used to filter + // search results which may affect the Answer response. + // + // 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 customers 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,2,opt,name=filter,proto3" json:"filter,omitempty"` + // Boost specification to boost certain documents in search results which + // may affect the answer query response. For more information on boosting, + // see [Boosting](https://cloud.google.com/retail/docs/boosting#boost) + BoostSpec *SearchRequest_BoostSpec `protobuf:"bytes,3,opt,name=boost_spec,json=boostSpec,proto3" json:"boost_spec,omitempty"` + // The order in which documents are returned. Documents can be ordered + // by a field in an + // [Document][google.cloud.discoveryengine.v1beta.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,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchParams{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchParams) ProtoMessage() {} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec_SearchParams.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchParams) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 0} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) GetMaxReturnResults() int32 { + if x != nil { + return x.MaxReturnResults + } + return 0 +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) GetBoostSpec() *SearchRequest_BoostSpec { + if x != nil { + return x.BoostSpec + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec_SearchParams) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Search result list. +type AnswerQueryRequest_SearchSpec_SearchResultList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Search results. + SearchResults []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult `protobuf:"bytes,1,rep,name=search_results,json=searchResults,proto3" json:"search_results,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList) ProtoMessage() {} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec_SearchResultList.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList) GetSearchResults() []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult { + if x != nil { + return x.SearchResults + } + return nil +} + +// Search result. +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Search result content. + // + // Types that are assignable to Content: + // + // *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ + // *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo_ + Content isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content `protobuf_oneof:"content"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) ProtoMessage() {} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0} +} + +func (m *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) GetContent() isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content { + if m != nil { + return m.Content + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) GetUnstructuredDocumentInfo() *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo { + if x, ok := x.GetContent().(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_); ok { + return x.UnstructuredDocumentInfo + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult) GetChunkInfo() *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo { + if x, ok := x.GetContent().(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo_); ok { + return x.ChunkInfo + } + return nil +} + +type isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content interface { + isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content() +} + +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ struct { + // Unstructured document information. + UnstructuredDocumentInfo *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo `protobuf:"bytes,1,opt,name=unstructured_document_info,json=unstructuredDocumentInfo,proto3,oneof"` +} + +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo_ struct { + // Chunk information. + ChunkInfo *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo `protobuf:"bytes,2,opt,name=chunk_info,json=chunkInfo,proto3,oneof"` +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_) isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content() { +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo_) isAnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_Content() { +} + +// Unstructured document information. +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Document resource name. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // URI for the document. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Title. + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + // List of document contexts. + DocumentContexts []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext `protobuf:"bytes,4,rep,name=document_contexts,json=documentContexts,proto3" json:"document_contexts,omitempty"` + // List of extractive segments. + ExtractiveSegments []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment `protobuf:"bytes,5,rep,name=extractive_segments,json=extractiveSegments,proto3" json:"extractive_segments,omitempty"` + // List of extractive answers. + ExtractiveAnswers []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer `protobuf:"bytes,6,rep,name=extractive_answers,json=extractiveAnswers,proto3" json:"extractive_answers,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) ProtoMessage() { +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0, 0} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetDocument() string { + if x != nil { + return x.Document + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetDocumentContexts() []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext { + if x != nil { + return x.DocumentContexts + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetExtractiveSegments() []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment { + if x != nil { + return x.ExtractiveSegments + } + return nil +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo) GetExtractiveAnswers() []*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer { + if x != nil { + return x.ExtractiveAnswers + } + return nil +} + +// Chunk information. +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Chunk resource name. + Chunk string `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"` + // Chunk textual content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) ProtoMessage() {} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0, 1} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) GetChunk() string { + if x != nil { + return x.Chunk + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +// Document context. +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Page identifier. + PageIdentifier string `protobuf:"bytes,1,opt,name=page_identifier,json=pageIdentifier,proto3" json:"page_identifier,omitempty"` + // Document content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) ProtoMessage() { +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[30] + 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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0, 0, 0} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) GetPageIdentifier() string { + if x != nil { + return x.PageIdentifier + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +// Extractive segment. +// [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments) +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Page identifier. + PageIdentifier string `protobuf:"bytes,1,opt,name=page_identifier,json=pageIdentifier,proto3" json:"page_identifier,omitempty"` + // Extractive segment content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) ProtoMessage() { +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[31] + 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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0, 0, 1} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) GetPageIdentifier() string { + if x != nil { + return x.PageIdentifier + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +// Extractive answer. +// [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#get-answers) +type AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Page identifier. + PageIdentifier string `protobuf:"bytes,1,opt,name=page_identifier,json=pageIdentifier,proto3" json:"page_identifier,omitempty"` + // Extractive answer content. + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) Reset() { + *x = AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) ProtoMessage() { +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[32] + 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 AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 3, 1, 0, 0, 2} +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) GetPageIdentifier() string { + if x != nil { + return x.PageIdentifier + } + return "" +} + +func (x *AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +// Query classification specification. +type AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enabled query classification types. + Types []AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type `protobuf:"varint,1,rep,packed,name=types,proto3,enum=google.cloud.discoveryengine.v1beta.AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type" json:"types,omitempty"` +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) Reset() { + *x = AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[33] + 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 AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 4, 0} +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec) GetTypes() []AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type { + if x != nil { + return x.Types + } + return nil +} + +// Query rephraser specification. +type AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disable query rephraser. + Disable bool `protobuf:"varint,1,opt,name=disable,proto3" json:"disable,omitempty"` + // Max rephrase steps. + // The max number is 10 steps. + // If not set or set to < 1, it will be set to 1 by default. + MaxRephraseSteps int32 `protobuf:"varint,2,opt,name=max_rephrase_steps,json=maxRephraseSteps,proto3" json:"max_rephrase_steps,omitempty"` +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) Reset() { + *x = AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) ProtoMessage() {} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[34] + 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 AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec.ProtoReflect.Descriptor instead. +func (*AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP(), []int{8, 4, 1} +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) GetDisable() bool { + if x != nil { + return x.Disable + } + return false +} + +func (x *AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec) GetMaxRephraseSteps() int32 { + if x != nil { + return x.MaxRephraseSteps + } + return 0 +} + +var File_google_cloud_discoveryengine_v1beta_conversational_search_service_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDesc = []byte{ + 0x0a, 0x47, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x30, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 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, 0x62, 0x65, 0x74, 0x61, + 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x06, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x49, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x31, 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, 0x55, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x73, 0x61, 0x66, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x71, 0x0a, + 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x12, 0x73, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, + 0x0a, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 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, 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, 0xcd, 0x02, 0x0a, 0x1c, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x72, 0x65, + 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x55, 0x0a, 0x0c, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x67, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x18, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x0d, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x19, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, + 0x28, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x01, + 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x0c, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x64, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 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, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, + 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x2a, 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, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x42, 0x79, 0x22, 0x9c, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x90, 0x22, 0x0a, 0x12, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, + 0x72, 0x79, 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, 0x45, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x45, 0x0a, + 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, + 0xfa, 0x41, 0x28, 0x0a, 0x26, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x04, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x73, + 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x82, 0x01, 0x0a, 0x16, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x82, + 0x01, 0x0a, 0x16, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x14, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x08, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, 0x0a, 0x18, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x16, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, + 0x6f, 0x75, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x5f, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x73, + 0x65, 0x75, 0x64, 0x6f, 0x49, 0x64, 0x1a, 0x24, 0x0a, 0x0a, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x2e, 0x0a, 0x14, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0xc2, 0x04, 0x0a, + 0x14, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x75, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 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, 0x78, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x57, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, + 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x64, 0x65, 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, 0x05, 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, + 0x44, 0x0a, 0x1f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x4e, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x30, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x28, 0x0a, 0x0a, 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, 0x9a, 0x10, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x76, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x83, 0x01, 0x0a, 0x12, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x53, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xcc, + 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x61, 0x78, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x1a, 0xb5, 0x0c, + 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x60, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x96, 0x0b, 0x0a, + 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0xb9, 0x01, + 0x0a, 0x1a, 0x75, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x79, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, + 0x18, 0x75, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x63, 0x68, + 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6a, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, + 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xc8, 0x07, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x89, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, + 0x12, 0xbd, 0x01, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x8b, + 0x01, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0xba, 0x01, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x8a, 0x01, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x2e, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x11, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x1a, 0x54, 0x0a, + 0x0f, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x55, 0x0a, 0x10, 0x45, + 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, + 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x1a, 0x66, 0x0a, 0x09, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x3f, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, + 0xfa, 0x41, 0x26, 0x0a, 0x24, 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, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0xa4, + 0x05, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0xa2, 0x01, 0x0a, 0x19, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x66, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, + 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x93, + 0x01, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, + 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x61, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x64, 0x65, + 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x72, + 0x53, 0x70, 0x65, 0x63, 0x1a, 0xf0, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x81, 0x01, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x6b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, + 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x49, 0x41, + 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x4f, 0x4e, + 0x5f, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x45, 0x4b, 0x49, 0x4e, 0x47, 0x5f, + 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, 0x1a, 0x5c, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, + 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x72, + 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, + 0x53, 0x74, 0x65, 0x70, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x13, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, + 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x12, 0x46, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 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, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x28, 0x0a, 0x26, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x57, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 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, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x13, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xd7, 0x29, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x03, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x02, 0xda, 0x41, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8d, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x5e, 0x3a, + 0x01, 0x2a, 0x22, 0x59, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5a, 0x5b, 0x3a, + 0x01, 0x2a, 0x22, 0x56, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, + 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0xba, 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xb0, 0x02, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x93, + 0x02, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5a, + 0x60, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5a, 0x5d, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe6, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0xf7, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x2a, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x4f, 0x2a, 0x4d, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2a, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe6, 0x03, + 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x02, 0xda, 0x41, 0x18, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xba, 0x02, 0x3a, 0x0c, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x6d, 0x3a, 0x0c, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x5d, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x6a, 0x3a, 0x0c, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x5a, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x32, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xfb, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x12, 0x50, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 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, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, + 0x4f, 0x12, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x8e, 0x03, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x01, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe9, 0x01, 0x5a, 0x52, 0x12, 0x50, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5a, 0x4f, 0x12, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb2, 0x03, 0x0a, 0x0b, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0xa8, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x67, 0x3a, 0x01, 0x2a, 0x22, 0x62, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 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, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5a, 0x64, + 0x3a, 0x01, 0x2a, 0x22, 0x5f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x22, 0x54, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0xf8, 0x02, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x86, 0x02, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xf8, 0x01, 0x5a, 0x57, 0x12, + 0x55, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x54, 0x12, 0x52, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x47, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x88, 0x03, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x8d, 0x02, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xf5, 0x01, 0x3a, 0x07, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5a, 0x56, 0x3a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5a, 0x53, 0x3a, 0x07, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xcd, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xe8, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0xda, 0x01, 0x5a, 0x4d, 0x2a, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x4a, 0x2a, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2a, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xa5, 0x03, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x02, 0xda, 0x41, + 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8d, 0x02, 0x3a, 0x07, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5a, 0x5e, 0x3a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x32, + 0x53, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x5b, 0x3a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x32, + 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x32, 0x45, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdd, 0x02, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe8, 0x01, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xda, 0x01, 0x5a, 0x4d, + 0x12, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x4a, 0x12, + 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf0, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xea, + 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xda, + 0x01, 0x5a, 0x4d, 0x12, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x5a, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, + 0xa7, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x20, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, + 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_goTypes = []interface{}{ + (AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec_Type)(0), // 0: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryClassificationSpec.Type + (*ConverseConversationRequest)(nil), // 1: google.cloud.discoveryengine.v1beta.ConverseConversationRequest + (*ConverseConversationResponse)(nil), // 2: google.cloud.discoveryengine.v1beta.ConverseConversationResponse + (*CreateConversationRequest)(nil), // 3: google.cloud.discoveryengine.v1beta.CreateConversationRequest + (*UpdateConversationRequest)(nil), // 4: google.cloud.discoveryengine.v1beta.UpdateConversationRequest + (*DeleteConversationRequest)(nil), // 5: google.cloud.discoveryengine.v1beta.DeleteConversationRequest + (*GetConversationRequest)(nil), // 6: google.cloud.discoveryengine.v1beta.GetConversationRequest + (*ListConversationsRequest)(nil), // 7: google.cloud.discoveryengine.v1beta.ListConversationsRequest + (*ListConversationsResponse)(nil), // 8: google.cloud.discoveryengine.v1beta.ListConversationsResponse + (*AnswerQueryRequest)(nil), // 9: google.cloud.discoveryengine.v1beta.AnswerQueryRequest + (*AnswerQueryResponse)(nil), // 10: google.cloud.discoveryengine.v1beta.AnswerQueryResponse + (*GetAnswerRequest)(nil), // 11: google.cloud.discoveryengine.v1beta.GetAnswerRequest + (*CreateSessionRequest)(nil), // 12: google.cloud.discoveryengine.v1beta.CreateSessionRequest + (*UpdateSessionRequest)(nil), // 13: google.cloud.discoveryengine.v1beta.UpdateSessionRequest + (*DeleteSessionRequest)(nil), // 14: google.cloud.discoveryengine.v1beta.DeleteSessionRequest + (*GetSessionRequest)(nil), // 15: google.cloud.discoveryengine.v1beta.GetSessionRequest + (*ListSessionsRequest)(nil), // 16: google.cloud.discoveryengine.v1beta.ListSessionsRequest + (*ListSessionsResponse)(nil), // 17: google.cloud.discoveryengine.v1beta.ListSessionsResponse + nil, // 18: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.UserLabelsEntry + (*AnswerQueryRequest_SafetySpec)(nil), // 19: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SafetySpec + (*AnswerQueryRequest_RelatedQuestionsSpec)(nil), // 20: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.RelatedQuestionsSpec + (*AnswerQueryRequest_AnswerGenerationSpec)(nil), // 21: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec + (*AnswerQueryRequest_SearchSpec)(nil), // 22: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec + (*AnswerQueryRequest_QueryUnderstandingSpec)(nil), // 23: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec + (*AnswerQueryRequest_AnswerGenerationSpec_ModelSpec)(nil), // 24: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.ModelSpec + (*AnswerQueryRequest_AnswerGenerationSpec_PromptSpec)(nil), // 25: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.PromptSpec + (*AnswerQueryRequest_SearchSpec_SearchParams)(nil), // 26: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchParams + (*AnswerQueryRequest_SearchSpec_SearchResultList)(nil), // 27: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult)(nil), // 28: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo)(nil), // 29: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo)(nil), // 30: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.ChunkInfo + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext)(nil), // 31: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.DocumentContext + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment)(nil), // 32: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.ExtractiveSegment + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer)(nil), // 33: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.ExtractiveAnswer + (*AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec)(nil), // 34: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryClassificationSpec + (*AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec)(nil), // 35: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec + (*TextInput)(nil), // 36: google.cloud.discoveryengine.v1beta.TextInput + (*Conversation)(nil), // 37: google.cloud.discoveryengine.v1beta.Conversation + (*SearchRequest_ContentSearchSpec_SummarySpec)(nil), // 38: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec + (*SearchRequest_BoostSpec)(nil), // 39: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec + (*Reply)(nil), // 40: google.cloud.discoveryengine.v1beta.Reply + (*SearchResponse_SearchResult)(nil), // 41: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult + (*fieldmaskpb.FieldMask)(nil), // 42: google.protobuf.FieldMask + (*Query)(nil), // 43: google.cloud.discoveryengine.v1beta.Query + (*Answer)(nil), // 44: google.cloud.discoveryengine.v1beta.Answer + (*Session)(nil), // 45: google.cloud.discoveryengine.v1beta.Session + (*emptypb.Empty)(nil), // 46: google.protobuf.Empty +} +var file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_depIdxs = []int32{ + 36, // 0: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.query:type_name -> google.cloud.discoveryengine.v1beta.TextInput + 37, // 1: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation + 18, // 2: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.user_labels:type_name -> google.cloud.discoveryengine.v1beta.ConverseConversationRequest.UserLabelsEntry + 38, // 3: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.summary_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec + 39, // 4: google.cloud.discoveryengine.v1beta.ConverseConversationRequest.boost_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec + 40, // 5: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.reply:type_name -> google.cloud.discoveryengine.v1beta.Reply + 37, // 6: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation + 41, // 7: google.cloud.discoveryengine.v1beta.ConverseConversationResponse.search_results:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult + 37, // 8: google.cloud.discoveryengine.v1beta.CreateConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation + 37, // 9: google.cloud.discoveryengine.v1beta.UpdateConversationRequest.conversation:type_name -> google.cloud.discoveryengine.v1beta.Conversation + 42, // 10: google.cloud.discoveryengine.v1beta.UpdateConversationRequest.update_mask:type_name -> google.protobuf.FieldMask + 37, // 11: google.cloud.discoveryengine.v1beta.ListConversationsResponse.conversations:type_name -> google.cloud.discoveryengine.v1beta.Conversation + 43, // 12: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.query:type_name -> google.cloud.discoveryengine.v1beta.Query + 19, // 13: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.safety_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SafetySpec + 20, // 14: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.related_questions_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.RelatedQuestionsSpec + 21, // 15: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.answer_generation_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec + 22, // 16: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.search_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec + 23, // 17: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.query_understanding_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec + 44, // 18: google.cloud.discoveryengine.v1beta.AnswerQueryResponse.answer:type_name -> google.cloud.discoveryengine.v1beta.Answer + 45, // 19: google.cloud.discoveryengine.v1beta.AnswerQueryResponse.session:type_name -> google.cloud.discoveryengine.v1beta.Session + 45, // 20: google.cloud.discoveryengine.v1beta.CreateSessionRequest.session:type_name -> google.cloud.discoveryengine.v1beta.Session + 45, // 21: google.cloud.discoveryengine.v1beta.UpdateSessionRequest.session:type_name -> google.cloud.discoveryengine.v1beta.Session + 42, // 22: google.cloud.discoveryengine.v1beta.UpdateSessionRequest.update_mask:type_name -> google.protobuf.FieldMask + 45, // 23: google.cloud.discoveryengine.v1beta.ListSessionsResponse.sessions:type_name -> google.cloud.discoveryengine.v1beta.Session + 24, // 24: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.model_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.ModelSpec + 25, // 25: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.prompt_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.AnswerGenerationSpec.PromptSpec + 26, // 26: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.search_params:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchParams + 27, // 27: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.search_result_list:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList + 34, // 28: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.query_classification_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryClassificationSpec + 35, // 29: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.query_rephraser_spec:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec + 39, // 30: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchParams.boost_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec + 28, // 31: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.search_results:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult + 29, // 32: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.unstructured_document_info:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo + 30, // 33: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.chunk_info:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.ChunkInfo + 31, // 34: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.document_contexts:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.DocumentContext + 32, // 35: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.extractive_segments:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.ExtractiveSegment + 33, // 36: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.extractive_answers:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.SearchSpec.SearchResultList.SearchResult.UnstructuredDocumentInfo.ExtractiveAnswer + 0, // 37: google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryClassificationSpec.types:type_name -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryClassificationSpec.Type + 1, // 38: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation:input_type -> google.cloud.discoveryengine.v1beta.ConverseConversationRequest + 3, // 39: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateConversation:input_type -> google.cloud.discoveryengine.v1beta.CreateConversationRequest + 5, // 40: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteConversation:input_type -> google.cloud.discoveryengine.v1beta.DeleteConversationRequest + 4, // 41: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateConversation:input_type -> google.cloud.discoveryengine.v1beta.UpdateConversationRequest + 6, // 42: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetConversation:input_type -> google.cloud.discoveryengine.v1beta.GetConversationRequest + 7, // 43: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListConversations:input_type -> google.cloud.discoveryengine.v1beta.ListConversationsRequest + 9, // 44: google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery:input_type -> google.cloud.discoveryengine.v1beta.AnswerQueryRequest + 11, // 45: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer:input_type -> google.cloud.discoveryengine.v1beta.GetAnswerRequest + 12, // 46: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateSession:input_type -> google.cloud.discoveryengine.v1beta.CreateSessionRequest + 14, // 47: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteSession:input_type -> google.cloud.discoveryengine.v1beta.DeleteSessionRequest + 13, // 48: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateSession:input_type -> google.cloud.discoveryengine.v1beta.UpdateSessionRequest + 15, // 49: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession:input_type -> google.cloud.discoveryengine.v1beta.GetSessionRequest + 16, // 50: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListSessions:input_type -> google.cloud.discoveryengine.v1beta.ListSessionsRequest + 2, // 51: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ConverseConversation:output_type -> google.cloud.discoveryengine.v1beta.ConverseConversationResponse + 37, // 52: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation + 46, // 53: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteConversation:output_type -> google.protobuf.Empty + 37, // 54: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation + 37, // 55: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetConversation:output_type -> google.cloud.discoveryengine.v1beta.Conversation + 8, // 56: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListConversations:output_type -> google.cloud.discoveryengine.v1beta.ListConversationsResponse + 10, // 57: google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery:output_type -> google.cloud.discoveryengine.v1beta.AnswerQueryResponse + 44, // 58: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer:output_type -> google.cloud.discoveryengine.v1beta.Answer + 45, // 59: google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateSession:output_type -> google.cloud.discoveryengine.v1beta.Session + 46, // 60: google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteSession:output_type -> google.protobuf.Empty + 45, // 61: google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateSession:output_type -> google.cloud.discoveryengine.v1beta.Session + 45, // 62: google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession:output_type -> google.cloud.discoveryengine.v1beta.Session + 17, // 63: google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListSessions:output_type -> google.cloud.discoveryengine.v1beta.ListSessionsResponse + 51, // [51:64] is the sub-list for method output_type + 38, // [38:51] is the sub-list for method input_type + 38, // [38:38] is the sub-list for extension type_name + 38, // [38:38] is the sub-list for extension extendee + 0, // [0:38] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_init() } +func file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_init() { + if File_google_cloud_discoveryengine_v1beta_conversational_search_service_proto != nil { + return + } + file_google_cloud_discoveryengine_v1beta_answer_proto_init() + file_google_cloud_discoveryengine_v1beta_conversation_proto_init() + file_google_cloud_discoveryengine_v1beta_search_service_proto_init() + file_google_cloud_discoveryengine_v1beta_session_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConverseConversationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConverseConversationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateConversationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateConversationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteConversationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConversationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListConversationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListConversationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnswerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SafetySpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_RelatedQuestionsSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_AnswerGenerationSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_QueryUnderstandingSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_AnswerGenerationSpec_ModelSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_AnswerGenerationSpec_PromptSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_DocumentContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_ExtractiveAnswer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_QueryUnderstandingSpec_QueryClassificationSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerQueryRequest_QueryUnderstandingSpec_QueryRephraserSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[21].OneofWrappers = []interface{}{ + (*AnswerQueryRequest_SearchSpec_SearchParams_)(nil), + (*AnswerQueryRequest_SearchSpec_SearchResultList_)(nil), + } + file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes[27].OneofWrappers = []interface{}{ + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_UnstructuredDocumentInfo_)(nil), + (*AnswerQueryRequest_SearchSpec_SearchResultList_SearchResult_ChunkInfo_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_rawDesc, - NumEnums: 0, - NumMessages: 9, + NumEnums: 1, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_goTypes, DependencyIndexes: file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_depIdxs, + EnumInfos: file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_enumTypes, MessageInfos: file_google_cloud_discoveryengine_v1beta_conversational_search_service_proto_msgTypes, }.Build() File_google_cloud_discoveryengine_v1beta_conversational_search_service_proto = out.File @@ -1238,6 +3997,31 @@ type ConversationalSearchServiceClient interface { // Lists all Conversations by their parent // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. ListConversations(ctx context.Context, in *ListConversationsRequest, opts ...grpc.CallOption) (*ListConversationsResponse, error) + // Answer query method. + AnswerQuery(ctx context.Context, in *AnswerQueryRequest, opts ...grpc.CallOption) (*AnswerQueryResponse, error) + // Gets a Answer. + GetAnswer(ctx context.Context, in *GetAnswerRequest, opts ...grpc.CallOption) (*Answer, error) + // Creates a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to create + // already exists, an ALREADY_EXISTS error is returned. + CreateSession(ctx context.Context, in *CreateSessionRequest, opts ...grpc.CallOption) (*Session, error) + // Deletes a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to delete + // does not exist, a NOT_FOUND error is returned. + DeleteSession(ctx context.Context, in *DeleteSessionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Updates a Session. + // + // [Session][google.cloud.discoveryengine.v1beta.Session] action type cannot + // be changed. If the [Session][google.cloud.discoveryengine.v1beta.Session] + // to update does not exist, a NOT_FOUND error is returned. + UpdateSession(ctx context.Context, in *UpdateSessionRequest, opts ...grpc.CallOption) (*Session, error) + // Gets a Session. + GetSession(ctx context.Context, in *GetSessionRequest, opts ...grpc.CallOption) (*Session, error) + // Lists all Sessions by their parent + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. + ListSessions(ctx context.Context, in *ListSessionsRequest, opts ...grpc.CallOption) (*ListSessionsResponse, error) } type conversationalSearchServiceClient struct { @@ -1302,6 +4086,69 @@ func (c *conversationalSearchServiceClient) ListConversations(ctx context.Contex return out, nil } +func (c *conversationalSearchServiceClient) AnswerQuery(ctx context.Context, in *AnswerQueryRequest, opts ...grpc.CallOption) (*AnswerQueryResponse, error) { + out := new(AnswerQueryResponse) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/AnswerQuery", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) GetAnswer(ctx context.Context, in *GetAnswerRequest, opts ...grpc.CallOption) (*Answer, error) { + out := new(Answer) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/GetAnswer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) CreateSession(ctx context.Context, in *CreateSessionRequest, opts ...grpc.CallOption) (*Session, error) { + out := new(Session) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/CreateSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) DeleteSession(ctx context.Context, in *DeleteSessionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/DeleteSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) UpdateSession(ctx context.Context, in *UpdateSessionRequest, opts ...grpc.CallOption) (*Session, error) { + out := new(Session) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/UpdateSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) GetSession(ctx context.Context, in *GetSessionRequest, opts ...grpc.CallOption) (*Session, error) { + out := new(Session) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/GetSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversationalSearchServiceClient) ListSessions(ctx context.Context, in *ListSessionsRequest, opts ...grpc.CallOption) (*ListSessionsResponse, error) { + out := new(ListSessionsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/ListSessions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ConversationalSearchServiceServer is the server API for ConversationalSearchService service. type ConversationalSearchServiceServer interface { // Converses a conversation. @@ -1328,6 +4175,31 @@ type ConversationalSearchServiceServer interface { // Lists all Conversations by their parent // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. ListConversations(context.Context, *ListConversationsRequest) (*ListConversationsResponse, error) + // Answer query method. + AnswerQuery(context.Context, *AnswerQueryRequest) (*AnswerQueryResponse, error) + // Gets a Answer. + GetAnswer(context.Context, *GetAnswerRequest) (*Answer, error) + // Creates a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to create + // already exists, an ALREADY_EXISTS error is returned. + CreateSession(context.Context, *CreateSessionRequest) (*Session, error) + // Deletes a Session. + // + // If the [Session][google.cloud.discoveryengine.v1beta.Session] to delete + // does not exist, a NOT_FOUND error is returned. + DeleteSession(context.Context, *DeleteSessionRequest) (*emptypb.Empty, error) + // Updates a Session. + // + // [Session][google.cloud.discoveryengine.v1beta.Session] action type cannot + // be changed. If the [Session][google.cloud.discoveryengine.v1beta.Session] + // to update does not exist, a NOT_FOUND error is returned. + UpdateSession(context.Context, *UpdateSessionRequest) (*Session, error) + // Gets a Session. + GetSession(context.Context, *GetSessionRequest) (*Session, error) + // Lists all Sessions by their parent + // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. + ListSessions(context.Context, *ListSessionsRequest) (*ListSessionsResponse, error) } // UnimplementedConversationalSearchServiceServer can be embedded to have forward compatible implementations. @@ -1352,6 +4224,27 @@ func (*UnimplementedConversationalSearchServiceServer) GetConversation(context.C func (*UnimplementedConversationalSearchServiceServer) ListConversations(context.Context, *ListConversationsRequest) (*ListConversationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListConversations not implemented") } +func (*UnimplementedConversationalSearchServiceServer) AnswerQuery(context.Context, *AnswerQueryRequest) (*AnswerQueryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AnswerQuery not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) GetAnswer(context.Context, *GetAnswerRequest) (*Answer, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAnswer not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) CreateSession(context.Context, *CreateSessionRequest) (*Session, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSession not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) DeleteSession(context.Context, *DeleteSessionRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSession not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) UpdateSession(context.Context, *UpdateSessionRequest) (*Session, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSession not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) GetSession(context.Context, *GetSessionRequest) (*Session, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSession not implemented") +} +func (*UnimplementedConversationalSearchServiceServer) ListSessions(context.Context, *ListSessionsRequest) (*ListSessionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSessions not implemented") +} func RegisterConversationalSearchServiceServer(s *grpc.Server, srv ConversationalSearchServiceServer) { s.RegisterService(&_ConversationalSearchService_serviceDesc, srv) @@ -1465,6 +4358,132 @@ func _ConversationalSearchService_ListConversations_Handler(srv interface{}, ctx return interceptor(ctx, in, info, handler) } +func _ConversationalSearchService_AnswerQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnswerQueryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).AnswerQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/AnswerQuery", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).AnswerQuery(ctx, req.(*AnswerQueryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_GetAnswer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnswerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).GetAnswer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/GetAnswer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).GetAnswer(ctx, req.(*GetAnswerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_CreateSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).CreateSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/CreateSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).CreateSession(ctx, req.(*CreateSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_DeleteSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).DeleteSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/DeleteSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).DeleteSession(ctx, req.(*DeleteSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_UpdateSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).UpdateSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/UpdateSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).UpdateSession(ctx, req.(*UpdateSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_GetSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).GetSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/GetSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).GetSession(ctx, req.(*GetSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversationalSearchService_ListSessions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSessionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversationalSearchServiceServer).ListSessions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.ConversationalSearchService/ListSessions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversationalSearchServiceServer).ListSessions(ctx, req.(*ListSessionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ConversationalSearchService_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.discoveryengine.v1beta.ConversationalSearchService", HandlerType: (*ConversationalSearchServiceServer)(nil), @@ -1493,6 +4512,34 @@ var _ConversationalSearchService_serviceDesc = grpc.ServiceDesc{ MethodName: "ListConversations", Handler: _ConversationalSearchService_ListConversations_Handler, }, + { + MethodName: "AnswerQuery", + Handler: _ConversationalSearchService_AnswerQuery_Handler, + }, + { + MethodName: "GetAnswer", + Handler: _ConversationalSearchService_GetAnswer_Handler, + }, + { + MethodName: "CreateSession", + Handler: _ConversationalSearchService_CreateSession_Handler, + }, + { + MethodName: "DeleteSession", + Handler: _ConversationalSearchService_DeleteSession_Handler, + }, + { + MethodName: "UpdateSession", + Handler: _ConversationalSearchService_UpdateSession_Handler, + }, + { + MethodName: "GetSession", + Handler: _ConversationalSearchService_GetSession_Handler, + }, + { + MethodName: "ListSessions", + Handler: _ConversationalSearchService_ListSessions_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/discoveryengine/v1beta/conversational_search_service.proto", diff --git a/discoveryengine/apiv1beta/discoveryenginepb/document_processing_config.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/document_processing_config.pb.go index 7941db3f96e..758898b18fe 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/document_processing_config.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/document_processing_config.pb.go @@ -254,11 +254,10 @@ type DocumentProcessingConfig_ParsingConfig_OcrParsingConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Apply additional enhanced OCR processing to a list of document - // elements. + // [DEPRECATED] This field is deprecated. To use the additional enhanced + // document elements processing, please switch to `layout_parsing_config`. // - // Supported values: - // * `table`: advanced table parsing model. + // Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1beta/document_processing_config.proto. EnhancedDocumentElements []string `protobuf:"bytes,1,rep,name=enhanced_document_elements,json=enhancedDocumentElements,proto3" json:"enhanced_document_elements,omitempty"` // If true, will use native text instead of OCR text on pages containing // native text. @@ -297,6 +296,7 @@ func (*DocumentProcessingConfig_ParsingConfig_OcrParsingConfig) Descriptor() ([] return file_google_cloud_discoveryengine_v1beta_document_processing_config_proto_rawDescGZIP(), []int{0, 0, 1} } +// Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1beta/document_processing_config.proto. func (x *DocumentProcessingConfig_ParsingConfig_OcrParsingConfig) GetEnhancedDocumentElements() []string { if x != nil { return x.EnhancedDocumentElements @@ -324,7 +324,7 @@ var file_google_cloud_discoveryengine_v1beta_document_processing_config_proto_ra 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, 0x22, 0xd5, 0x09, 0x0a, 0x18, 0x44, 0x6f, 0x63, 0x75, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x09, 0x0a, 0x18, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x16, 0x64, 0x65, 0x66, @@ -345,7 +345,7 @@ var file_google_cloud_discoveryengine_v1beta_document_processing_config_proto_ra 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x73, 0x1a, 0xe4, 0x03, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x65, 0x73, 0x1a, 0xe8, 0x03, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x98, 0x01, 0x0a, 0x16, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, @@ -366,61 +366,62 @@ var file_google_cloud_discoveryengine_v1beta_document_processing_config_proto_ra 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x6f, 0x63, 0x72, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x16, 0x0a, 0x14, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x78, 0x0a, 0x10, 0x4f, 0x63, 0x72, 0x50, 0x61, 0x72, - 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x7c, 0x0a, 0x10, 0x4f, 0x63, 0x72, 0x50, 0x61, 0x72, + 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, - 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, - 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x65, 0x78, 0x74, - 0x42, 0x17, 0x0a, 0x15, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x96, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 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, 0x61, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x3a, 0x8a, 0x02, 0xea, 0x41, 0x86, 0x02, 0x0a, 0x37, 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, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x71, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, - 0xa4, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x1d, 0x44, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, - 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x18, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x75, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x65, 0x78, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x96, 0x01, + 0x0a, 0x1b, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 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, + 0x61, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x8a, 0x02, 0xea, 0x41, 0x86, 0x02, 0x0a, 0x37, 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, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x71, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0xa4, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, + 0x1d, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, + 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/discoveryengine/apiv1beta/discoveryenginepb/document_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/document_service.pb.go index c981c3dd4bd..4af3d358aad 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/document_service.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/document_service.pb.go @@ -33,6 +33,7 @@ import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" ) const ( @@ -366,6 +367,9 @@ type UpdateDocumentRequest struct { // new [Document][google.cloud.discoveryengine.v1beta.Document] will be // created. AllowMissing bool `protobuf:"varint,2,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` + // Indicates which fields in the provided imported 'document' to update. If + // not set, will by default update all fields. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } func (x *UpdateDocumentRequest) Reset() { @@ -414,6 +418,13 @@ func (x *UpdateDocumentRequest) GetAllowMissing() bool { return false } +func (x *UpdateDocumentRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + // Request message for // [DocumentService.DeleteDocument][google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument] // method. @@ -504,239 +515,246 @@ var file_google_cloud_discoveryengine_v1beta_document_service_proto_rawDesc = [] 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x12, 0x47, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 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, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, + 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xd4, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, + 0x41, 0x02, 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, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5c, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x9b, 0x14, 0x0a, 0x0f, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2d, 0xe0, 0x41, 0x02, 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, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0xd4, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, - 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, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x5c, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 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, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x84, 0x14, 0x0a, 0x0f, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x02, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0xb4, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0xa6, 0x01, 0x5a, 0x59, 0x12, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, - 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x49, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, - 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbf, 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xb6, 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0xa6, 0x01, 0x5a, 0x59, 0x12, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xdd, 0x02, 0x0a, 0x0e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0xda, 0x41, 0x1b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xba, 0x01, - 0x3a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5a, 0x63, 0x3a, 0x08, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, - 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xd1, 0x02, 0x0a, 0x0e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xd3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0xcc, 0x01, 0x3a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5a, 0x6c, 0x3a, 0x08, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x60, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x32, 0x52, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, - 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x9b, - 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb4, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0xa6, 0x01, 0x5a, 0x59, 0x2a, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, - 0x7d, 0x2a, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xb4, 0x01, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa6, + 0x01, 0x5a, 0x59, 0x12, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xae, 0x03, 0x0a, - 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x02, 0xca, - 0x41, 0x7a, 0x0a, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3b, 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, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0xba, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x63, 0x3a, 0x01, 0x2a, 0x22, 0x5e, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x50, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, - 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xa8, 0x03, - 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xba, 0x02, 0xca, 0x41, - 0x78, 0x0a, 0x3a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x67, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x49, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbf, 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xb6, 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0xa6, 0x01, 0x5a, 0x59, 0x12, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x49, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xdd, 0x02, 0x0a, 0x0e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xba, 0x01, 0x3a, + 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5a, 0x63, 0x3a, 0x08, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x49, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xe8, 0x02, 0x0a, 0x0e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, 0x65, - 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb8, 0x01, - 0x3a, 0x01, 0x2a, 0x5a, 0x62, 0x3a, 0x01, 0x2a, 0x22, 0x5d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 0x22, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xea, 0x01, 0xda, 0x41, 0x14, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xcc, 0x01, 0x3a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x5a, 0x6c, 0x3a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x60, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x32, 0x52, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 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, 0x9b, 0x02, 0x0a, - 0x27, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x9b, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb4, 0x01, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa6, 0x01, 0x5a, 0x59, 0x2a, 0x57, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2a, 0x49, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xae, 0x03, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xbe, 0x02, 0xca, 0x41, 0x7a, 0x0a, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xba, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x63, 0x3a, 0x01, + 0x2a, 0x22, 0x5e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x22, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0xa8, 0x03, 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, + 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, + 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xba, 0x02, 0xca, 0x41, 0x78, 0x0a, 0x3a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, + 0x67, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x14, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, - 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x44, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0xb8, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x62, 0x3a, 0x01, 0x2a, 0x22, 0x5d, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 0x22, 0x4f, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 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, 0x9b, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x14, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, + 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -760,34 +778,36 @@ var file_google_cloud_discoveryengine_v1beta_document_service_proto_goTypes = [] (*UpdateDocumentRequest)(nil), // 4: google.cloud.discoveryengine.v1beta.UpdateDocumentRequest (*DeleteDocumentRequest)(nil), // 5: google.cloud.discoveryengine.v1beta.DeleteDocumentRequest (*Document)(nil), // 6: google.cloud.discoveryengine.v1beta.Document - (*ImportDocumentsRequest)(nil), // 7: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest - (*PurgeDocumentsRequest)(nil), // 8: google.cloud.discoveryengine.v1beta.PurgeDocumentsRequest - (*emptypb.Empty)(nil), // 9: google.protobuf.Empty - (*longrunningpb.Operation)(nil), // 10: google.longrunning.Operation + (*fieldmaskpb.FieldMask)(nil), // 7: google.protobuf.FieldMask + (*ImportDocumentsRequest)(nil), // 8: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest + (*PurgeDocumentsRequest)(nil), // 9: google.cloud.discoveryengine.v1beta.PurgeDocumentsRequest + (*emptypb.Empty)(nil), // 10: google.protobuf.Empty + (*longrunningpb.Operation)(nil), // 11: google.longrunning.Operation } var file_google_cloud_discoveryengine_v1beta_document_service_proto_depIdxs = []int32{ 6, // 0: google.cloud.discoveryengine.v1beta.ListDocumentsResponse.documents:type_name -> google.cloud.discoveryengine.v1beta.Document 6, // 1: google.cloud.discoveryengine.v1beta.CreateDocumentRequest.document:type_name -> google.cloud.discoveryengine.v1beta.Document 6, // 2: google.cloud.discoveryengine.v1beta.UpdateDocumentRequest.document:type_name -> google.cloud.discoveryengine.v1beta.Document - 0, // 3: google.cloud.discoveryengine.v1beta.DocumentService.GetDocument:input_type -> google.cloud.discoveryengine.v1beta.GetDocumentRequest - 1, // 4: google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments:input_type -> google.cloud.discoveryengine.v1beta.ListDocumentsRequest - 3, // 5: google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument:input_type -> google.cloud.discoveryengine.v1beta.CreateDocumentRequest - 4, // 6: google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument:input_type -> google.cloud.discoveryengine.v1beta.UpdateDocumentRequest - 5, // 7: google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument:input_type -> google.cloud.discoveryengine.v1beta.DeleteDocumentRequest - 7, // 8: google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments:input_type -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest - 8, // 9: google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments:input_type -> google.cloud.discoveryengine.v1beta.PurgeDocumentsRequest - 6, // 10: google.cloud.discoveryengine.v1beta.DocumentService.GetDocument:output_type -> google.cloud.discoveryengine.v1beta.Document - 2, // 11: google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments:output_type -> google.cloud.discoveryengine.v1beta.ListDocumentsResponse - 6, // 12: google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument:output_type -> google.cloud.discoveryengine.v1beta.Document - 6, // 13: google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument:output_type -> google.cloud.discoveryengine.v1beta.Document - 9, // 14: google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument:output_type -> google.protobuf.Empty - 10, // 15: google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments:output_type -> google.longrunning.Operation - 10, // 16: google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments:output_type -> google.longrunning.Operation - 10, // [10:17] is the sub-list for method output_type - 3, // [3:10] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 7, // 3: google.cloud.discoveryengine.v1beta.UpdateDocumentRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 4: google.cloud.discoveryengine.v1beta.DocumentService.GetDocument:input_type -> google.cloud.discoveryengine.v1beta.GetDocumentRequest + 1, // 5: google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments:input_type -> google.cloud.discoveryengine.v1beta.ListDocumentsRequest + 3, // 6: google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument:input_type -> google.cloud.discoveryengine.v1beta.CreateDocumentRequest + 4, // 7: google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument:input_type -> google.cloud.discoveryengine.v1beta.UpdateDocumentRequest + 5, // 8: google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument:input_type -> google.cloud.discoveryengine.v1beta.DeleteDocumentRequest + 8, // 9: google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments:input_type -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest + 9, // 10: google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments:input_type -> google.cloud.discoveryengine.v1beta.PurgeDocumentsRequest + 6, // 11: google.cloud.discoveryengine.v1beta.DocumentService.GetDocument:output_type -> google.cloud.discoveryengine.v1beta.Document + 2, // 12: google.cloud.discoveryengine.v1beta.DocumentService.ListDocuments:output_type -> google.cloud.discoveryengine.v1beta.ListDocumentsResponse + 6, // 13: google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument:output_type -> google.cloud.discoveryengine.v1beta.Document + 6, // 14: google.cloud.discoveryengine.v1beta.DocumentService.UpdateDocument:output_type -> google.cloud.discoveryengine.v1beta.Document + 10, // 15: google.cloud.discoveryengine.v1beta.DocumentService.DeleteDocument:output_type -> google.protobuf.Empty + 11, // 16: google.cloud.discoveryengine.v1beta.DocumentService.ImportDocuments:output_type -> google.longrunning.Operation + 11, // 17: google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments:output_type -> google.longrunning.Operation + 11, // [11:18] is the sub-list for method output_type + 4, // [4:11] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_google_cloud_discoveryengine_v1beta_document_service_proto_init() } diff --git a/discoveryengine/apiv1beta/discoveryenginepb/engine.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/engine.pb.go index 0dd21fb300f..8fd3fc1f0c9 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/engine.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/engine.pb.go @@ -278,7 +278,7 @@ type Engine_SearchEngineConfig struct { // The search feature tier of this engine. // // Different tiers might have different - // pricing. To learn more, please check the pricing documentation. + // pricing. To learn more, check the pricing documentation. // // Defaults to // [SearchTier.SEARCH_TIER_STANDARD][google.cloud.discoveryengine.v1beta.SearchTier.SEARCH_TIER_STANDARD] @@ -362,7 +362,7 @@ type Engine_ChatEngineConfig struct { // [EngineService.GetEngine][google.cloud.discoveryengine.v1beta.EngineService.GetEngine] // or // [EngineService.ListEngines][google.cloud.discoveryengine.v1beta.EngineService.ListEngines] - // API after engine creation. Please use + // API after engine creation. Use // [ChatEngineMetadata.dialogflow_agent][google.cloud.discoveryengine.v1beta.Engine.ChatEngineMetadata.dialogflow_agent] // for actual agent association after Engine is created. DialogflowAgentToLink string `protobuf:"bytes,2,opt,name=dialogflow_agent_to_link,json=dialogflowAgentToLink,proto3" json:"dialogflow_agent_to_link,omitempty"` diff --git a/discoveryengine/apiv1beta/discoveryenginepb/engine_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/engine_service.pb.go index b9d2400f89e..f784b547b64 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/engine_service.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/engine_service.pb.go @@ -571,6 +571,250 @@ func (x *UpdateEngineRequest) GetUpdateMask() *fieldmaskpb.FieldMask { return nil } +// Request for pausing training of an engine. +type PauseEngineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the engine to pause. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *PauseEngineRequest) Reset() { + *x = PauseEngineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PauseEngineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PauseEngineRequest) ProtoMessage() {} + +func (x *PauseEngineRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_engine_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 PauseEngineRequest.ProtoReflect.Descriptor instead. +func (*PauseEngineRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP(), []int{8} +} + +func (x *PauseEngineRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for resuming training of an engine. +type ResumeEngineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the engine to resume. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ResumeEngineRequest) Reset() { + *x = ResumeEngineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResumeEngineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResumeEngineRequest) ProtoMessage() {} + +func (x *ResumeEngineRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResumeEngineRequest.ProtoReflect.Descriptor instead. +func (*ResumeEngineRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP(), []int{9} +} + +func (x *ResumeEngineRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request to manually start a tuning process now (instead of waiting for +// the periodically scheduled tuning to happen). +type TuneEngineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the engine to tune. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *TuneEngineRequest) Reset() { + *x = TuneEngineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TuneEngineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TuneEngineRequest) ProtoMessage() {} + +func (x *TuneEngineRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TuneEngineRequest.ProtoReflect.Descriptor instead. +func (*TuneEngineRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP(), []int{10} +} + +func (x *TuneEngineRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Metadata associated with a tune operation. +type TuneEngineMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the engine that this tune applies to. + // Format: + // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}` + Engine string `protobuf:"bytes,1,opt,name=engine,proto3" json:"engine,omitempty"` +} + +func (x *TuneEngineMetadata) Reset() { + *x = TuneEngineMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TuneEngineMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TuneEngineMetadata) ProtoMessage() {} + +func (x *TuneEngineMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_engine_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 TuneEngineMetadata.ProtoReflect.Descriptor instead. +func (*TuneEngineMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP(), []int{11} +} + +func (x *TuneEngineMetadata) GetEngine() string { + if x != nil { + return x.Engine + } + return "" +} + +// Response associated with a tune operation. +type TuneEngineResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TuneEngineResponse) Reset() { + *x = TuneEngineResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TuneEngineResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TuneEngineResponse) ProtoMessage() {} + +func (x *TuneEngineResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_engine_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 TuneEngineResponse.ProtoReflect.Descriptor instead. +func (*TuneEngineResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP(), []int{12} +} + var File_google_cloud_discoveryengine_v1beta_engine_service_proto protoreflect.FileDescriptor var file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDesc = []byte{ @@ -671,108 +915,172 @@ var file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDesc = []by 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x32, 0xa3, 0x0a, 0x0a, 0x0d, 0x45, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xba, 0x02, 0x0a, - 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd0, 0x01, 0xca, 0x41, 0x66, 0x0a, 0x2a, 0x67, 0x6f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x57, 0x0a, 0x12, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 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, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, + 0x0a, 0x25, 0x64, 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, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x56, 0x0a, + 0x11, 0x54, 0x75, 0x6e, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 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, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x12, 0x54, 0x75, 0x6e, 0x65, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x06, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, + 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, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x54, 0x75, 0x6e, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa7, 0x0f, 0x0a, 0x0d, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xba, 0x02, 0x0a, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd0, 0x01, 0xca, 0x41, 0x66, 0x0a, 0x2a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x38, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x2c, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, + 0x3a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x8a, 0x02, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, + 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xa0, 0x01, 0xca, 0x41, 0x51, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, + 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x69, 0xda, 0x41, + 0x12, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbd, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 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, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x2c, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x47, 0x3a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x7d, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x8a, 0x02, 0x0a, 0x0c, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 0xca, 0x01, 0x0a, 0x0b, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x01, 0xca, 0x41, 0x51, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x38, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, + 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x22, 0x55, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, + 0x01, 0x2a, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0xcd, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, + 0x6d, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6d, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, + 0x56, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, + 0x2a, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x65, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x75, 0x6e, + 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7f, 0xca, + 0x41, 0x28, 0x0a, 0x12, 0x54, 0x75, 0x6e, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x54, 0x75, 0x6e, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x69, - 0xda, 0x41, 0x12, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x06, 0x65, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbd, 0x01, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, - 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 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, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, - 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0xda, 0x41, - 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 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, 0x99, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x12, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, - 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, - 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, 0x62, - 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x75, 0x6e, 0x65, 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, 0x99, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x12, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, + 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, + 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -787,7 +1095,7 @@ func file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescGZIP() return file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDescData } -var file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_google_cloud_discoveryengine_v1beta_engine_service_proto_goTypes = []interface{}{ (*CreateEngineRequest)(nil), // 0: google.cloud.discoveryengine.v1beta.CreateEngineRequest (*CreateEngineMetadata)(nil), // 1: google.cloud.discoveryengine.v1beta.CreateEngineMetadata @@ -797,32 +1105,43 @@ var file_google_cloud_discoveryengine_v1beta_engine_service_proto_goTypes = []in (*ListEnginesRequest)(nil), // 5: google.cloud.discoveryengine.v1beta.ListEnginesRequest (*ListEnginesResponse)(nil), // 6: google.cloud.discoveryengine.v1beta.ListEnginesResponse (*UpdateEngineRequest)(nil), // 7: google.cloud.discoveryengine.v1beta.UpdateEngineRequest - (*Engine)(nil), // 8: google.cloud.discoveryengine.v1beta.Engine - (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp - (*fieldmaskpb.FieldMask)(nil), // 10: google.protobuf.FieldMask - (*longrunningpb.Operation)(nil), // 11: google.longrunning.Operation + (*PauseEngineRequest)(nil), // 8: google.cloud.discoveryengine.v1beta.PauseEngineRequest + (*ResumeEngineRequest)(nil), // 9: google.cloud.discoveryengine.v1beta.ResumeEngineRequest + (*TuneEngineRequest)(nil), // 10: google.cloud.discoveryengine.v1beta.TuneEngineRequest + (*TuneEngineMetadata)(nil), // 11: google.cloud.discoveryengine.v1beta.TuneEngineMetadata + (*TuneEngineResponse)(nil), // 12: google.cloud.discoveryengine.v1beta.TuneEngineResponse + (*Engine)(nil), // 13: google.cloud.discoveryengine.v1beta.Engine + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 16: google.longrunning.Operation } var file_google_cloud_discoveryengine_v1beta_engine_service_proto_depIdxs = []int32{ - 8, // 0: google.cloud.discoveryengine.v1beta.CreateEngineRequest.engine:type_name -> google.cloud.discoveryengine.v1beta.Engine - 9, // 1: google.cloud.discoveryengine.v1beta.CreateEngineMetadata.create_time:type_name -> google.protobuf.Timestamp - 9, // 2: google.cloud.discoveryengine.v1beta.CreateEngineMetadata.update_time:type_name -> google.protobuf.Timestamp - 9, // 3: google.cloud.discoveryengine.v1beta.DeleteEngineMetadata.create_time:type_name -> google.protobuf.Timestamp - 9, // 4: google.cloud.discoveryengine.v1beta.DeleteEngineMetadata.update_time:type_name -> google.protobuf.Timestamp - 8, // 5: google.cloud.discoveryengine.v1beta.ListEnginesResponse.engines:type_name -> google.cloud.discoveryengine.v1beta.Engine - 8, // 6: google.cloud.discoveryengine.v1beta.UpdateEngineRequest.engine:type_name -> google.cloud.discoveryengine.v1beta.Engine - 10, // 7: google.cloud.discoveryengine.v1beta.UpdateEngineRequest.update_mask:type_name -> google.protobuf.FieldMask + 13, // 0: google.cloud.discoveryengine.v1beta.CreateEngineRequest.engine:type_name -> google.cloud.discoveryengine.v1beta.Engine + 14, // 1: google.cloud.discoveryengine.v1beta.CreateEngineMetadata.create_time:type_name -> google.protobuf.Timestamp + 14, // 2: google.cloud.discoveryengine.v1beta.CreateEngineMetadata.update_time:type_name -> google.protobuf.Timestamp + 14, // 3: google.cloud.discoveryengine.v1beta.DeleteEngineMetadata.create_time:type_name -> google.protobuf.Timestamp + 14, // 4: google.cloud.discoveryengine.v1beta.DeleteEngineMetadata.update_time:type_name -> google.protobuf.Timestamp + 13, // 5: google.cloud.discoveryengine.v1beta.ListEnginesResponse.engines:type_name -> google.cloud.discoveryengine.v1beta.Engine + 13, // 6: google.cloud.discoveryengine.v1beta.UpdateEngineRequest.engine:type_name -> google.cloud.discoveryengine.v1beta.Engine + 15, // 7: google.cloud.discoveryengine.v1beta.UpdateEngineRequest.update_mask:type_name -> google.protobuf.FieldMask 0, // 8: google.cloud.discoveryengine.v1beta.EngineService.CreateEngine:input_type -> google.cloud.discoveryengine.v1beta.CreateEngineRequest 2, // 9: google.cloud.discoveryengine.v1beta.EngineService.DeleteEngine:input_type -> google.cloud.discoveryengine.v1beta.DeleteEngineRequest 7, // 10: google.cloud.discoveryengine.v1beta.EngineService.UpdateEngine:input_type -> google.cloud.discoveryengine.v1beta.UpdateEngineRequest 4, // 11: google.cloud.discoveryengine.v1beta.EngineService.GetEngine:input_type -> google.cloud.discoveryengine.v1beta.GetEngineRequest 5, // 12: google.cloud.discoveryengine.v1beta.EngineService.ListEngines:input_type -> google.cloud.discoveryengine.v1beta.ListEnginesRequest - 11, // 13: google.cloud.discoveryengine.v1beta.EngineService.CreateEngine:output_type -> google.longrunning.Operation - 11, // 14: google.cloud.discoveryengine.v1beta.EngineService.DeleteEngine:output_type -> google.longrunning.Operation - 8, // 15: google.cloud.discoveryengine.v1beta.EngineService.UpdateEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine - 8, // 16: google.cloud.discoveryengine.v1beta.EngineService.GetEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine - 6, // 17: google.cloud.discoveryengine.v1beta.EngineService.ListEngines:output_type -> google.cloud.discoveryengine.v1beta.ListEnginesResponse - 13, // [13:18] is the sub-list for method output_type - 8, // [8:13] is the sub-list for method input_type + 8, // 13: google.cloud.discoveryengine.v1beta.EngineService.PauseEngine:input_type -> google.cloud.discoveryengine.v1beta.PauseEngineRequest + 9, // 14: google.cloud.discoveryengine.v1beta.EngineService.ResumeEngine:input_type -> google.cloud.discoveryengine.v1beta.ResumeEngineRequest + 10, // 15: google.cloud.discoveryengine.v1beta.EngineService.TuneEngine:input_type -> google.cloud.discoveryengine.v1beta.TuneEngineRequest + 16, // 16: google.cloud.discoveryengine.v1beta.EngineService.CreateEngine:output_type -> google.longrunning.Operation + 16, // 17: google.cloud.discoveryengine.v1beta.EngineService.DeleteEngine:output_type -> google.longrunning.Operation + 13, // 18: google.cloud.discoveryengine.v1beta.EngineService.UpdateEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine + 13, // 19: google.cloud.discoveryengine.v1beta.EngineService.GetEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine + 6, // 20: google.cloud.discoveryengine.v1beta.EngineService.ListEngines:output_type -> google.cloud.discoveryengine.v1beta.ListEnginesResponse + 13, // 21: google.cloud.discoveryengine.v1beta.EngineService.PauseEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine + 13, // 22: google.cloud.discoveryengine.v1beta.EngineService.ResumeEngine:output_type -> google.cloud.discoveryengine.v1beta.Engine + 16, // 23: google.cloud.discoveryengine.v1beta.EngineService.TuneEngine:output_type -> google.longrunning.Operation + 16, // [16:24] is the sub-list for method output_type + 8, // [8:16] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name 8, // [8:8] is the sub-list for extension extendee 0, // [0:8] is the sub-list for field type_name @@ -931,6 +1250,66 @@ func file_google_cloud_discoveryengine_v1beta_engine_service_proto_init() { return nil } } + file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PauseEngineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResumeEngineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TuneEngineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TuneEngineMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_engine_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TuneEngineResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -938,7 +1317,7 @@ func file_google_cloud_discoveryengine_v1beta_engine_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_discoveryengine_v1beta_engine_service_proto_rawDesc, NumEnums: 0, - NumMessages: 8, + NumMessages: 13, NumExtensions: 0, NumServices: 1, }, @@ -975,6 +1354,18 @@ type EngineServiceClient interface { // Lists all the [Engine][google.cloud.discoveryengine.v1beta.Engine]s // associated with the project. ListEngines(ctx context.Context, in *ListEnginesRequest, opts ...grpc.CallOption) (*ListEnginesResponse, error) + // Pauses the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + PauseEngine(ctx context.Context, in *PauseEngineRequest, opts ...grpc.CallOption) (*Engine, error) + // Resumes the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + ResumeEngine(ctx context.Context, in *ResumeEngineRequest, opts ...grpc.CallOption) (*Engine, error) + // Tunes an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + TuneEngine(ctx context.Context, in *TuneEngineRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) } type engineServiceClient struct { @@ -1030,6 +1421,33 @@ func (c *engineServiceClient) ListEngines(ctx context.Context, in *ListEnginesRe return out, nil } +func (c *engineServiceClient) PauseEngine(ctx context.Context, in *PauseEngineRequest, opts ...grpc.CallOption) (*Engine, error) { + out := new(Engine) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.EngineService/PauseEngine", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineServiceClient) ResumeEngine(ctx context.Context, in *ResumeEngineRequest, opts ...grpc.CallOption) (*Engine, error) { + out := new(Engine) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.EngineService/ResumeEngine", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *engineServiceClient) TuneEngine(ctx context.Context, in *TuneEngineRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.EngineService/TuneEngine", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // EngineServiceServer is the server API for EngineService service. type EngineServiceServer interface { // Creates a [Engine][google.cloud.discoveryengine.v1beta.Engine]. @@ -1043,6 +1461,18 @@ type EngineServiceServer interface { // Lists all the [Engine][google.cloud.discoveryengine.v1beta.Engine]s // associated with the project. ListEngines(context.Context, *ListEnginesRequest) (*ListEnginesResponse, error) + // Pauses the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + PauseEngine(context.Context, *PauseEngineRequest) (*Engine, error) + // Resumes the training of an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + ResumeEngine(context.Context, *ResumeEngineRequest) (*Engine, error) + // Tunes an existing engine. Only applicable if + // [SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is + // [SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION]. + TuneEngine(context.Context, *TuneEngineRequest) (*longrunningpb.Operation, error) } // UnimplementedEngineServiceServer can be embedded to have forward compatible implementations. @@ -1064,6 +1494,15 @@ func (*UnimplementedEngineServiceServer) GetEngine(context.Context, *GetEngineRe func (*UnimplementedEngineServiceServer) ListEngines(context.Context, *ListEnginesRequest) (*ListEnginesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListEngines not implemented") } +func (*UnimplementedEngineServiceServer) PauseEngine(context.Context, *PauseEngineRequest) (*Engine, error) { + return nil, status.Errorf(codes.Unimplemented, "method PauseEngine not implemented") +} +func (*UnimplementedEngineServiceServer) ResumeEngine(context.Context, *ResumeEngineRequest) (*Engine, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResumeEngine not implemented") +} +func (*UnimplementedEngineServiceServer) TuneEngine(context.Context, *TuneEngineRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method TuneEngine not implemented") +} func RegisterEngineServiceServer(s *grpc.Server, srv EngineServiceServer) { s.RegisterService(&_EngineService_serviceDesc, srv) @@ -1159,6 +1598,60 @@ func _EngineService_ListEngines_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _EngineService_PauseEngine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PauseEngineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineServiceServer).PauseEngine(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.EngineService/PauseEngine", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineServiceServer).PauseEngine(ctx, req.(*PauseEngineRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineService_ResumeEngine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResumeEngineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineServiceServer).ResumeEngine(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.EngineService/ResumeEngine", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineServiceServer).ResumeEngine(ctx, req.(*ResumeEngineRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EngineService_TuneEngine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TuneEngineRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EngineServiceServer).TuneEngine(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.EngineService/TuneEngine", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EngineServiceServer).TuneEngine(ctx, req.(*TuneEngineRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _EngineService_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.discoveryengine.v1beta.EngineService", HandlerType: (*EngineServiceServer)(nil), @@ -1183,6 +1676,18 @@ var _EngineService_serviceDesc = grpc.ServiceDesc{ MethodName: "ListEngines", Handler: _EngineService_ListEngines_Handler, }, + { + MethodName: "PauseEngine", + Handler: _EngineService_PauseEngine_Handler, + }, + { + MethodName: "ResumeEngine", + Handler: _EngineService_ResumeEngine_Handler, + }, + { + MethodName: "TuneEngine", + Handler: _EngineService_TuneEngine_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/discoveryengine/v1beta/engine_service.proto", diff --git a/discoveryengine/apiv1beta/discoveryenginepb/grounded_generation_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/grounded_generation_service.pb.go new file mode 100755 index 00000000000..9d0800e6fe9 --- /dev/null +++ b/discoveryengine/apiv1beta/discoveryenginepb/grounded_generation_service.pb.go @@ -0,0 +1,642 @@ +// 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.32.0 +// protoc v4.25.2 +// source: google/cloud/discoveryengine/v1beta/grounded_generation_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" +) + +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) +) + +// Specification for the grounding check. +type CheckGroundingSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The threshold (in [0,1]) used for determining whether a fact must be + // cited for a claim in the answer candidate. Choosing a higher threshold + // will lead to fewer but very strong citations, while choosing a lower + // threshold may lead to more but somewhat weaker citations. If unset, the + // threshold will default to 0.6. + CitationThreshold *float64 `protobuf:"fixed64,1,opt,name=citation_threshold,json=citationThreshold,proto3,oneof" json:"citation_threshold,omitempty"` +} + +func (x *CheckGroundingSpec) Reset() { + *x = CheckGroundingSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckGroundingSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckGroundingSpec) ProtoMessage() {} + +func (x *CheckGroundingSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_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 CheckGroundingSpec.ProtoReflect.Descriptor instead. +func (*CheckGroundingSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescGZIP(), []int{0} +} + +func (x *CheckGroundingSpec) GetCitationThreshold() float64 { + if x != nil && x.CitationThreshold != nil { + return *x.CitationThreshold + } + return 0 +} + +// Request message for +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding] +// method. +type CheckGroundingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the grounding config, such as + // `projects/*/locations/global/groundingConfigs/default_grounding_config`. + GroundingConfig string `protobuf:"bytes,1,opt,name=grounding_config,json=groundingConfig,proto3" json:"grounding_config,omitempty"` + // Answer candidate to check. + AnswerCandidate string `protobuf:"bytes,2,opt,name=answer_candidate,json=answerCandidate,proto3" json:"answer_candidate,omitempty"` + // List of facts for the grounding check. + // We support up to 200 facts. + Facts []*GroundingFact `protobuf:"bytes,3,rep,name=facts,proto3" json:"facts,omitempty"` + // Configuration of the grounding check. + GroundingSpec *CheckGroundingSpec `protobuf:"bytes,4,opt,name=grounding_spec,json=groundingSpec,proto3" json:"grounding_spec,omitempty"` +} + +func (x *CheckGroundingRequest) Reset() { + *x = CheckGroundingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckGroundingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckGroundingRequest) ProtoMessage() {} + +func (x *CheckGroundingRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_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 CheckGroundingRequest.ProtoReflect.Descriptor instead. +func (*CheckGroundingRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescGZIP(), []int{1} +} + +func (x *CheckGroundingRequest) GetGroundingConfig() string { + if x != nil { + return x.GroundingConfig + } + return "" +} + +func (x *CheckGroundingRequest) GetAnswerCandidate() string { + if x != nil { + return x.AnswerCandidate + } + return "" +} + +func (x *CheckGroundingRequest) GetFacts() []*GroundingFact { + if x != nil { + return x.Facts + } + return nil +} + +func (x *CheckGroundingRequest) GetGroundingSpec() *CheckGroundingSpec { + if x != nil { + return x.GroundingSpec + } + return nil +} + +// Response message for the +// [GroundedGenerationService.CheckGrounding][google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding] +// method. +type CheckGroundingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The support score for the input answer candidate. + // Higher the score, higher is the fraction of claims that are supported by + // the provided facts. This is always set when a response is returned. + SupportScore *float32 `protobuf:"fixed32,1,opt,name=support_score,json=supportScore,proto3,oneof" json:"support_score,omitempty"` + // List of facts cited across all claims in the answer candidate. + // These are derived from the facts supplied in the request. + CitedChunks []*FactChunk `protobuf:"bytes,3,rep,name=cited_chunks,json=citedChunks,proto3" json:"cited_chunks,omitempty"` + // Claim texts and citation info across all claims in the answer candidate. + Claims []*CheckGroundingResponse_Claim `protobuf:"bytes,4,rep,name=claims,proto3" json:"claims,omitempty"` +} + +func (x *CheckGroundingResponse) Reset() { + *x = CheckGroundingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckGroundingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckGroundingResponse) ProtoMessage() {} + +func (x *CheckGroundingResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_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 CheckGroundingResponse.ProtoReflect.Descriptor instead. +func (*CheckGroundingResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescGZIP(), []int{2} +} + +func (x *CheckGroundingResponse) GetSupportScore() float32 { + if x != nil && x.SupportScore != nil { + return *x.SupportScore + } + return 0 +} + +func (x *CheckGroundingResponse) GetCitedChunks() []*FactChunk { + if x != nil { + return x.CitedChunks + } + return nil +} + +func (x *CheckGroundingResponse) GetClaims() []*CheckGroundingResponse_Claim { + if x != nil { + return x.Claims + } + return nil +} + +// Text and citation info for a claim in the answer candidate. +type CheckGroundingResponse_Claim struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Position indicating the start of the claim in the answer candidate, + // measured in bytes. + StartPos *int32 `protobuf:"varint,1,opt,name=start_pos,json=startPos,proto3,oneof" json:"start_pos,omitempty"` + // Position indicating the end of the claim in the answer candidate, + // exclusive. + EndPos *int32 `protobuf:"varint,2,opt,name=end_pos,json=endPos,proto3,oneof" json:"end_pos,omitempty"` + // Text for the claim in the answer candidate. Always provided regardless of + // whether citations or anti-citations are found. + ClaimText string `protobuf:"bytes,3,opt,name=claim_text,json=claimText,proto3" json:"claim_text,omitempty"` + // A list of indices (into 'cited_chunks') specifying the citations + // associated with the claim. For instance [1,3,4] means that + // cited_chunks[1], cited_chunks[3], cited_chunks[4] are the facts cited + // supporting for the claim. A citation to a fact indicates that the claim + // is supported by the fact. + CitationIndices []int32 `protobuf:"varint,4,rep,packed,name=citation_indices,json=citationIndices,proto3" json:"citation_indices,omitempty"` +} + +func (x *CheckGroundingResponse_Claim) Reset() { + *x = CheckGroundingResponse_Claim{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckGroundingResponse_Claim) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckGroundingResponse_Claim) ProtoMessage() {} + +func (x *CheckGroundingResponse_Claim) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounded_generation_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 CheckGroundingResponse_Claim.ProtoReflect.Descriptor instead. +func (*CheckGroundingResponse_Claim) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *CheckGroundingResponse_Claim) GetStartPos() int32 { + if x != nil && x.StartPos != nil { + return *x.StartPos + } + return 0 +} + +func (x *CheckGroundingResponse_Claim) GetEndPos() int32 { + if x != nil && x.EndPos != nil { + return *x.EndPos + } + return 0 +} + +func (x *CheckGroundingResponse_Claim) GetClaimText() string { + if x != nil { + return x.ClaimText + } + return "" +} + +func (x *CheckGroundingResponse_Claim) GetCitationIndices() []int32 { + if x != nil { + return x.CitationIndices + } + return nil +} + +var File_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDesc = []byte{ + 0x0a, 0x45, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 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, + 0x33, 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, + 0x62, 0x65, 0x74, 0x61, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5f, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x11, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xcf, 0x02, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x61, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x30, 0x0a, 0x2e, 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, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, + 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 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, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, + 0x52, 0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x22, 0xb0, 0x03, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0c, + 0x63, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, + 0x6e, 0x6b, 0x52, 0x0b, 0x63, 0x69, 0x74, 0x65, 0x64, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, + 0x59, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x04, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x1a, 0xab, 0x01, 0x0a, 0x05, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x50, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x50, 0x6f, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x65, + 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x63, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xd2, 0x02, 0x0a, 0x19, 0x47, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x22, + 0x4a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 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, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x68, 0x65, 0x63, 0x6b, 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, + 0xa5, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x1e, 0x47, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, + 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_goTypes = []interface{}{ + (*CheckGroundingSpec)(nil), // 0: google.cloud.discoveryengine.v1beta.CheckGroundingSpec + (*CheckGroundingRequest)(nil), // 1: google.cloud.discoveryengine.v1beta.CheckGroundingRequest + (*CheckGroundingResponse)(nil), // 2: google.cloud.discoveryengine.v1beta.CheckGroundingResponse + (*CheckGroundingResponse_Claim)(nil), // 3: google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim + (*GroundingFact)(nil), // 4: google.cloud.discoveryengine.v1beta.GroundingFact + (*FactChunk)(nil), // 5: google.cloud.discoveryengine.v1beta.FactChunk +} +var file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_depIdxs = []int32{ + 4, // 0: google.cloud.discoveryengine.v1beta.CheckGroundingRequest.facts:type_name -> google.cloud.discoveryengine.v1beta.GroundingFact + 0, // 1: google.cloud.discoveryengine.v1beta.CheckGroundingRequest.grounding_spec:type_name -> google.cloud.discoveryengine.v1beta.CheckGroundingSpec + 5, // 2: google.cloud.discoveryengine.v1beta.CheckGroundingResponse.cited_chunks:type_name -> google.cloud.discoveryengine.v1beta.FactChunk + 3, // 3: google.cloud.discoveryengine.v1beta.CheckGroundingResponse.claims:type_name -> google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim + 1, // 4: google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding:input_type -> google.cloud.discoveryengine.v1beta.CheckGroundingRequest + 2, // 5: google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding:output_type -> google.cloud.discoveryengine.v1beta.CheckGroundingResponse + 5, // [5:6] is the sub-list for method output_type + 4, // [4:5] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_init() } +func file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_init() { + if File_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto != nil { + return + } + file_google_cloud_discoveryengine_v1beta_grounding_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckGroundingSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckGroundingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckGroundingResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckGroundingResponse_Claim); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes[3].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_goTypes, + DependencyIndexes: file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_depIdxs, + MessageInfos: file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_msgTypes, + }.Build() + File_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto = out.File + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_rawDesc = nil + file_google_cloud_discoveryengine_v1beta_grounded_generation_service_proto_goTypes = nil + file_google_cloud_discoveryengine_v1beta_grounded_generation_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 + +// GroundedGenerationServiceClient is the client API for GroundedGenerationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GroundedGenerationServiceClient interface { + // Performs a grounding check. + CheckGrounding(ctx context.Context, in *CheckGroundingRequest, opts ...grpc.CallOption) (*CheckGroundingResponse, error) +} + +type groundedGenerationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewGroundedGenerationServiceClient(cc grpc.ClientConnInterface) GroundedGenerationServiceClient { + return &groundedGenerationServiceClient{cc} +} + +func (c *groundedGenerationServiceClient) CheckGrounding(ctx context.Context, in *CheckGroundingRequest, opts ...grpc.CallOption) (*CheckGroundingResponse, error) { + out := new(CheckGroundingResponse) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.GroundedGenerationService/CheckGrounding", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GroundedGenerationServiceServer is the server API for GroundedGenerationService service. +type GroundedGenerationServiceServer interface { + // Performs a grounding check. + CheckGrounding(context.Context, *CheckGroundingRequest) (*CheckGroundingResponse, error) +} + +// UnimplementedGroundedGenerationServiceServer can be embedded to have forward compatible implementations. +type UnimplementedGroundedGenerationServiceServer struct { +} + +func (*UnimplementedGroundedGenerationServiceServer) CheckGrounding(context.Context, *CheckGroundingRequest) (*CheckGroundingResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckGrounding not implemented") +} + +func RegisterGroundedGenerationServiceServer(s *grpc.Server, srv GroundedGenerationServiceServer) { + s.RegisterService(&_GroundedGenerationService_serviceDesc, srv) +} + +func _GroundedGenerationService_CheckGrounding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckGroundingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroundedGenerationServiceServer).CheckGrounding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.GroundedGenerationService/CheckGrounding", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroundedGenerationServiceServer).CheckGrounding(ctx, req.(*CheckGroundingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GroundedGenerationService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.discoveryengine.v1beta.GroundedGenerationService", + HandlerType: (*GroundedGenerationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CheckGrounding", + Handler: _GroundedGenerationService_CheckGrounding_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/discoveryengine/v1beta/grounded_generation_service.proto", +} diff --git a/discoveryengine/apiv1beta/discoveryenginepb/grounding.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/grounding.pb.go new file mode 100755 index 00000000000..adab219d89b --- /dev/null +++ b/discoveryengine/apiv1beta/discoveryenginepb/grounding.pb.go @@ -0,0 +1,308 @@ +// 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.32.0 +// protoc v4.25.2 +// source: google/cloud/discoveryengine/v1beta/grounding.proto + +package discoveryenginepb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Grounding Fact. +type GroundingFact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text content of the fact. Can be at most 10K characters long. + FactText string `protobuf:"bytes,1,opt,name=fact_text,json=factText,proto3" json:"fact_text,omitempty"` + // Attributes associated with the fact. + // Common attributes include `source` (indicating where the fact was sourced + // from), `author` (indicating the author of the fact), and so on. + Attributes map[string]string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *GroundingFact) Reset() { + *x = GroundingFact{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroundingFact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroundingFact) ProtoMessage() {} + +func (x *GroundingFact) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounding_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 GroundingFact.ProtoReflect.Descriptor instead. +func (*GroundingFact) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescGZIP(), []int{0} +} + +func (x *GroundingFact) GetFactText() string { + if x != nil { + return x.FactText + } + return "" +} + +func (x *GroundingFact) GetAttributes() map[string]string { + if x != nil { + return x.Attributes + } + return nil +} + +// Fact Chunk. +type FactChunk struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Text content of the fact chunk. Can be at most 10K characters long. + ChunkText string `protobuf:"bytes,1,opt,name=chunk_text,json=chunkText,proto3" json:"chunk_text,omitempty"` + // Source from which this fact chunk was retrieved. If it was retrieved + // from the GroundingFacts provided in the request then this field will + // contain the index of the specific fact from which this chunk was + // retrieved. + Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` + // More fine-grained information for the source reference. + SourceMetadata map[string]string `protobuf:"bytes,3,rep,name=source_metadata,json=sourceMetadata,proto3" json:"source_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *FactChunk) Reset() { + *x = FactChunk{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FactChunk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FactChunk) ProtoMessage() {} + +func (x *FactChunk) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_grounding_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 FactChunk.ProtoReflect.Descriptor instead. +func (*FactChunk) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescGZIP(), []int{1} +} + +func (x *FactChunk) GetChunkText() string { + if x != nil { + return x.ChunkText + } + return "" +} + +func (x *FactChunk) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *FactChunk) GetSourceMetadata() map[string]string { + if x != nil { + return x.SourceMetadata + } + return nil +} + +var File_google_cloud_discoveryengine_v1beta_grounding_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDesc = []byte{ + 0x0a, 0x33, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x22, 0xcf, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, + 0x74, 0x54, 0x65, 0x78, 0x74, 0x12, 0x62, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x2e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0xf2, 0x01, 0x0a, 0x09, 0x46, 0x61, 0x63, + 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, + 0x6b, 0x54, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6b, 0x0a, + 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x61, 0x63, + 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x95, 0x02, + 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_discoveryengine_v1beta_grounding_proto_goTypes = []interface{}{ + (*GroundingFact)(nil), // 0: google.cloud.discoveryengine.v1beta.GroundingFact + (*FactChunk)(nil), // 1: google.cloud.discoveryengine.v1beta.FactChunk + nil, // 2: google.cloud.discoveryengine.v1beta.GroundingFact.AttributesEntry + nil, // 3: google.cloud.discoveryengine.v1beta.FactChunk.SourceMetadataEntry +} +var file_google_cloud_discoveryengine_v1beta_grounding_proto_depIdxs = []int32{ + 2, // 0: google.cloud.discoveryengine.v1beta.GroundingFact.attributes:type_name -> google.cloud.discoveryengine.v1beta.GroundingFact.AttributesEntry + 3, // 1: google.cloud.discoveryengine.v1beta.FactChunk.source_metadata:type_name -> google.cloud.discoveryengine.v1beta.FactChunk.SourceMetadataEntry + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_grounding_proto_init() } +func file_google_cloud_discoveryengine_v1beta_grounding_proto_init() { + if File_google_cloud_discoveryengine_v1beta_grounding_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroundingFact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FactChunk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_discoveryengine_v1beta_grounding_proto_goTypes, + DependencyIndexes: file_google_cloud_discoveryengine_v1beta_grounding_proto_depIdxs, + MessageInfos: file_google_cloud_discoveryengine_v1beta_grounding_proto_msgTypes, + }.Build() + File_google_cloud_discoveryengine_v1beta_grounding_proto = out.File + file_google_cloud_discoveryengine_v1beta_grounding_proto_rawDesc = nil + file_google_cloud_discoveryengine_v1beta_grounding_proto_goTypes = nil + file_google_cloud_discoveryengine_v1beta_grounding_proto_depIdxs = nil +} diff --git a/discoveryengine/apiv1beta/discoveryenginepb/import_config.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/import_config.pb.go index b9be693763b..2f60bcc6eef 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/import_config.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/import_config.pb.go @@ -29,6 +29,7 @@ import ( date "google.golang.org/genproto/googleapis/type/date" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) @@ -39,6 +40,136 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// The type of values in a Bigtable column or column family. +// The values are expected to be encoded using +// [HBase +// Bytes.toBytes](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/util/Bytes.html) +// function when the encoding value is set to `BINARY`. +type BigtableOptions_Type int32 + +const ( + // The type is unspecified. + BigtableOptions_TYPE_UNSPECIFIED BigtableOptions_Type = 0 + // String type. + BigtableOptions_STRING BigtableOptions_Type = 1 + // Numerical type. + BigtableOptions_NUMBER BigtableOptions_Type = 2 + // Integer type. + BigtableOptions_INTEGER BigtableOptions_Type = 3 + // Variable length integer type. + BigtableOptions_VAR_INTEGER BigtableOptions_Type = 4 + // BigDecimal type. + BigtableOptions_BIG_NUMERIC BigtableOptions_Type = 5 + // Boolean type. + BigtableOptions_BOOLEAN BigtableOptions_Type = 6 + // JSON type. + BigtableOptions_JSON BigtableOptions_Type = 7 +) + +// Enum value maps for BigtableOptions_Type. +var ( + BigtableOptions_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "STRING", + 2: "NUMBER", + 3: "INTEGER", + 4: "VAR_INTEGER", + 5: "BIG_NUMERIC", + 6: "BOOLEAN", + 7: "JSON", + } + BigtableOptions_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "STRING": 1, + "NUMBER": 2, + "INTEGER": 3, + "VAR_INTEGER": 4, + "BIG_NUMERIC": 5, + "BOOLEAN": 6, + "JSON": 7, + } +) + +func (x BigtableOptions_Type) Enum() *BigtableOptions_Type { + p := new(BigtableOptions_Type) + *p = x + return p +} + +func (x BigtableOptions_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BigtableOptions_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[0].Descriptor() +} + +func (BigtableOptions_Type) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[0] +} + +func (x BigtableOptions_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BigtableOptions_Type.Descriptor instead. +func (BigtableOptions_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3, 0} +} + +// The encoding mode of a Bigtable column or column family. +type BigtableOptions_Encoding int32 + +const ( + // The encoding is unspecified. + BigtableOptions_ENCODING_UNSPECIFIED BigtableOptions_Encoding = 0 + // Text encoding. + BigtableOptions_TEXT BigtableOptions_Encoding = 1 + // Binary encoding. + BigtableOptions_BINARY BigtableOptions_Encoding = 2 +) + +// Enum value maps for BigtableOptions_Encoding. +var ( + BigtableOptions_Encoding_name = map[int32]string{ + 0: "ENCODING_UNSPECIFIED", + 1: "TEXT", + 2: "BINARY", + } + BigtableOptions_Encoding_value = map[string]int32{ + "ENCODING_UNSPECIFIED": 0, + "TEXT": 1, + "BINARY": 2, + } +) + +func (x BigtableOptions_Encoding) Enum() *BigtableOptions_Encoding { + p := new(BigtableOptions_Encoding) + *p = x + return p +} + +func (x BigtableOptions_Encoding) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BigtableOptions_Encoding) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[1].Descriptor() +} + +func (BigtableOptions_Encoding) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[1] +} + +func (x BigtableOptions_Encoding) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BigtableOptions_Encoding.Descriptor instead. +func (BigtableOptions_Encoding) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3, 1} +} + // Indicates how imported documents are reconciled with the existing documents // created or imported before. type ImportDocumentsRequest_ReconciliationMode int32 @@ -78,11 +209,11 @@ func (x ImportDocumentsRequest_ReconciliationMode) String() string { } func (ImportDocumentsRequest_ReconciliationMode) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[0].Descriptor() + return file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[2].Descriptor() } func (ImportDocumentsRequest_ReconciliationMode) Type() protoreflect.EnumType { - return &file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[0] + return &file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes[2] } func (x ImportDocumentsRequest_ReconciliationMode) Number() protoreflect.EnumNumber { @@ -91,7 +222,7 @@ func (x ImportDocumentsRequest_ReconciliationMode) Number() protoreflect.EnumNum // Deprecated: Use ImportDocumentsRequest_ReconciliationMode.Descriptor instead. func (ImportDocumentsRequest_ReconciliationMode) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{7, 0} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{13, 0} } // Cloud Storage location for input content. @@ -124,13 +255,13 @@ type GcsSource struct { // bits of SHA256(URI) encoded as a hex string. // - `custom`: One custom data JSON per row in arbitrary format that conforms // to the defined [Schema][google.cloud.discoveryengine.v1beta.Schema] of - // the data store. This can only be used by Gen App Builder. + // the data store. This can only be used by the GENERIC Data Store vertical. // - `csv`: A CSV file with header conforming to the defined // // [Schema][google.cloud.discoveryengine.v1beta.Schema] of the // // data store. Each entry after the header is imported as a Document. - // This can only be used by Gen App Builder. + // This can only be used by the GENERIC Data Store vertical. // // Supported values for user even imports: // @@ -231,7 +362,7 @@ type BigQuerySource struct { // [Document.struct_data][google.cloud.discoveryengine.v1beta.Document.struct_data]. // - `custom`: One custom data per row in arbitrary format that conforms to // the defined [Schema][google.cloud.discoveryengine.v1beta.Schema] of the - // data store. This can only be used by Gen App Builder. + // data store. This can only be used by the GENERIC Data Store vertical. DataSchema string `protobuf:"bytes,6,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"` } @@ -244,14 +375,529 @@ func (x *BigQuerySource) Reset() { } } -func (x *BigQuerySource) String() string { +func (x *BigQuerySource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigQuerySource) ProtoMessage() {} + +func (x *BigQuerySource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 BigQuerySource.ProtoReflect.Descriptor instead. +func (*BigQuerySource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{1} +} + +func (m *BigQuerySource) GetPartition() isBigQuerySource_Partition { + if m != nil { + return m.Partition + } + return nil +} + +func (x *BigQuerySource) GetPartitionDate() *date.Date { + if x, ok := x.GetPartition().(*BigQuerySource_PartitionDate); ok { + return x.PartitionDate + } + return nil +} + +func (x *BigQuerySource) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *BigQuerySource) GetDatasetId() string { + if x != nil { + return x.DatasetId + } + return "" +} + +func (x *BigQuerySource) GetTableId() string { + if x != nil { + return x.TableId + } + return "" +} + +func (x *BigQuerySource) GetGcsStagingDir() string { + if x != nil { + return x.GcsStagingDir + } + return "" +} + +func (x *BigQuerySource) GetDataSchema() string { + if x != nil { + return x.DataSchema + } + return "" +} + +type isBigQuerySource_Partition interface { + isBigQuerySource_Partition() +} + +type BigQuerySource_PartitionDate struct { + // BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. + PartitionDate *date.Date `protobuf:"bytes,5,opt,name=partition_date,json=partitionDate,proto3,oneof"` +} + +func (*BigQuerySource_PartitionDate) isBigQuerySource_Partition() {} + +// The Spanner source for importing data +type SpannerSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project ID that the Spanner source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Required. The instance ID of the source Spanner table. + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + // Required. The database ID of the source Spanner table. + DatabaseId string `protobuf:"bytes,3,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"` + // Required. The table name of the Spanner database that needs to be imported. + TableId string `protobuf:"bytes,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + // Whether to apply data boost on Spanner export. Enabling this option will + // incur additional cost. More info can be found + // [here](https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas). + EnableDataBoost bool `protobuf:"varint,5,opt,name=enable_data_boost,json=enableDataBoost,proto3" json:"enable_data_boost,omitempty"` +} + +func (x *SpannerSource) Reset() { + *x = SpannerSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpannerSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpannerSource) ProtoMessage() {} + +func (x *SpannerSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 SpannerSource.ProtoReflect.Descriptor instead. +func (*SpannerSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{2} +} + +func (x *SpannerSource) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *SpannerSource) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *SpannerSource) GetDatabaseId() string { + if x != nil { + return x.DatabaseId + } + return "" +} + +func (x *SpannerSource) GetTableId() string { + if x != nil { + return x.TableId + } + return "" +} + +func (x *SpannerSource) GetEnableDataBoost() bool { + if x != nil { + return x.EnableDataBoost + } + return false +} + +// The Bigtable Options object that contains information to support +// the import. +type BigtableOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The field name used for saving row key value in the document. The name has + // to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + KeyFieldName string `protobuf:"bytes,1,opt,name=key_field_name,json=keyFieldName,proto3" json:"key_field_name,omitempty"` + // The mapping from family names to an object that contains column families + // level information for the given column family. If a family is not present + // in this map it will be ignored. + Families map[string]*BigtableOptions_BigtableColumnFamily `protobuf:"bytes,2,rep,name=families,proto3" json:"families,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *BigtableOptions) Reset() { + *x = BigtableOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BigtableOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigtableOptions) ProtoMessage() {} + +func (x *BigtableOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 BigtableOptions.ProtoReflect.Descriptor instead. +func (*BigtableOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3} +} + +func (x *BigtableOptions) GetKeyFieldName() string { + if x != nil { + return x.KeyFieldName + } + return "" +} + +func (x *BigtableOptions) GetFamilies() map[string]*BigtableOptions_BigtableColumnFamily { + if x != nil { + return x.Families + } + return nil +} + +// The Cloud Bigtable source for importing data. +type BigtableSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project ID that the Bigtable source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Required. The instance ID of the Cloud Bigtable that needs to be imported. + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + // Required. The table ID of the Cloud Bigtable that needs to be imported. + TableId string `protobuf:"bytes,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + // Required. Bigtable options that contains information needed when parsing + // data into typed structures. For example, column type annotations. + BigtableOptions *BigtableOptions `protobuf:"bytes,4,opt,name=bigtable_options,json=bigtableOptions,proto3" json:"bigtable_options,omitempty"` +} + +func (x *BigtableSource) Reset() { + *x = BigtableSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BigtableSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigtableSource) ProtoMessage() {} + +func (x *BigtableSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 BigtableSource.ProtoReflect.Descriptor instead. +func (*BigtableSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{4} +} + +func (x *BigtableSource) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *BigtableSource) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *BigtableSource) GetTableId() string { + if x != nil { + return x.TableId + } + return "" +} + +func (x *BigtableSource) GetBigtableOptions() *BigtableOptions { + if x != nil { + return x.BigtableOptions + } + return nil +} + +// Cloud FhirStore source import data from. +type FhirStoreSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The full resource name of the FHIR store to import data from, in + // the format of + // `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}`. + FhirStore string `protobuf:"bytes,1,opt,name=fhir_store,json=fhirStore,proto3" json:"fhir_store,omitempty"` + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // FhirStore export to a specific Cloud Storage directory. + GcsStagingDir string `protobuf:"bytes,2,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"` +} + +func (x *FhirStoreSource) Reset() { + *x = FhirStoreSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FhirStoreSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FhirStoreSource) ProtoMessage() {} + +func (x *FhirStoreSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 FhirStoreSource.ProtoReflect.Descriptor instead. +func (*FhirStoreSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{5} +} + +func (x *FhirStoreSource) GetFhirStore() string { + if x != nil { + return x.FhirStore + } + return "" +} + +func (x *FhirStoreSource) GetGcsStagingDir() string { + if x != nil { + return x.GcsStagingDir + } + return "" +} + +// Cloud SQL source import data from. +type CloudSqlSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Required. The Cloud SQL instance to copy the data from with a length limit + // of 256 characters. + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + // Required. The Cloud SQL database to copy the data from with a length limit + // of 256 characters. + DatabaseId string `protobuf:"bytes,3,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"` + // Required. The Cloud SQL table to copy the data from with a length limit of + // 256 characters. + TableId string `protobuf:"bytes,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Cloud SQL export to a specific Cloud Storage directory. + // + // Ensure that the Cloud SQL service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + GcsStagingDir string `protobuf:"bytes,5,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"` + // Option for serverless export. Enabling this option will incur additional + // cost. More info can be found + // [here](https://cloud.google.com/sql/pricing#serverless). + Offload bool `protobuf:"varint,6,opt,name=offload,proto3" json:"offload,omitempty"` +} + +func (x *CloudSqlSource) Reset() { + *x = CloudSqlSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudSqlSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudSqlSource) ProtoMessage() {} + +func (x *CloudSqlSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 CloudSqlSource.ProtoReflect.Descriptor instead. +func (*CloudSqlSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{6} +} + +func (x *CloudSqlSource) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *CloudSqlSource) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *CloudSqlSource) GetDatabaseId() string { + if x != nil { + return x.DatabaseId + } + return "" +} + +func (x *CloudSqlSource) GetTableId() string { + if x != nil { + return x.TableId + } + return "" +} + +func (x *CloudSqlSource) GetGcsStagingDir() string { + if x != nil { + return x.GcsStagingDir + } + return "" +} + +func (x *CloudSqlSource) GetOffload() bool { + if x != nil { + return x.Offload + } + return false +} + +// Firestore source import data from. +type FirestoreSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project ID that the Cloud SQL source is in with a length limit of 128 + // characters. If not specified, inherits the project ID from the parent + // request. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Required. The Firestore database to copy the data from with a length limit + // of 256 characters. + DatabaseId string `protobuf:"bytes,2,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"` + // Required. The Firestore collection to copy the data from with a length + // limit of 1,500 characters. + CollectionId string `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // Firestore export to a specific Cloud Storage directory. + // + // Ensure that the Firestore service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + GcsStagingDir string `protobuf:"bytes,4,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"` +} + +func (x *FirestoreSource) Reset() { + *x = FirestoreSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FirestoreSource) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BigQuerySource) ProtoMessage() {} +func (*FirestoreSource) ProtoMessage() {} -func (x *BigQuerySource) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[1] +func (x *FirestoreSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -262,71 +908,39 @@ func (x *BigQuerySource) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BigQuerySource.ProtoReflect.Descriptor instead. -func (*BigQuerySource) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{1} -} - -func (m *BigQuerySource) GetPartition() isBigQuerySource_Partition { - if m != nil { - return m.Partition - } - return nil -} - -func (x *BigQuerySource) GetPartitionDate() *date.Date { - if x, ok := x.GetPartition().(*BigQuerySource_PartitionDate); ok { - return x.PartitionDate - } - return nil +// Deprecated: Use FirestoreSource.ProtoReflect.Descriptor instead. +func (*FirestoreSource) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{7} } -func (x *BigQuerySource) GetProjectId() string { +func (x *FirestoreSource) GetProjectId() string { if x != nil { return x.ProjectId } return "" } -func (x *BigQuerySource) GetDatasetId() string { +func (x *FirestoreSource) GetDatabaseId() string { if x != nil { - return x.DatasetId + return x.DatabaseId } return "" } -func (x *BigQuerySource) GetTableId() string { +func (x *FirestoreSource) GetCollectionId() string { if x != nil { - return x.TableId + return x.CollectionId } return "" } -func (x *BigQuerySource) GetGcsStagingDir() string { +func (x *FirestoreSource) GetGcsStagingDir() string { if x != nil { return x.GcsStagingDir } return "" } -func (x *BigQuerySource) GetDataSchema() string { - if x != nil { - return x.DataSchema - } - return "" -} - -type isBigQuerySource_Partition interface { - isBigQuerySource_Partition() -} - -type BigQuerySource_PartitionDate struct { - // BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. - PartitionDate *date.Date `protobuf:"bytes,5,opt,name=partition_date,json=partitionDate,proto3,oneof"` -} - -func (*BigQuerySource_PartitionDate) isBigQuerySource_Partition() {} - // Configuration of destination for Import related errors. type ImportErrorConfig struct { state protoimpl.MessageState @@ -344,7 +958,7 @@ type ImportErrorConfig struct { func (x *ImportErrorConfig) Reset() { *x = ImportErrorConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[2] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -357,7 +971,7 @@ func (x *ImportErrorConfig) String() string { func (*ImportErrorConfig) ProtoMessage() {} func (x *ImportErrorConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[2] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -370,7 +984,7 @@ func (x *ImportErrorConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportErrorConfig.ProtoReflect.Descriptor instead. func (*ImportErrorConfig) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{2} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{8} } func (m *ImportErrorConfig) GetDestination() isImportErrorConfig_Destination { @@ -426,7 +1040,7 @@ type ImportUserEventsRequest struct { func (x *ImportUserEventsRequest) Reset() { *x = ImportUserEventsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[3] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -439,7 +1053,7 @@ func (x *ImportUserEventsRequest) String() string { func (*ImportUserEventsRequest) ProtoMessage() {} func (x *ImportUserEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[3] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -452,7 +1066,7 @@ func (x *ImportUserEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportUserEventsRequest.ProtoReflect.Descriptor instead. func (*ImportUserEventsRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{9} } func (m *ImportUserEventsRequest) GetSource() isImportUserEventsRequest_Source { @@ -545,7 +1159,7 @@ type ImportUserEventsResponse struct { func (x *ImportUserEventsResponse) Reset() { *x = ImportUserEventsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[4] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -558,7 +1172,7 @@ func (x *ImportUserEventsResponse) String() string { func (*ImportUserEventsResponse) ProtoMessage() {} func (x *ImportUserEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[4] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -571,7 +1185,7 @@ func (x *ImportUserEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportUserEventsResponse.ProtoReflect.Descriptor instead. func (*ImportUserEventsResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{4} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{10} } func (x *ImportUserEventsResponse) GetErrorSamples() []*status.Status { @@ -623,7 +1237,7 @@ type ImportUserEventsMetadata struct { func (x *ImportUserEventsMetadata) Reset() { *x = ImportUserEventsMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[5] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -636,7 +1250,7 @@ func (x *ImportUserEventsMetadata) String() string { func (*ImportUserEventsMetadata) ProtoMessage() {} func (x *ImportUserEventsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[5] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -649,7 +1263,7 @@ func (x *ImportUserEventsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportUserEventsMetadata.ProtoReflect.Descriptor instead. func (*ImportUserEventsMetadata) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{5} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{11} } func (x *ImportUserEventsMetadata) GetCreateTime() *timestamppb.Timestamp { @@ -696,12 +1310,14 @@ type ImportDocumentsMetadata struct { SuccessCount int64 `protobuf:"varint,3,opt,name=success_count,json=successCount,proto3" json:"success_count,omitempty"` // Count of entries that encountered errors while processing. FailureCount int64 `protobuf:"varint,4,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"` + // Total count of entries that were processed. + TotalCount int64 `protobuf:"varint,5,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` } func (x *ImportDocumentsMetadata) Reset() { *x = ImportDocumentsMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[6] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -714,7 +1330,7 @@ func (x *ImportDocumentsMetadata) String() string { func (*ImportDocumentsMetadata) ProtoMessage() {} func (x *ImportDocumentsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[6] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -727,7 +1343,7 @@ func (x *ImportDocumentsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDocumentsMetadata.ProtoReflect.Descriptor instead. func (*ImportDocumentsMetadata) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{6} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{12} } func (x *ImportDocumentsMetadata) GetCreateTime() *timestamppb.Timestamp { @@ -758,6 +1374,13 @@ func (x *ImportDocumentsMetadata) GetFailureCount() int64 { return 0 } +func (x *ImportDocumentsMetadata) GetTotalCount() int64 { + if x != nil { + return x.TotalCount + } + return 0 +} + // Request message for Import methods. type ImportDocumentsRequest struct { state protoimpl.MessageState @@ -771,6 +1394,11 @@ type ImportDocumentsRequest struct { // *ImportDocumentsRequest_InlineSource_ // *ImportDocumentsRequest_GcsSource // *ImportDocumentsRequest_BigquerySource + // *ImportDocumentsRequest_FhirStoreSource + // *ImportDocumentsRequest_SpannerSource + // *ImportDocumentsRequest_CloudSqlSource + // *ImportDocumentsRequest_FirestoreSource + // *ImportDocumentsRequest_BigtableSource Source isImportDocumentsRequest_Source `protobuf_oneof:"source"` // Required. The parent branch resource name, such as // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. @@ -782,6 +1410,9 @@ type ImportDocumentsRequest struct { // be imported. Defaults to // [ReconciliationMode.INCREMENTAL][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL]. ReconciliationMode ImportDocumentsRequest_ReconciliationMode `protobuf:"varint,6,opt,name=reconciliation_mode,json=reconciliationMode,proto3,enum=google.cloud.discoveryengine.v1beta.ImportDocumentsRequest_ReconciliationMode" json:"reconciliation_mode,omitempty"` + // Indicates which fields in the provided imported documents to update. If + // not set, the default is to update all fields. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,7,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // Whether to automatically generate IDs for the documents if absent. // // If set to `true`, @@ -795,51 +1426,60 @@ type ImportDocumentsRequest struct { // [id_field][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.id_field], // otherwise, documents without IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource], and - // when + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource]. // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] - // or + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource]. // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] - // is `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1beta.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1beta.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1beta.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1beta.BigtableSource]. AutoGenerateIds bool `protobuf:"varint,8,opt,name=auto_generate_ids,json=autoGenerateIds,proto3" json:"auto_generate_ids,omitempty"` - // The field in the Cloud Storage and BigQuery sources that indicates the - // unique IDs of the documents. + // The field indicates the ID field or column to be used as unique IDs of + // the documents. // // For [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] it is the // key of the JSON field. For instance, `my_id` for JSON `{"my_id": - // "some_uuid"}`. For - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource] it is - // the column name of the BigQuery table where the unique ids are stored. + // "some_uuid"}`. For others, it may be the column name of the table where the + // unique ids are stored. // - // The values of the JSON field or the BigQuery column are used as the + // The values of the JSON field or the table column are used as the // [Document.id][google.cloud.discoveryengine.v1beta.Document.id]s. The JSON - // field or the BigQuery column must be of string type, and the values must be + // field or the table column must be of string type, and the values must be // set as valid strings conform to // [RFC-1034](https://tools.ietf.org/html/rfc1034) with 1-63 characters. // Otherwise, documents without valid IDs fail to be imported. // - // Only set this field when using - // [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource] or - // [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource], and - // when - // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] - // or - // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] - // is `custom`. And only set this field when + // Only set this field when // [auto_generate_ids][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.auto_generate_ids] // is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown. // // If it is unset, a default value `_id` is used when importing from the // allowed data sources. + // + // Supported data sources: + // + // * [GcsSource][google.cloud.discoveryengine.v1beta.GcsSource]. + // [GcsSource.data_schema][google.cloud.discoveryengine.v1beta.GcsSource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [BigQuerySource][google.cloud.discoveryengine.v1beta.BigQuerySource]. + // [BigQuerySource.data_schema][google.cloud.discoveryengine.v1beta.BigQuerySource.data_schema] + // must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. + // * [SpannerSource][google.cloud.discoveryengine.v1beta.SpannerSource]. + // * [CloudSqlSource][google.cloud.discoveryengine.v1beta.CloudSqlSource]. + // * [FirestoreSource][google.cloud.discoveryengine.v1beta.FirestoreSource]. + // * [BigtableSource][google.cloud.discoveryengine.v1beta.BigtableSource]. IdField string `protobuf:"bytes,9,opt,name=id_field,json=idField,proto3" json:"id_field,omitempty"` } func (x *ImportDocumentsRequest) Reset() { *x = ImportDocumentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -852,7 +1492,7 @@ func (x *ImportDocumentsRequest) String() string { func (*ImportDocumentsRequest) ProtoMessage() {} func (x *ImportDocumentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -865,7 +1505,7 @@ func (x *ImportDocumentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDocumentsRequest.ProtoReflect.Descriptor instead. func (*ImportDocumentsRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{7} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{13} } func (m *ImportDocumentsRequest) GetSource() isImportDocumentsRequest_Source { @@ -896,6 +1536,41 @@ func (x *ImportDocumentsRequest) GetBigquerySource() *BigQuerySource { return nil } +func (x *ImportDocumentsRequest) GetFhirStoreSource() *FhirStoreSource { + if x, ok := x.GetSource().(*ImportDocumentsRequest_FhirStoreSource); ok { + return x.FhirStoreSource + } + return nil +} + +func (x *ImportDocumentsRequest) GetSpannerSource() *SpannerSource { + if x, ok := x.GetSource().(*ImportDocumentsRequest_SpannerSource); ok { + return x.SpannerSource + } + return nil +} + +func (x *ImportDocumentsRequest) GetCloudSqlSource() *CloudSqlSource { + if x, ok := x.GetSource().(*ImportDocumentsRequest_CloudSqlSource); ok { + return x.CloudSqlSource + } + return nil +} + +func (x *ImportDocumentsRequest) GetFirestoreSource() *FirestoreSource { + if x, ok := x.GetSource().(*ImportDocumentsRequest_FirestoreSource); ok { + return x.FirestoreSource + } + return nil +} + +func (x *ImportDocumentsRequest) GetBigtableSource() *BigtableSource { + if x, ok := x.GetSource().(*ImportDocumentsRequest_BigtableSource); ok { + return x.BigtableSource + } + return nil +} + func (x *ImportDocumentsRequest) GetParent() string { if x != nil { return x.Parent @@ -917,6 +1592,13 @@ func (x *ImportDocumentsRequest) GetReconciliationMode() ImportDocumentsRequest_ return ImportDocumentsRequest_RECONCILIATION_MODE_UNSPECIFIED } +func (x *ImportDocumentsRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + func (x *ImportDocumentsRequest) GetAutoGenerateIds() bool { if x != nil { return x.AutoGenerateIds @@ -950,12 +1632,47 @@ type ImportDocumentsRequest_BigquerySource struct { BigquerySource *BigQuerySource `protobuf:"bytes,4,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"` } +type ImportDocumentsRequest_FhirStoreSource struct { + // FhirStore input source. + FhirStoreSource *FhirStoreSource `protobuf:"bytes,10,opt,name=fhir_store_source,json=fhirStoreSource,proto3,oneof"` +} + +type ImportDocumentsRequest_SpannerSource struct { + // Spanner input source. + SpannerSource *SpannerSource `protobuf:"bytes,11,opt,name=spanner_source,json=spannerSource,proto3,oneof"` +} + +type ImportDocumentsRequest_CloudSqlSource struct { + // Cloud SQL input source. + CloudSqlSource *CloudSqlSource `protobuf:"bytes,12,opt,name=cloud_sql_source,json=cloudSqlSource,proto3,oneof"` +} + +type ImportDocumentsRequest_FirestoreSource struct { + // Firestore input source. + FirestoreSource *FirestoreSource `protobuf:"bytes,13,opt,name=firestore_source,json=firestoreSource,proto3,oneof"` +} + +type ImportDocumentsRequest_BigtableSource struct { + // Cloud Bigtable input source. + BigtableSource *BigtableSource `protobuf:"bytes,15,opt,name=bigtable_source,json=bigtableSource,proto3,oneof"` +} + func (*ImportDocumentsRequest_InlineSource_) isImportDocumentsRequest_Source() {} func (*ImportDocumentsRequest_GcsSource) isImportDocumentsRequest_Source() {} func (*ImportDocumentsRequest_BigquerySource) isImportDocumentsRequest_Source() {} +func (*ImportDocumentsRequest_FhirStoreSource) isImportDocumentsRequest_Source() {} + +func (*ImportDocumentsRequest_SpannerSource) isImportDocumentsRequest_Source() {} + +func (*ImportDocumentsRequest_CloudSqlSource) isImportDocumentsRequest_Source() {} + +func (*ImportDocumentsRequest_FirestoreSource) isImportDocumentsRequest_Source() {} + +func (*ImportDocumentsRequest_BigtableSource) isImportDocumentsRequest_Source() {} + // Response of the // [ImportDocumentsRequest][google.cloud.discoveryengine.v1beta.ImportDocumentsRequest]. // If the long running operation is done, then this message is returned by the @@ -974,7 +1691,7 @@ type ImportDocumentsResponse struct { func (x *ImportDocumentsResponse) Reset() { *x = ImportDocumentsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -987,7 +1704,7 @@ func (x *ImportDocumentsResponse) String() string { func (*ImportDocumentsResponse) ProtoMessage() {} func (x *ImportDocumentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1000,7 +1717,7 @@ func (x *ImportDocumentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportDocumentsResponse.ProtoReflect.Descriptor instead. func (*ImportDocumentsResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{8} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{14} } func (x *ImportDocumentsResponse) GetErrorSamples() []*status.Status { @@ -1040,7 +1757,7 @@ type ImportSuggestionDenyListEntriesRequest struct { func (x *ImportSuggestionDenyListEntriesRequest) Reset() { *x = ImportSuggestionDenyListEntriesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1053,7 +1770,7 @@ func (x *ImportSuggestionDenyListEntriesRequest) String() string { func (*ImportSuggestionDenyListEntriesRequest) ProtoMessage() {} func (x *ImportSuggestionDenyListEntriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1066,7 +1783,7 @@ func (x *ImportSuggestionDenyListEntriesRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use ImportSuggestionDenyListEntriesRequest.ProtoReflect.Descriptor instead. func (*ImportSuggestionDenyListEntriesRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{9} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{15} } func (m *ImportSuggestionDenyListEntriesRequest) GetSource() isImportSuggestionDenyListEntriesRequest_Source { @@ -1118,45 +1835,188 @@ type ImportSuggestionDenyListEntriesRequest_GcsSource struct { GcsSource *GcsSource `protobuf:"bytes,3,opt,name=gcs_source,json=gcsSource,proto3,oneof"` } -func (*ImportSuggestionDenyListEntriesRequest_InlineSource_) isImportSuggestionDenyListEntriesRequest_Source() { +func (*ImportSuggestionDenyListEntriesRequest_InlineSource_) isImportSuggestionDenyListEntriesRequest_Source() { +} + +func (*ImportSuggestionDenyListEntriesRequest_GcsSource) isImportSuggestionDenyListEntriesRequest_Source() { +} + +// Response message for +// [CompletionService.ImportSuggestionDenyListEntries][google.cloud.discoveryengine.v1beta.CompletionService.ImportSuggestionDenyListEntries] +// method. +type ImportSuggestionDenyListEntriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A sample of errors encountered while processing the request. + ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"` + // Count of deny list entries successfully imported. + ImportedEntriesCount int64 `protobuf:"varint,2,opt,name=imported_entries_count,json=importedEntriesCount,proto3" json:"imported_entries_count,omitempty"` + // Count of deny list entries that failed to be imported. + FailedEntriesCount int64 `protobuf:"varint,3,opt,name=failed_entries_count,json=failedEntriesCount,proto3" json:"failed_entries_count,omitempty"` +} + +func (x *ImportSuggestionDenyListEntriesResponse) Reset() { + *x = ImportSuggestionDenyListEntriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportSuggestionDenyListEntriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportSuggestionDenyListEntriesResponse) ProtoMessage() {} + +func (x *ImportSuggestionDenyListEntriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 ImportSuggestionDenyListEntriesResponse.ProtoReflect.Descriptor instead. +func (*ImportSuggestionDenyListEntriesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{16} +} + +func (x *ImportSuggestionDenyListEntriesResponse) GetErrorSamples() []*status.Status { + if x != nil { + return x.ErrorSamples + } + return nil +} + +func (x *ImportSuggestionDenyListEntriesResponse) GetImportedEntriesCount() int64 { + if x != nil { + return x.ImportedEntriesCount + } + return 0 +} + +func (x *ImportSuggestionDenyListEntriesResponse) GetFailedEntriesCount() int64 { + if x != nil { + return x.FailedEntriesCount + } + return 0 +} + +// Metadata related to the progress of the ImportSuggestionDenyListEntries +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +type ImportSuggestionDenyListEntriesMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation create time. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Operation last update time. If the operation is done, this is also the + // finish time. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *ImportSuggestionDenyListEntriesMetadata) Reset() { + *x = ImportSuggestionDenyListEntriesMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportSuggestionDenyListEntriesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportSuggestionDenyListEntriesMetadata) ProtoMessage() {} + +func (x *ImportSuggestionDenyListEntriesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_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 ImportSuggestionDenyListEntriesMetadata.ProtoReflect.Descriptor instead. +func (*ImportSuggestionDenyListEntriesMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{17} +} + +func (x *ImportSuggestionDenyListEntriesMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil } -func (*ImportSuggestionDenyListEntriesRequest_GcsSource) isImportSuggestionDenyListEntriesRequest_Source() { +func (x *ImportSuggestionDenyListEntriesMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil } -// Response message for -// [CompletionService.ImportSuggestionDenyListEntries][google.cloud.discoveryengine.v1beta.CompletionService.ImportSuggestionDenyListEntries] -// method. -type ImportSuggestionDenyListEntriesResponse struct { +// The column family of the Bigtable. +type BigtableOptions_BigtableColumnFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A sample of errors encountered while processing the request. - ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"` - // Count of deny list entries successfully imported. - ImportedEntriesCount int64 `protobuf:"varint,2,opt,name=imported_entries_count,json=importedEntriesCount,proto3" json:"imported_entries_count,omitempty"` - // Count of deny list entries that failed to be imported. - FailedEntriesCount int64 `protobuf:"varint,3,opt,name=failed_entries_count,json=failedEntriesCount,proto3" json:"failed_entries_count,omitempty"` -} - -func (x *ImportSuggestionDenyListEntriesResponse) Reset() { - *x = ImportSuggestionDenyListEntriesResponse{} + // The field name to use for this column family in the document. The + // name has to match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. If not set, + // it is parsed from the family name with best effort. However, due to + // different naming patterns, field name collisions could happen, where + // parsing behavior is undefined. + FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // The encoding mode of the values when the type is not STRING. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding BigtableOptions_Encoding `protobuf:"varint,2,opt,name=encoding,proto3,enum=google.cloud.discoveryengine.v1beta.BigtableOptions_Encoding" json:"encoding,omitempty"` + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type BigtableOptions_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.discoveryengine.v1beta.BigtableOptions_Type" json:"type,omitempty"` + // The list of objects that contains column level information for each + // column. If a column is not present in this list it will be ignored. + Columns []*BigtableOptions_BigtableColumn `protobuf:"bytes,4,rep,name=columns,proto3" json:"columns,omitempty"` +} + +func (x *BigtableOptions_BigtableColumnFamily) Reset() { + *x = BigtableOptions_BigtableColumnFamily{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[10] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ImportSuggestionDenyListEntriesResponse) String() string { +func (x *BigtableOptions_BigtableColumnFamily) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ImportSuggestionDenyListEntriesResponse) ProtoMessage() {} +func (*BigtableOptions_BigtableColumnFamily) ProtoMessage() {} -func (x *ImportSuggestionDenyListEntriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[10] +func (x *BigtableOptions_BigtableColumnFamily) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1167,64 +2027,85 @@ func (x *ImportSuggestionDenyListEntriesResponse) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use ImportSuggestionDenyListEntriesResponse.ProtoReflect.Descriptor instead. -func (*ImportSuggestionDenyListEntriesResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{10} +// Deprecated: Use BigtableOptions_BigtableColumnFamily.ProtoReflect.Descriptor instead. +func (*BigtableOptions_BigtableColumnFamily) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3, 0} } -func (x *ImportSuggestionDenyListEntriesResponse) GetErrorSamples() []*status.Status { +func (x *BigtableOptions_BigtableColumnFamily) GetFieldName() string { if x != nil { - return x.ErrorSamples + return x.FieldName } - return nil + return "" } -func (x *ImportSuggestionDenyListEntriesResponse) GetImportedEntriesCount() int64 { +func (x *BigtableOptions_BigtableColumnFamily) GetEncoding() BigtableOptions_Encoding { if x != nil { - return x.ImportedEntriesCount + return x.Encoding } - return 0 + return BigtableOptions_ENCODING_UNSPECIFIED } -func (x *ImportSuggestionDenyListEntriesResponse) GetFailedEntriesCount() int64 { +func (x *BigtableOptions_BigtableColumnFamily) GetType() BigtableOptions_Type { if x != nil { - return x.FailedEntriesCount + return x.Type } - return 0 + return BigtableOptions_TYPE_UNSPECIFIED } -// Metadata related to the progress of the ImportSuggestionDenyListEntries -// operation. This is returned by the google.longrunning.Operation.metadata -// field. -type ImportSuggestionDenyListEntriesMetadata struct { +func (x *BigtableOptions_BigtableColumnFamily) GetColumns() []*BigtableOptions_BigtableColumn { + if x != nil { + return x.Columns + } + return nil +} + +// The column of the Bigtable. +type BigtableOptions_BigtableColumn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Operation create time. - CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` - // Operation last update time. If the operation is done, this is also the - // finish time. - UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` -} - -func (x *ImportSuggestionDenyListEntriesMetadata) Reset() { - *x = ImportSuggestionDenyListEntriesMetadata{} + // Required. Qualifier of the column. If it cannot be decoded with utf-8, + // use a base-64 encoded string instead. + Qualifier []byte `protobuf:"bytes,1,opt,name=qualifier,proto3" json:"qualifier,omitempty"` + // The field name to use for this column in the document. The name has to + // match the pattern `[a-zA-Z0-9][a-zA-Z0-9-_]*`. + // If not set, it is parsed from the qualifier bytes with best effort. + // However, due to different naming patterns, field name collisions could + // happen, where parsing behavior is undefined. + FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // The encoding mode of the values when the type is not `STRING`. + // Acceptable encoding values are: + // + // * `TEXT`: indicates values are alphanumeric text strings. + // * `BINARY`: indicates values are encoded using `HBase Bytes.toBytes` + // family of functions. This can be overridden for a specific column + // by listing that column in `columns` and specifying an encoding for it. + Encoding BigtableOptions_Encoding `protobuf:"varint,3,opt,name=encoding,proto3,enum=google.cloud.discoveryengine.v1beta.BigtableOptions_Encoding" json:"encoding,omitempty"` + // The type of values in this column family. + // The values are expected to be encoded using `HBase Bytes.toBytes` + // function when the encoding value is set to `BINARY`. + Type BigtableOptions_Type `protobuf:"varint,4,opt,name=type,proto3,enum=google.cloud.discoveryengine.v1beta.BigtableOptions_Type" json:"type,omitempty"` +} + +func (x *BigtableOptions_BigtableColumn) Reset() { + *x = BigtableOptions_BigtableColumn{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[11] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ImportSuggestionDenyListEntriesMetadata) String() string { +func (x *BigtableOptions_BigtableColumn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ImportSuggestionDenyListEntriesMetadata) ProtoMessage() {} +func (*BigtableOptions_BigtableColumn) ProtoMessage() {} -func (x *ImportSuggestionDenyListEntriesMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[11] +func (x *BigtableOptions_BigtableColumn) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1235,23 +2116,37 @@ func (x *ImportSuggestionDenyListEntriesMetadata) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use ImportSuggestionDenyListEntriesMetadata.ProtoReflect.Descriptor instead. -func (*ImportSuggestionDenyListEntriesMetadata) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{11} +// Deprecated: Use BigtableOptions_BigtableColumn.ProtoReflect.Descriptor instead. +func (*BigtableOptions_BigtableColumn) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3, 1} } -func (x *ImportSuggestionDenyListEntriesMetadata) GetCreateTime() *timestamppb.Timestamp { +func (x *BigtableOptions_BigtableColumn) GetQualifier() []byte { if x != nil { - return x.CreateTime + return x.Qualifier } return nil } -func (x *ImportSuggestionDenyListEntriesMetadata) GetUpdateTime() *timestamppb.Timestamp { +func (x *BigtableOptions_BigtableColumn) GetFieldName() string { if x != nil { - return x.UpdateTime + return x.FieldName } - return nil + return "" +} + +func (x *BigtableOptions_BigtableColumn) GetEncoding() BigtableOptions_Encoding { + if x != nil { + return x.Encoding + } + return BigtableOptions_ENCODING_UNSPECIFIED +} + +func (x *BigtableOptions_BigtableColumn) GetType() BigtableOptions_Type { + if x != nil { + return x.Type + } + return BigtableOptions_TYPE_UNSPECIFIED } // The inline source for the input config for ImportUserEvents method. @@ -1267,7 +2162,7 @@ type ImportUserEventsRequest_InlineSource struct { func (x *ImportUserEventsRequest_InlineSource) Reset() { *x = ImportUserEventsRequest_InlineSource{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[12] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1280,7 +2175,7 @@ func (x *ImportUserEventsRequest_InlineSource) String() string { func (*ImportUserEventsRequest_InlineSource) ProtoMessage() {} func (x *ImportUserEventsRequest_InlineSource) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[12] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1293,7 +2188,7 @@ func (x *ImportUserEventsRequest_InlineSource) ProtoReflect() protoreflect.Messa // Deprecated: Use ImportUserEventsRequest_InlineSource.ProtoReflect.Descriptor instead. func (*ImportUserEventsRequest_InlineSource) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{9, 0} } func (x *ImportUserEventsRequest_InlineSource) GetUserEvents() []*UserEvent { @@ -1318,7 +2213,7 @@ type ImportDocumentsRequest_InlineSource struct { func (x *ImportDocumentsRequest_InlineSource) Reset() { *x = ImportDocumentsRequest_InlineSource{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1331,7 +2226,7 @@ func (x *ImportDocumentsRequest_InlineSource) String() string { func (*ImportDocumentsRequest_InlineSource) ProtoMessage() {} func (x *ImportDocumentsRequest_InlineSource) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1344,7 +2239,7 @@ func (x *ImportDocumentsRequest_InlineSource) ProtoReflect() protoreflect.Messag // Deprecated: Use ImportDocumentsRequest_InlineSource.ProtoReflect.Descriptor instead. func (*ImportDocumentsRequest_InlineSource) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{7, 0} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{13, 0} } func (x *ImportDocumentsRequest_InlineSource) GetDocuments() []*Document { @@ -1367,7 +2262,7 @@ type ImportSuggestionDenyListEntriesRequest_InlineSource struct { func (x *ImportSuggestionDenyListEntriesRequest_InlineSource) Reset() { *x = ImportSuggestionDenyListEntriesRequest_InlineSource{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[14] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +2275,7 @@ func (x *ImportSuggestionDenyListEntriesRequest_InlineSource) String() string { func (*ImportSuggestionDenyListEntriesRequest_InlineSource) ProtoMessage() {} func (x *ImportSuggestionDenyListEntriesRequest_InlineSource) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[14] + mi := &file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +2288,7 @@ func (x *ImportSuggestionDenyListEntriesRequest_InlineSource) ProtoReflect() pro // Deprecated: Use ImportSuggestionDenyListEntriesRequest_InlineSource.ProtoReflect.Descriptor instead. func (*ImportSuggestionDenyListEntriesRequest_InlineSource) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{9, 0} + return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP(), []int{15, 0} } func (x *ImportSuggestionDenyListEntriesRequest_InlineSource) GetEntries() []*SuggestionDenyListEntry { @@ -1425,45 +2320,257 @@ var file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDesc = []byt 0x72, 0x6f, 0x74, 0x6f, 0x1a, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x09, - 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x85, - 0x02, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, - 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, + 0x0a, 0x09, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, + 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, + 0x53, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x0b, 0x0a, 0x09, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc6, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x61, + 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x6f, 0x73, + 0x74, 0x22, 0x98, 0x08, 0x0a, 0x0f, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6b, + 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5e, 0x0a, 0x08, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x1a, 0xbe, 0x02, 0x0a, 0x14, + 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4d, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 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, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x5d, 0x0a, + 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x1a, 0xfc, 0x01, 0x0a, + 0x0e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, + 0x21, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x59, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x86, 0x01, 0x0a, 0x0d, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 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, + 0x5f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, + 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x41, 0x52, 0x5f, 0x49, + 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x49, 0x47, 0x5f, + 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, + 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x07, + 0x22, 0x3a, 0x0a, 0x08, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x14, + 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x02, 0x22, 0xdb, 0x01, 0x0a, + 0x0e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, + 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, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x62, 0x69, 0x67, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0f, 0x46, + 0x68, 0x69, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4a, + 0x0a, 0x0a, 0x66, 0x68, 0x69, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x63, 0x61, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x68, 0x69, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x09, 0x66, 0x68, 0x69, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x53, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, + 0x69, 0x72, 0x22, 0xdd, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x71, 0x6c, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, - 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x53, 0x74, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, - 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd1, 0x04, 0x0a, 0x17, + 0x64, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x53, 0x74, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x6c, 0x6f, + 0x61, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x67, 0x63, 0x73, 0x53, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x22, 0x43, 0x0a, + 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xd1, 0x04, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x70, + 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x4f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x64, 0x0a, 0x0c, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x92, 0x02, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0c, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x6a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x70, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, - 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, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x6c, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x01, 0x0a, + 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x0b, + 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, @@ -1476,205 +2583,156 @@ var file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDesc = []byt 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, - 0x64, 0x0a, 0x0c, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x54, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, - 0x92, 0x02, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x13, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe6, 0x06, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x6f, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x11, 0x66, 0x68, + 0x69, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 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, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7f, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x60, 0x0a, 0x0c, - 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x09, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x54, - 0x0a, 0x12, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, - 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, - 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, - 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xad, - 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xbb, - 0x03, 0x0a, 0x26, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x58, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, - 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x67, 0x63, - 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x68, 0x69, 0x72, + 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x66, + 0x68, 0x69, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5b, + 0x0a, 0x0e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x61, + 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x70, + 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x53, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x53, 0x71, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x61, 0x0a, 0x10, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0f, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x5e, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, + 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, + 0x0e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2d, 0xe0, 0x41, 0x02, 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, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x7f, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 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, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, - 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x1a, 0x6b, 0x0a, 0x0c, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x75, 0x67, - 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xca, 0x01, 0x0a, - 0x27, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x12, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, + 0x2a, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, + 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x60, 0x0a, 0x0c, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x54, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, + 0x0a, 0x1f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, + 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x08, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x59, 0x0a, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xbb, 0x03, 0x0a, 0x26, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, + 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x14, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x27, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, - 0x98, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x11, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, - 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, + 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x1a, + 0x6b, 0x0a, 0x0c, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x5b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x27, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x12, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x27, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, + 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x98, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1689,64 +2747,90 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescGZIP() return file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDescData } -var file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_google_cloud_discoveryengine_v1beta_import_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_google_cloud_discoveryengine_v1beta_import_config_proto_goTypes = []interface{}{ - (ImportDocumentsRequest_ReconciliationMode)(0), // 0: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode - (*GcsSource)(nil), // 1: google.cloud.discoveryengine.v1beta.GcsSource - (*BigQuerySource)(nil), // 2: google.cloud.discoveryengine.v1beta.BigQuerySource - (*ImportErrorConfig)(nil), // 3: google.cloud.discoveryengine.v1beta.ImportErrorConfig - (*ImportUserEventsRequest)(nil), // 4: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest - (*ImportUserEventsResponse)(nil), // 5: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse - (*ImportUserEventsMetadata)(nil), // 6: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata - (*ImportDocumentsMetadata)(nil), // 7: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata - (*ImportDocumentsRequest)(nil), // 8: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest - (*ImportDocumentsResponse)(nil), // 9: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse - (*ImportSuggestionDenyListEntriesRequest)(nil), // 10: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest - (*ImportSuggestionDenyListEntriesResponse)(nil), // 11: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse - (*ImportSuggestionDenyListEntriesMetadata)(nil), // 12: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata - (*ImportUserEventsRequest_InlineSource)(nil), // 13: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource - (*ImportDocumentsRequest_InlineSource)(nil), // 14: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource - (*ImportSuggestionDenyListEntriesRequest_InlineSource)(nil), // 15: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource - (*date.Date)(nil), // 16: google.type.Date - (*status.Status)(nil), // 17: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp - (*UserEvent)(nil), // 19: google.cloud.discoveryengine.v1beta.UserEvent - (*Document)(nil), // 20: google.cloud.discoveryengine.v1beta.Document - (*SuggestionDenyListEntry)(nil), // 21: google.cloud.discoveryengine.v1beta.SuggestionDenyListEntry + (BigtableOptions_Type)(0), // 0: google.cloud.discoveryengine.v1beta.BigtableOptions.Type + (BigtableOptions_Encoding)(0), // 1: google.cloud.discoveryengine.v1beta.BigtableOptions.Encoding + (ImportDocumentsRequest_ReconciliationMode)(0), // 2: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode + (*GcsSource)(nil), // 3: google.cloud.discoveryengine.v1beta.GcsSource + (*BigQuerySource)(nil), // 4: google.cloud.discoveryengine.v1beta.BigQuerySource + (*SpannerSource)(nil), // 5: google.cloud.discoveryengine.v1beta.SpannerSource + (*BigtableOptions)(nil), // 6: google.cloud.discoveryengine.v1beta.BigtableOptions + (*BigtableSource)(nil), // 7: google.cloud.discoveryengine.v1beta.BigtableSource + (*FhirStoreSource)(nil), // 8: google.cloud.discoveryengine.v1beta.FhirStoreSource + (*CloudSqlSource)(nil), // 9: google.cloud.discoveryengine.v1beta.CloudSqlSource + (*FirestoreSource)(nil), // 10: google.cloud.discoveryengine.v1beta.FirestoreSource + (*ImportErrorConfig)(nil), // 11: google.cloud.discoveryengine.v1beta.ImportErrorConfig + (*ImportUserEventsRequest)(nil), // 12: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest + (*ImportUserEventsResponse)(nil), // 13: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse + (*ImportUserEventsMetadata)(nil), // 14: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata + (*ImportDocumentsMetadata)(nil), // 15: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata + (*ImportDocumentsRequest)(nil), // 16: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest + (*ImportDocumentsResponse)(nil), // 17: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse + (*ImportSuggestionDenyListEntriesRequest)(nil), // 18: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest + (*ImportSuggestionDenyListEntriesResponse)(nil), // 19: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse + (*ImportSuggestionDenyListEntriesMetadata)(nil), // 20: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata + (*BigtableOptions_BigtableColumnFamily)(nil), // 21: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumnFamily + (*BigtableOptions_BigtableColumn)(nil), // 22: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumn + nil, // 23: google.cloud.discoveryengine.v1beta.BigtableOptions.FamiliesEntry + (*ImportUserEventsRequest_InlineSource)(nil), // 24: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource + (*ImportDocumentsRequest_InlineSource)(nil), // 25: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource + (*ImportSuggestionDenyListEntriesRequest_InlineSource)(nil), // 26: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource + (*date.Date)(nil), // 27: google.type.Date + (*status.Status)(nil), // 28: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 30: google.protobuf.FieldMask + (*UserEvent)(nil), // 31: google.cloud.discoveryengine.v1beta.UserEvent + (*Document)(nil), // 32: google.cloud.discoveryengine.v1beta.Document + (*SuggestionDenyListEntry)(nil), // 33: google.cloud.discoveryengine.v1beta.SuggestionDenyListEntry } var file_google_cloud_discoveryengine_v1beta_import_config_proto_depIdxs = []int32{ - 16, // 0: google.cloud.discoveryengine.v1beta.BigQuerySource.partition_date:type_name -> google.type.Date - 13, // 1: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource - 1, // 2: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource - 2, // 3: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.bigquery_source:type_name -> google.cloud.discoveryengine.v1beta.BigQuerySource - 3, // 4: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 17, // 5: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse.error_samples:type_name -> google.rpc.Status - 3, // 6: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 18, // 7: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata.create_time:type_name -> google.protobuf.Timestamp - 18, // 8: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata.update_time:type_name -> google.protobuf.Timestamp - 18, // 9: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata.create_time:type_name -> google.protobuf.Timestamp - 18, // 10: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata.update_time:type_name -> google.protobuf.Timestamp - 14, // 11: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource - 1, // 12: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource - 2, // 13: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.bigquery_source:type_name -> google.cloud.discoveryengine.v1beta.BigQuerySource - 3, // 14: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 0, // 15: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.reconciliation_mode:type_name -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode - 17, // 16: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse.error_samples:type_name -> google.rpc.Status - 3, // 17: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 15, // 18: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource - 1, // 19: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource - 17, // 20: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse.error_samples:type_name -> google.rpc.Status - 18, // 21: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata.create_time:type_name -> google.protobuf.Timestamp - 18, // 22: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata.update_time:type_name -> google.protobuf.Timestamp - 19, // 23: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource.user_events:type_name -> google.cloud.discoveryengine.v1beta.UserEvent - 20, // 24: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource.documents:type_name -> google.cloud.discoveryengine.v1beta.Document - 21, // 25: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource.entries:type_name -> google.cloud.discoveryengine.v1beta.SuggestionDenyListEntry - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 27, // 0: google.cloud.discoveryengine.v1beta.BigQuerySource.partition_date:type_name -> google.type.Date + 23, // 1: google.cloud.discoveryengine.v1beta.BigtableOptions.families:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.FamiliesEntry + 6, // 2: google.cloud.discoveryengine.v1beta.BigtableSource.bigtable_options:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions + 24, // 3: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource + 3, // 4: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource + 4, // 5: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.bigquery_source:type_name -> google.cloud.discoveryengine.v1beta.BigQuerySource + 11, // 6: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 28, // 7: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse.error_samples:type_name -> google.rpc.Status + 11, // 8: google.cloud.discoveryengine.v1beta.ImportUserEventsResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 29, // 9: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata.create_time:type_name -> google.protobuf.Timestamp + 29, // 10: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata.update_time:type_name -> google.protobuf.Timestamp + 29, // 11: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata.create_time:type_name -> google.protobuf.Timestamp + 29, // 12: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata.update_time:type_name -> google.protobuf.Timestamp + 25, // 13: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource + 3, // 14: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource + 4, // 15: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.bigquery_source:type_name -> google.cloud.discoveryengine.v1beta.BigQuerySource + 8, // 16: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.fhir_store_source:type_name -> google.cloud.discoveryengine.v1beta.FhirStoreSource + 5, // 17: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.spanner_source:type_name -> google.cloud.discoveryengine.v1beta.SpannerSource + 9, // 18: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.cloud_sql_source:type_name -> google.cloud.discoveryengine.v1beta.CloudSqlSource + 10, // 19: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.firestore_source:type_name -> google.cloud.discoveryengine.v1beta.FirestoreSource + 7, // 20: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.bigtable_source:type_name -> google.cloud.discoveryengine.v1beta.BigtableSource + 11, // 21: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 2, // 22: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.reconciliation_mode:type_name -> google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.ReconciliationMode + 30, // 23: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.update_mask:type_name -> google.protobuf.FieldMask + 28, // 24: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse.error_samples:type_name -> google.rpc.Status + 11, // 25: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 26, // 26: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.inline_source:type_name -> google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource + 3, // 27: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.gcs_source:type_name -> google.cloud.discoveryengine.v1beta.GcsSource + 28, // 28: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse.error_samples:type_name -> google.rpc.Status + 29, // 29: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata.create_time:type_name -> google.protobuf.Timestamp + 29, // 30: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata.update_time:type_name -> google.protobuf.Timestamp + 1, // 31: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumnFamily.encoding:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.Encoding + 0, // 32: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumnFamily.type:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.Type + 22, // 33: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumnFamily.columns:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumn + 1, // 34: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumn.encoding:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.Encoding + 0, // 35: google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumn.type:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.Type + 21, // 36: google.cloud.discoveryengine.v1beta.BigtableOptions.FamiliesEntry.value:type_name -> google.cloud.discoveryengine.v1beta.BigtableOptions.BigtableColumnFamily + 31, // 37: google.cloud.discoveryengine.v1beta.ImportUserEventsRequest.InlineSource.user_events:type_name -> google.cloud.discoveryengine.v1beta.UserEvent + 32, // 38: google.cloud.discoveryengine.v1beta.ImportDocumentsRequest.InlineSource.documents:type_name -> google.cloud.discoveryengine.v1beta.Document + 33, // 39: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesRequest.InlineSource.entries:type_name -> google.cloud.discoveryengine.v1beta.SuggestionDenyListEntry + 40, // [40:40] is the sub-list for method output_type + 40, // [40:40] is the sub-list for method input_type + 40, // [40:40] is the sub-list for extension type_name + 40, // [40:40] is the sub-list for extension extendee + 0, // [0:40] is the sub-list for field type_name } func init() { file_google_cloud_discoveryengine_v1beta_import_config_proto_init() } @@ -1783,7 +2867,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportErrorConfig); i { + switch v := v.(*SpannerSource); i { case 0: return &v.state case 1: @@ -1795,7 +2879,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportUserEventsRequest); i { + switch v := v.(*BigtableOptions); i { case 0: return &v.state case 1: @@ -1807,7 +2891,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportUserEventsResponse); i { + switch v := v.(*BigtableSource); i { case 0: return &v.state case 1: @@ -1819,7 +2903,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportUserEventsMetadata); i { + switch v := v.(*FhirStoreSource); i { case 0: return &v.state case 1: @@ -1831,7 +2915,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportDocumentsMetadata); i { + switch v := v.(*CloudSqlSource); i { case 0: return &v.state case 1: @@ -1843,7 +2927,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportDocumentsRequest); i { + switch v := v.(*FirestoreSource); i { case 0: return &v.state case 1: @@ -1855,7 +2939,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportDocumentsResponse); i { + switch v := v.(*ImportErrorConfig); i { case 0: return &v.state case 1: @@ -1867,7 +2951,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportSuggestionDenyListEntriesRequest); i { + switch v := v.(*ImportUserEventsRequest); i { case 0: return &v.state case 1: @@ -1879,7 +2963,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportSuggestionDenyListEntriesResponse); i { + switch v := v.(*ImportUserEventsResponse); i { case 0: return &v.state case 1: @@ -1891,7 +2975,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportSuggestionDenyListEntriesMetadata); i { + switch v := v.(*ImportUserEventsMetadata); i { case 0: return &v.state case 1: @@ -1903,7 +2987,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportUserEventsRequest_InlineSource); i { + switch v := v.(*ImportDocumentsMetadata); i { case 0: return &v.state case 1: @@ -1915,7 +2999,7 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportDocumentsRequest_InlineSource); i { + switch v := v.(*ImportDocumentsRequest); i { case 0: return &v.state case 1: @@ -1927,6 +3011,102 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { } } file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportDocumentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportSuggestionDenyListEntriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportSuggestionDenyListEntriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportSuggestionDenyListEntriesMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BigtableOptions_BigtableColumnFamily); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BigtableOptions_BigtableColumn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportUserEventsRequest_InlineSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportDocumentsRequest_InlineSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportSuggestionDenyListEntriesRequest_InlineSource); i { case 0: return &v.state @@ -1942,20 +3122,25 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[1].OneofWrappers = []interface{}{ (*BigQuerySource_PartitionDate)(nil), } - file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[8].OneofWrappers = []interface{}{ (*ImportErrorConfig_GcsPrefix)(nil), } - file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9].OneofWrappers = []interface{}{ (*ImportUserEventsRequest_InlineSource_)(nil), (*ImportUserEventsRequest_GcsSource)(nil), (*ImportUserEventsRequest_BigquerySource)(nil), } - file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[7].OneofWrappers = []interface{}{ + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[13].OneofWrappers = []interface{}{ (*ImportDocumentsRequest_InlineSource_)(nil), (*ImportDocumentsRequest_GcsSource)(nil), (*ImportDocumentsRequest_BigquerySource)(nil), + (*ImportDocumentsRequest_FhirStoreSource)(nil), + (*ImportDocumentsRequest_SpannerSource)(nil), + (*ImportDocumentsRequest_CloudSqlSource)(nil), + (*ImportDocumentsRequest_FirestoreSource)(nil), + (*ImportDocumentsRequest_BigtableSource)(nil), } - file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[9].OneofWrappers = []interface{}{ + file_google_cloud_discoveryengine_v1beta_import_config_proto_msgTypes[15].OneofWrappers = []interface{}{ (*ImportSuggestionDenyListEntriesRequest_InlineSource_)(nil), (*ImportSuggestionDenyListEntriesRequest_GcsSource)(nil), } @@ -1964,8 +3149,8 @@ func file_google_cloud_discoveryengine_v1beta_import_config_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_discoveryengine_v1beta_import_config_proto_rawDesc, - NumEnums: 1, - NumMessages: 15, + NumEnums: 3, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, diff --git a/discoveryengine/apiv1beta/discoveryenginepb/rank_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/rank_service.pb.go new file mode 100755 index 00000000000..967aadfb6eb --- /dev/null +++ b/discoveryengine/apiv1beta/discoveryenginepb/rank_service.pb.go @@ -0,0 +1,545 @@ +// 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.32.0 +// protoc v4.25.2 +// source: google/cloud/discoveryengine/v1beta/rank_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" +) + +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) +) + +// Record message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +type RankingRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique ID to represent the record. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The title of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1beta.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1beta.RankingRecord.content] should + // be set otherwise an INVALID_ARGUMENT error is thrown. + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + // The content of the record. Empty by default. + // At least one of + // [title][google.cloud.discoveryengine.v1beta.RankingRecord.title] or + // [content][google.cloud.discoveryengine.v1beta.RankingRecord.content] should + // be set otherwise an INVALID_ARGUMENT error is thrown. + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + // The score of this record based on the given query and selected model. + Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` +} + +func (x *RankingRecord) Reset() { + *x = RankingRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankingRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankingRecord) ProtoMessage() {} + +func (x *RankingRecord) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_rank_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 RankingRecord.ProtoReflect.Descriptor instead. +func (*RankingRecord) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescGZIP(), []int{0} +} + +func (x *RankingRecord) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *RankingRecord) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *RankingRecord) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *RankingRecord) GetScore() float32 { + if x != nil { + return x.Score + } + return 0 +} + +// Request message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +type RankRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the rank service config, such as + // `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`. + RankingConfig string `protobuf:"bytes,1,opt,name=ranking_config,json=rankingConfig,proto3" json:"ranking_config,omitempty"` + // The identifier of the model to use. It is one of: + // + // * `semantic-ranker-512@latest`: Semantic ranking model with maxiumn input + // token size 512. + // + // It is set to `semantic-ranker-512@latest` by default if unspecified. + Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"` + // The number of results to return. If this is unset or no bigger than zero, + // returns all results. + TopN int32 `protobuf:"varint,3,opt,name=top_n,json=topN,proto3" json:"top_n,omitempty"` + // The query to use. + Query string `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"` + // Required. A list of records to rank. At most 200 records to rank. + Records []*RankingRecord `protobuf:"bytes,5,rep,name=records,proto3" json:"records,omitempty"` + // If true, the response will contain only record ID and score. By default, it + // is false, the response will contain record details. + IgnoreRecordDetailsInResponse bool `protobuf:"varint,6,opt,name=ignore_record_details_in_response,json=ignoreRecordDetailsInResponse,proto3" json:"ignore_record_details_in_response,omitempty"` +} + +func (x *RankRequest) Reset() { + *x = RankRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankRequest) ProtoMessage() {} + +func (x *RankRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_rank_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 RankRequest.ProtoReflect.Descriptor instead. +func (*RankRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescGZIP(), []int{1} +} + +func (x *RankRequest) GetRankingConfig() string { + if x != nil { + return x.RankingConfig + } + return "" +} + +func (x *RankRequest) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *RankRequest) GetTopN() int32 { + if x != nil { + return x.TopN + } + return 0 +} + +func (x *RankRequest) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +func (x *RankRequest) GetRecords() []*RankingRecord { + if x != nil { + return x.Records + } + return nil +} + +func (x *RankRequest) GetIgnoreRecordDetailsInResponse() bool { + if x != nil { + return x.IgnoreRecordDetailsInResponse + } + return false +} + +// Response message for +// [RankService.Rank][google.cloud.discoveryengine.v1beta.RankService.Rank] +// method. +type RankResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of records sorted by descending score. + Records []*RankingRecord `protobuf:"bytes,5,rep,name=records,proto3" json:"records,omitempty"` +} + +func (x *RankResponse) Reset() { + *x = RankResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankResponse) ProtoMessage() {} + +func (x *RankResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_rank_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 RankResponse.ProtoReflect.Descriptor instead. +func (*RankResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescGZIP(), []int{2} +} + +func (x *RankResponse) GetRecords() []*RankingRecord { + if x != nil { + return x.Records + } + return nil +} + +var File_google_cloud_discoveryengine_v1beta_rank_service_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDesc = []byte{ + 0x0a, 0x36, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 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, + 0x22, 0x65, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 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, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x6f, + 0x70, 0x5f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x12, + 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x1d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x0c, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x32, 0xa1, 0x02, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xbd, 0x01, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x30, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x01, 0x2a, 0x22, 0x45, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x72, 0x61, 0x6e, 0x6b, 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, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x6e, 0x6b, + 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, 0x97, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, + 0x42, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, + 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, + 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_discoveryengine_v1beta_rank_service_proto_goTypes = []interface{}{ + (*RankingRecord)(nil), // 0: google.cloud.discoveryengine.v1beta.RankingRecord + (*RankRequest)(nil), // 1: google.cloud.discoveryengine.v1beta.RankRequest + (*RankResponse)(nil), // 2: google.cloud.discoveryengine.v1beta.RankResponse +} +var file_google_cloud_discoveryengine_v1beta_rank_service_proto_depIdxs = []int32{ + 0, // 0: google.cloud.discoveryengine.v1beta.RankRequest.records:type_name -> google.cloud.discoveryengine.v1beta.RankingRecord + 0, // 1: google.cloud.discoveryengine.v1beta.RankResponse.records:type_name -> google.cloud.discoveryengine.v1beta.RankingRecord + 1, // 2: google.cloud.discoveryengine.v1beta.RankService.Rank:input_type -> google.cloud.discoveryengine.v1beta.RankRequest + 2, // 3: google.cloud.discoveryengine.v1beta.RankService.Rank:output_type -> google.cloud.discoveryengine.v1beta.RankResponse + 3, // [3:4] is the sub-list for method output_type + 2, // [2:3] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_rank_service_proto_init() } +func file_google_cloud_discoveryengine_v1beta_rank_service_proto_init() { + if File_google_cloud_discoveryengine_v1beta_rank_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankingRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_discoveryengine_v1beta_rank_service_proto_goTypes, + DependencyIndexes: file_google_cloud_discoveryengine_v1beta_rank_service_proto_depIdxs, + MessageInfos: file_google_cloud_discoveryengine_v1beta_rank_service_proto_msgTypes, + }.Build() + File_google_cloud_discoveryengine_v1beta_rank_service_proto = out.File + file_google_cloud_discoveryengine_v1beta_rank_service_proto_rawDesc = nil + file_google_cloud_discoveryengine_v1beta_rank_service_proto_goTypes = nil + file_google_cloud_discoveryengine_v1beta_rank_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 + +// RankServiceClient is the client API for RankService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type RankServiceClient interface { + // Ranks a list of text records based on the given input query. + Rank(ctx context.Context, in *RankRequest, opts ...grpc.CallOption) (*RankResponse, error) +} + +type rankServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRankServiceClient(cc grpc.ClientConnInterface) RankServiceClient { + return &rankServiceClient{cc} +} + +func (c *rankServiceClient) Rank(ctx context.Context, in *RankRequest, opts ...grpc.CallOption) (*RankResponse, error) { + out := new(RankResponse) + err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1beta.RankService/Rank", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RankServiceServer is the server API for RankService service. +type RankServiceServer interface { + // Ranks a list of text records based on the given input query. + Rank(context.Context, *RankRequest) (*RankResponse, error) +} + +// UnimplementedRankServiceServer can be embedded to have forward compatible implementations. +type UnimplementedRankServiceServer struct { +} + +func (*UnimplementedRankServiceServer) Rank(context.Context, *RankRequest) (*RankResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Rank not implemented") +} + +func RegisterRankServiceServer(s *grpc.Server, srv RankServiceServer) { + s.RegisterService(&_RankService_serviceDesc, srv) +} + +func _RankService_Rank_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RankRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RankServiceServer).Rank(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.discoveryengine.v1beta.RankService/Rank", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RankServiceServer).Rank(ctx, req.(*RankRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _RankService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.discoveryengine.v1beta.RankService", + HandlerType: (*RankServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Rank", + Handler: _RankService_Rank_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/discoveryengine/v1beta/rank_service.proto", +} diff --git a/discoveryengine/apiv1beta/discoveryenginepb/search_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/search_service.pb.go index 5ad638d333b..45c8453526e 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/search_service.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/search_service.pb.go @@ -41,6 +41,119 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// The attribute(or function) for which the custom ranking is to be +// applied. +type SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType int32 + +const ( + // Unspecified AttributeType. + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ATTRIBUTE_TYPE_UNSPECIFIED SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType = 0 + // The value of the numerical field will be used to dynamically update + // the boost amount. In this case, the attribute_value (the x value) + // of the control point will be the actual value of the numerical + // field for which the boost_amount is specified. + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_NUMERICAL SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType = 1 + // For the freshness use case the attribute value will be the duration + // between the current time and the date in the datetime field + // specified. The value must be formatted as an XSD `dayTimeDuration` + // value (a restricted subset of an ISO 8601 duration value). The + // pattern for this is: `[nD][T[nH][nM][nS]]`. + // E.g. `5D`, `3DT12H30M`, `T24H`. + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_FRESHNESS SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType = 2 +) + +// Enum value maps for SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType. +var ( + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType_name = map[int32]string{ + 0: "ATTRIBUTE_TYPE_UNSPECIFIED", + 1: "NUMERICAL", + 2: "FRESHNESS", + } + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType_value = map[string]int32{ + "ATTRIBUTE_TYPE_UNSPECIFIED": 0, + "NUMERICAL": 1, + "FRESHNESS": 2, + } +) + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) Enum() *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType { + p := new(SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) + *p = x + return p +} + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[0].Descriptor() +} + +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[0] +} + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType.Descriptor instead. +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{0, 3, 0, 0, 0} +} + +// The interpolation type to be applied. Default will be linear +// (Piecewise Linear). +type SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType int32 + +const ( + // Interpolation type is unspecified. In this case, it defaults to + // Linear. + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_INTERPOLATION_TYPE_UNSPECIFIED SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType = 0 + // Piecewise linear interpolation will be applied. + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_LINEAR SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType = 1 +) + +// Enum value maps for SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType. +var ( + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType_name = map[int32]string{ + 0: "INTERPOLATION_TYPE_UNSPECIFIED", + 1: "LINEAR", + } + SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType_value = map[string]int32{ + "INTERPOLATION_TYPE_UNSPECIFIED": 0, + "LINEAR": 1, + } +) + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) Enum() *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType { + p := new(SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) + *p = x + return p +} + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[1].Descriptor() +} + +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[1] +} + +func (x SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType.Descriptor instead. +func (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{0, 3, 0, 0, 1} +} + // Enum describing under which condition query expansion should occur. type SearchRequest_QueryExpansionSpec_Condition int32 @@ -82,11 +195,11 @@ func (x SearchRequest_QueryExpansionSpec_Condition) String() string { } func (SearchRequest_QueryExpansionSpec_Condition) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[0].Descriptor() + return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[2].Descriptor() } func (SearchRequest_QueryExpansionSpec_Condition) Type() protoreflect.EnumType { - return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[0] + return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[2] } func (x SearchRequest_QueryExpansionSpec_Condition) Number() protoreflect.EnumNumber { @@ -141,11 +254,11 @@ func (x SearchRequest_SpellCorrectionSpec_Mode) String() string { } func (SearchRequest_SpellCorrectionSpec_Mode) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[1].Descriptor() + return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[3].Descriptor() } func (SearchRequest_SpellCorrectionSpec_Mode) Type() protoreflect.EnumType { - return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[1] + return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[3] } func (x SearchRequest_SpellCorrectionSpec_Mode) Number() protoreflect.EnumNumber { @@ -223,11 +336,11 @@ func (x SearchResponse_Summary_SummarySkippedReason) String() string { } func (SearchResponse_Summary_SummarySkippedReason) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[2].Descriptor() + return file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[4].Descriptor() } func (SearchResponse_Summary_SummarySkippedReason) Type() protoreflect.EnumType { - return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[2] + return &file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes[4] } func (x SearchResponse_Summary_SummarySkippedReason) Number() protoreflect.EnumNumber { @@ -265,10 +378,14 @@ type SearchRequest struct { // 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.v1beta.Document]s - // to return. If unspecified, defaults to a reasonable value. The maximum - // allowed value is 100. Values above 100 are coerced to 100. + // to return. The maximum allowed value depends on the data type. Values above + // the maximum value are coerced to the maximum value. // - // If this field is negative, an `INVALID_ARGUMENT` is returned. + // * 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.v1beta.SearchService.Search] @@ -391,7 +508,8 @@ type SearchRequest struct { // // If // [SearchRequest.EmbeddingSpec.EmbeddingVector.field_path][google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector.field_path] - // is not provided, it will use [ServingConfig.EmbeddingConfig.field_path][]. + // is not provided, it will use + // [ServingConfig.EmbeddingConfig.field_path][google.cloud.discoveryengine.v1beta.ServingConfig.embedding_config]. EmbeddingSpec *SearchRequest_EmbeddingSpec `protobuf:"bytes,23,opt,name=embedding_spec,json=embeddingSpec,proto3" json:"embedding_spec,omitempty"` // The ranking expression controls the customized ranking on retrieval // documents. This overrides @@ -682,6 +800,9 @@ type SearchResponse struct { Summary *SearchResponse_Summary `protobuf:"bytes,9,opt,name=summary,proto3" json:"summary,omitempty"` // Controls applied as part of the Control service. AppliedControls []string `protobuf:"bytes,10,rep,name=applied_controls,json=appliedControls,proto3" json:"applied_controls,omitempty"` + // Debug information specifically related to forward geocoding issues arising + // from Geolocation Search. + GeoSearchDebugInfo []*SearchResponse_GeoSearchDebugInfo `protobuf:"bytes,16,rep,name=geo_search_debug_info,json=geoSearchDebugInfo,proto3" json:"geo_search_debug_info,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"` } @@ -788,6 +909,13 @@ func (x *SearchResponse) GetAppliedControls() []string { return nil } +func (x *SearchResponse) GetGeoSearchDebugInfo() []*SearchResponse_GeoSearchDebugInfo { + if x != nil { + return x.GeoSearchDebugInfo + } + return nil +} + func (x *SearchResponse) GetQueryExpansionInfo() *SearchResponse_QueryExpansionInfo { if x != nil { return x.QueryExpansionInfo @@ -1492,21 +1620,26 @@ type SearchRequest_BoostSpec_ConditionBoostSpec struct { // 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 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. + // 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. + // 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"` + // Complex specification for custom ranking based on customer defined + // attribute value. + BoostControlSpec *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec `protobuf:"bytes,3,opt,name=boost_control_spec,json=boostControlSpec,proto3" json:"boost_control_spec,omitempty"` } func (x *SearchRequest_BoostSpec_ConditionBoostSpec) Reset() { @@ -1555,6 +1688,165 @@ func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetBoost() float32 { return 0 } +func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetBoostControlSpec() *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec { + if x != nil { + return x.BoostControlSpec + } + return nil +} + +// Specification for custom ranking based on customer specified attribute +// value. It provides more controls for customized ranking than the simple +// (condition, boost) combination above. +type SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the field whose value will be used to determine the + // boost amount. + FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // The attribute type to be used to determine the boost amount. The + // attribute value can be derived from the field value of the specified + // field_name. In the case of numerical it is straightforward i.e. + // attribute_value = numerical_field_value. In the case of freshness + // however, attribute_value = (time.now() - datetime_field_value). + AttributeType SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType `protobuf:"varint,2,opt,name=attribute_type,json=attributeType,proto3,enum=google.cloud.discoveryengine.v1beta.SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType" json:"attribute_type,omitempty"` + // The interpolation type to be applied to connect the control points + // listed below. + InterpolationType SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType `protobuf:"varint,3,opt,name=interpolation_type,json=interpolationType,proto3,enum=google.cloud.discoveryengine.v1beta.SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType" json:"interpolation_type,omitempty"` + // The control points used to define the curve. The monotonic function + // (defined through the interpolation_type above) passes through the + // control points listed here. + ControlPoints []*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint `protobuf:"bytes,4,rep,name=control_points,json=controlPoints,proto3" json:"control_points,omitempty"` +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) Reset() { + *x = SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) ProtoMessage() {} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_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_BoostSpec_ConditionBoostSpec_BoostControlSpec.ProtoReflect.Descriptor instead. +func (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{0, 3, 0, 0} +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) GetFieldName() string { + if x != nil { + return x.FieldName + } + return "" +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) GetAttributeType() SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType { + if x != nil { + return x.AttributeType + } + return SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ATTRIBUTE_TYPE_UNSPECIFIED +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) GetInterpolationType() SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType { + if x != nil { + return x.InterpolationType + } + return SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_INTERPOLATION_TYPE_UNSPECIFIED +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec) GetControlPoints() []*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint { + if x != nil { + return x.ControlPoints + } + return nil +} + +// The control points used to define the curve. The curve defined +// through these control points can only be monotonically increasing +// or decreasing(constant values are acceptable). +type SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Can be one of: + // 1. The numerical field value. + // 2. The duration spec for freshness: + // The value must be formatted as an XSD `dayTimeDuration` value (a + // restricted subset of an ISO 8601 duration value). The pattern for + // this is: `[nD][T[nH][nM][nS]]`. + AttributeValue string `protobuf:"bytes,1,opt,name=attribute_value,json=attributeValue,proto3" json:"attribute_value,omitempty"` + // The value between -1 to 1 by which to boost the score if the + // attribute_value evaluates to the value specified above. + BoostAmount float32 `protobuf:"fixed32,2,opt,name=boost_amount,json=boostAmount,proto3" json:"boost_amount,omitempty"` +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) Reset() { + *x = SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) ProtoMessage() {} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_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_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint.ProtoReflect.Descriptor instead. +func (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{0, 3, 0, 0, 0} +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) GetAttributeValue() string { + if x != nil { + return x.AttributeValue + } + return "" +} + +func (x *SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint) GetBoostAmount() float32 { + if x != nil { + return x.BoostAmount + } + return 0 +} + // A specification for configuring snippets in a search response. type SearchRequest_ContentSearchSpec_SnippetSpec struct { state protoimpl.MessageState @@ -1581,7 +1873,7 @@ type SearchRequest_ContentSearchSpec_SnippetSpec struct { func (x *SearchRequest_ContentSearchSpec_SnippetSpec) Reset() { *x = SearchRequest_ContentSearchSpec_SnippetSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[14] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1594,7 +1886,7 @@ func (x *SearchRequest_ContentSearchSpec_SnippetSpec) String() string { func (*SearchRequest_ContentSearchSpec_SnippetSpec) ProtoMessage() {} func (x *SearchRequest_ContentSearchSpec_SnippetSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[14] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1697,12 +1989,19 @@ type SearchRequest_ContentSearchSpec_SummarySpec struct { // 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_v1beta_search_service_proto_msgTypes[15] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1715,7 +2014,7 @@ func (x *SearchRequest_ContentSearchSpec_SummarySpec) String() string { func (*SearchRequest_ContentSearchSpec_SummarySpec) ProtoMessage() {} func (x *SearchRequest_ContentSearchSpec_SummarySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[15] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1780,6 +2079,13 @@ func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetModelSpec() *SearchRequ 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 { @@ -1820,10 +2126,9 @@ type SearchRequest_ContentSearchSpec_ExtractiveContentSpec struct { // 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. The default value is `false`. - // - // Note: this is a priavte preview feature and only works for allowlisted - // users, please reach out to Cloud Support team if you want to use it. + // 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. @@ -1838,7 +2143,7 @@ type SearchRequest_ContentSearchSpec_ExtractiveContentSpec struct { func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) Reset() { *x = SearchRequest_ContentSearchSpec_ExtractiveContentSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[16] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1851,7 +2156,7 @@ func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) String() string func (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec) ProtoMessage() {} func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[16] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1916,7 +2221,7 @@ type SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec struct { func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) Reset() { *x = SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[17] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1929,7 +2234,7 @@ func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) String() s func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) ProtoMessage() {} func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[17] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1963,18 +2268,20 @@ type SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec struct { // Supported values are: // // - `stable`: string. Default value when no value is specified. Uses a - // generally available, fine-tuned version of the text-bison@001 - // model. - // - `preview`: string. (Public preview) Uses a fine-tuned version of - // the text-bison@002 model. This model works only for summaries in - // English. + // 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_v1beta_search_service_proto_msgTypes[18] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1987,7 +2294,7 @@ func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) String() string func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) ProtoMessage() {} func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[18] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2025,7 +2332,7 @@ type SearchRequest_EmbeddingSpec_EmbeddingVector struct { func (x *SearchRequest_EmbeddingSpec_EmbeddingVector) Reset() { *x = SearchRequest_EmbeddingSpec_EmbeddingVector{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[19] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2038,7 +2345,7 @@ func (x *SearchRequest_EmbeddingSpec_EmbeddingVector) String() string { func (*SearchRequest_EmbeddingSpec_EmbeddingVector) ProtoMessage() {} func (x *SearchRequest_EmbeddingSpec_EmbeddingVector) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[19] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2087,7 +2394,7 @@ type SearchResponse_SearchResult struct { func (x *SearchResponse_SearchResult) Reset() { *x = SearchResponse_SearchResult{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[20] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2100,7 +2407,7 @@ func (x *SearchResponse_SearchResult) String() string { func (*SearchResponse_SearchResult) ProtoMessage() {} func (x *SearchResponse_SearchResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[20] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2155,7 +2462,7 @@ type SearchResponse_Facet struct { func (x *SearchResponse_Facet) Reset() { *x = SearchResponse_Facet{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[21] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2168,7 +2475,7 @@ func (x *SearchResponse_Facet) String() string { func (*SearchResponse_Facet) ProtoMessage() {} func (x *SearchResponse_Facet) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[21] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2221,7 +2528,7 @@ type SearchResponse_GuidedSearchResult struct { func (x *SearchResponse_GuidedSearchResult) Reset() { *x = SearchResponse_GuidedSearchResult{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[22] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2234,7 +2541,7 @@ func (x *SearchResponse_GuidedSearchResult) String() string { func (*SearchResponse_GuidedSearchResult) ProtoMessage() {} func (x *SearchResponse_GuidedSearchResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[22] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2285,7 +2592,7 @@ type SearchResponse_Summary struct { func (x *SearchResponse_Summary) Reset() { *x = SearchResponse_Summary{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[23] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2298,7 +2605,7 @@ func (x *SearchResponse_Summary) String() string { func (*SearchResponse_Summary) ProtoMessage() {} func (x *SearchResponse_Summary) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[23] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2342,6 +2649,65 @@ func (x *SearchResponse_Summary) GetSummaryWithMetadata() *SearchResponse_Summar return nil } +// Debug information specifically related to forward geocoding issues arising +// from Geolocation Search. +type SearchResponse_GeoSearchDebugInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address from which forward geocoding ingestion produced issues. + OriginalAddressQuery string `protobuf:"bytes,1,opt,name=original_address_query,json=originalAddressQuery,proto3" json:"original_address_query,omitempty"` + // The error produced. + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *SearchResponse_GeoSearchDebugInfo) Reset() { + *x = SearchResponse_GeoSearchDebugInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchResponse_GeoSearchDebugInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchResponse_GeoSearchDebugInfo) ProtoMessage() {} + +func (x *SearchResponse_GeoSearchDebugInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_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_GeoSearchDebugInfo.ProtoReflect.Descriptor instead. +func (*SearchResponse_GeoSearchDebugInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{1, 4} +} + +func (x *SearchResponse_GeoSearchDebugInfo) GetOriginalAddressQuery() string { + if x != nil { + return x.OriginalAddressQuery + } + return "" +} + +func (x *SearchResponse_GeoSearchDebugInfo) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + // Information describing query expansion including whether expansion has // occurred. type SearchResponse_QueryExpansionInfo struct { @@ -2361,7 +2727,7 @@ type SearchResponse_QueryExpansionInfo struct { func (x *SearchResponse_QueryExpansionInfo) Reset() { *x = SearchResponse_QueryExpansionInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[24] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2374,7 +2740,7 @@ func (x *SearchResponse_QueryExpansionInfo) String() string { func (*SearchResponse_QueryExpansionInfo) ProtoMessage() {} func (x *SearchResponse_QueryExpansionInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[24] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2387,7 +2753,7 @@ func (x *SearchResponse_QueryExpansionInfo) ProtoReflect() protoreflect.Message // Deprecated: Use SearchResponse_QueryExpansionInfo.ProtoReflect.Descriptor instead. func (*SearchResponse_QueryExpansionInfo) Descriptor() ([]byte, []int) { - return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{1, 4} + return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP(), []int{1, 5} } func (x *SearchResponse_QueryExpansionInfo) GetExpandedQuery() bool { @@ -2424,7 +2790,7 @@ type SearchResponse_Facet_FacetValue struct { func (x *SearchResponse_Facet_FacetValue) Reset() { *x = SearchResponse_Facet_FacetValue{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[26] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2437,7 +2803,7 @@ func (x *SearchResponse_Facet_FacetValue) String() string { func (*SearchResponse_Facet_FacetValue) ProtoMessage() {} func (x *SearchResponse_Facet_FacetValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[26] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2516,7 +2882,7 @@ type SearchResponse_GuidedSearchResult_RefinementAttribute struct { func (x *SearchResponse_GuidedSearchResult_RefinementAttribute) Reset() { *x = SearchResponse_GuidedSearchResult_RefinementAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[27] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2529,7 +2895,7 @@ func (x *SearchResponse_GuidedSearchResult_RefinementAttribute) String() string func (*SearchResponse_GuidedSearchResult_RefinementAttribute) ProtoMessage() {} func (x *SearchResponse_GuidedSearchResult_RefinementAttribute) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[27] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2576,7 +2942,7 @@ type SearchResponse_Summary_SafetyAttributes struct { func (x *SearchResponse_Summary_SafetyAttributes) Reset() { *x = SearchResponse_Summary_SafetyAttributes{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[28] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2589,7 +2955,7 @@ func (x *SearchResponse_Summary_SafetyAttributes) String() string { func (*SearchResponse_Summary_SafetyAttributes) ProtoMessage() {} func (x *SearchResponse_Summary_SafetyAttributes) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[28] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2632,7 +2998,7 @@ type SearchResponse_Summary_CitationMetadata struct { func (x *SearchResponse_Summary_CitationMetadata) Reset() { *x = SearchResponse_Summary_CitationMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2645,7 +3011,7 @@ func (x *SearchResponse_Summary_CitationMetadata) String() string { func (*SearchResponse_Summary_CitationMetadata) ProtoMessage() {} func (x *SearchResponse_Summary_CitationMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2685,7 +3051,7 @@ type SearchResponse_Summary_Citation struct { func (x *SearchResponse_Summary_Citation) Reset() { *x = SearchResponse_Summary_Citation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[30] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2698,7 +3064,7 @@ func (x *SearchResponse_Summary_Citation) String() string { func (*SearchResponse_Summary_Citation) ProtoMessage() {} func (x *SearchResponse_Summary_Citation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[30] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2750,7 +3116,7 @@ type SearchResponse_Summary_CitationSource struct { func (x *SearchResponse_Summary_CitationSource) Reset() { *x = SearchResponse_Summary_CitationSource{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2763,7 +3129,7 @@ func (x *SearchResponse_Summary_CitationSource) String() string { func (*SearchResponse_Summary_CitationSource) ProtoMessage() {} func (x *SearchResponse_Summary_CitationSource) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2802,12 +3168,14 @@ type SearchResponse_Summary_Reference struct { 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_v1beta_search_service_proto_msgTypes[32] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2820,7 +3188,7 @@ func (x *SearchResponse_Summary_Reference) String() string { func (*SearchResponse_Summary_Reference) ProtoMessage() {} func (x *SearchResponse_Summary_Reference) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[32] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2857,6 +3225,13 @@ func (x *SearchResponse_Summary_Reference) GetUri() string { 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 @@ -2874,7 +3249,7 @@ type SearchResponse_Summary_SummaryWithMetadata struct { func (x *SearchResponse_Summary_SummaryWithMetadata) Reset() { *x = SearchResponse_Summary_SummaryWithMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2887,7 +3262,7 @@ func (x *SearchResponse_Summary_SummaryWithMetadata) String() string { func (*SearchResponse_Summary_SummaryWithMetadata) ProtoMessage() {} func (x *SearchResponse_Summary_SummaryWithMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33] + mi := &file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2924,6 +3299,64 @@ func (x *SearchResponse_Summary_SummaryWithMetadata) GetReferences() []*SearchRe 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_v1beta_search_service_proto_msgTypes[37] + 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_v1beta_search_service_proto_msgTypes[37] + 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_v1beta_search_service_proto_rawDescGZIP(), []int{1, 3, 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_v1beta_search_service_proto protoreflect.FileDescriptor var file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDesc = []byte{ @@ -2948,7 +3381,7 @@ var file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDesc = []by 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0xdd, 0x25, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x2d, 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, @@ -3092,7 +3525,7 @@ var file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDesc = []by 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, 0xdb, 0x01, 0x0a, 0x09, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x1a, 0xe4, 0x08, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x83, 0x01, 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, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, @@ -3102,415 +3535,502 @@ var file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDesc = []by 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, 0xf9, 0x01, 0x0a, 0x12, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x6d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x4f, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xb3, 0x01, 0x0a, 0x13, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, - 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 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, 0x62, 0x65, 0x74, - 0x61, 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, 0xdb, 0x0b, 0x0a, 0x11, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x73, 0x0a, 0x0c, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0xd0, 0x07, 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, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x62, + 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x60, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x73, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, + 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, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x52, 0x10, 0x62, 0x6f, 0x6f, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x1a, 0xf4, 0x05, 0x0a, 0x10, + 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x95, 0x01, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x6e, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x72, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x1a, 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, + 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4d, + 0x0a, 0x0d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x1a, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x46, 0x52, 0x45, 0x53, 0x48, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x02, 0x22, 0x43, 0x0a, + 0x11, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x4f, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, + 0x10, 0x01, 0x1a, 0xf9, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4f, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x92, 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, 0x5a, 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, 0x62, - 0x65, 0x74, 0x61, 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, 0xf3, 0x04, 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, 0x8c, 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, - 0x60, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x79, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 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, 0x62, 0x65, 0x74, - 0x61, 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, 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, 0xd8, 0x01, 0x0a, 0x0d, 0x45, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7d, 0x0a, 0x11, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x48, 0x0a, 0x0f, 0x45, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 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, 0x90, 0x1a, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 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, 0x62, 0x65, 0x74, 0x61, - 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, 0x51, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 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, 0xb3, + 0x01, 0x0a, 0x13, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x8b, 0x0c, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x73, 0x0a, 0x0c, 0x73, 0x6e, + 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 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, + 0x73, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x78, 0x0a, 0x14, 0x67, 0x75, 0x69, 0x64, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 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, 0x92, 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, 0x5a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x64, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x12, - 0x67, 0x75, 0x69, 0x64, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 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, 0x55, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x73, 0x12, 0x78, 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, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xd0, - 0x02, 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, - 0x49, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x74, 0x0a, 0x0c, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x1a, 0x6f, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0xb5, 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, 0x5c, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 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, 0x62, - 0x65, 0x74, 0x61, 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, 0x96, 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, 0x4b, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xbb, 0x02, 0x0a, 0x12, 0x47, 0x75, - 0x69, 0x64, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x8f, 0x01, 0x0a, 0x15, 0x72, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x5a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x14, 0x72, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x5f, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x1a, 0x63, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x27, - 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xe2, 0x0b, 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, 0x88, 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, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 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, 0xa3, 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, 0x8c, 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, 0x60, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x79, 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, 0x4c, 0x2e, 0x67, + 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, 0x79, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xd8, 0x01, 0x0a, 0x0d, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x7d, 0x0a, 0x11, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x50, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, + 0x63, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x10, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x1a, 0x48, 0x0a, 0x0f, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 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, + 0xca, 0x1d, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x51, + 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 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, + 0x62, 0x65, 0x74, 0x61, 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, 0x78, 0x0a, 0x14, 0x67, 0x75, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x12, 0x67, 0x75, 0x69, 0x64, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x55, 0x0a, 0x07, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x83, 0x01, 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, 0x4f, 0x2e, 0x67, + 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x12, 0x79, 0x0a, + 0x15, 0x67, 0x65, 0x6f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x62, 0x75, + 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x76, - 0x0a, 0x10, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x62, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xae, 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, 0x64, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x4a, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x80, 0x01, 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, 0x1a, 0x91, 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, 0x79, 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, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x65, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x65, 0x2e, 0x47, 0x65, 0x6f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x67, 0x65, 0x6f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x78, 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, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x89, 0x04, 0x0a, 0x0d, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa3, 0x03, 0x0a, 0x06, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 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, 0xd0, 0x02, 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, 0x49, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x74, + 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x1a, 0x6f, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, + 0x72, 0x65, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xb5, 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, 0x5c, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x44, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x96, 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, 0x4b, 0x0a, 0x08, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x62, + 0x65, 0x74, 0x61, 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, 0xbb, 0x02, + 0x0a, 0x12, 0x47, 0x75, 0x69, 0x64, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x15, 0x72, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x14, 0x72, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x75, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x63, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, + 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xb0, 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, 0x88, 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, 0x50, 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, 0x62, 0x65, + 0x74, 0x61, 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, 0x79, 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, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x83, 0x01, 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, 0x4f, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x76, 0x0a, 0x10, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 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, 0x62, 0x65, 0x74, 0x61, 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, 0xae, 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, 0x64, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 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, 0x62, 0x65, 0x74, 0x61, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xaf, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa8, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x67, 0x3a, 0x01, - 0x2a, 0x22, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x64, 0x3a, 0x01, 0x2a, 0x22, 0x5f, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 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, 0x54, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 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, + 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, 0xce, 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, 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, 0x99, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, - 0x61, 0x42, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, - 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, - 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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, 0x79, 0x0a, 0x0e, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x52, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x91, 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, 0x79, 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, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x65, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x6f, + 0x0a, 0x12, 0x47, 0x65, 0x6f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x16, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 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, 0x89, 0x04, 0x0a, + 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa3, + 0x03, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 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, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xaf, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa8, 0x02, 0x3a, 0x01, 0x2a, 0x5a, + 0x67, 0x3a, 0x01, 0x2a, 0x22, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x64, 0x3a, 0x01, 0x2a, 0x22, 0x5f, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x54, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x99, 0x02, 0x0a, 0x27, 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, + 0x62, 0x65, 0x74, 0x61, 0x42, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3525,101 +4045,113 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescGZIP() return file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDescData } -var file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_google_cloud_discoveryengine_v1beta_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_google_cloud_discoveryengine_v1beta_search_service_proto_goTypes = []interface{}{ - (SearchRequest_QueryExpansionSpec_Condition)(0), // 0: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition - (SearchRequest_SpellCorrectionSpec_Mode)(0), // 1: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode - (SearchResponse_Summary_SummarySkippedReason)(0), // 2: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason - (*SearchRequest)(nil), // 3: google.cloud.discoveryengine.v1beta.SearchRequest - (*SearchResponse)(nil), // 4: google.cloud.discoveryengine.v1beta.SearchResponse - (*SearchRequest_ImageQuery)(nil), // 5: google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery - (*SearchRequest_DataStoreSpec)(nil), // 6: google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec - (*SearchRequest_FacetSpec)(nil), // 7: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec - (*SearchRequest_BoostSpec)(nil), // 8: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec - (*SearchRequest_QueryExpansionSpec)(nil), // 9: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec - (*SearchRequest_SpellCorrectionSpec)(nil), // 10: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec - (*SearchRequest_ContentSearchSpec)(nil), // 11: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec - (*SearchRequest_EmbeddingSpec)(nil), // 12: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec - nil, // 13: google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry - nil, // 14: google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry - (*SearchRequest_FacetSpec_FacetKey)(nil), // 15: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey - (*SearchRequest_BoostSpec_ConditionBoostSpec)(nil), // 16: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec - (*SearchRequest_ContentSearchSpec_SnippetSpec)(nil), // 17: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec - (*SearchRequest_ContentSearchSpec_SummarySpec)(nil), // 18: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec - (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec)(nil), // 19: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec - (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec)(nil), // 20: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec - (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec)(nil), // 21: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec - (*SearchRequest_EmbeddingSpec_EmbeddingVector)(nil), // 22: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector - (*SearchResponse_SearchResult)(nil), // 23: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult - (*SearchResponse_Facet)(nil), // 24: google.cloud.discoveryengine.v1beta.SearchResponse.Facet - (*SearchResponse_GuidedSearchResult)(nil), // 25: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult - (*SearchResponse_Summary)(nil), // 26: google.cloud.discoveryengine.v1beta.SearchResponse.Summary - (*SearchResponse_QueryExpansionInfo)(nil), // 27: google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo - nil, // 28: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry - (*SearchResponse_Facet_FacetValue)(nil), // 29: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue - (*SearchResponse_GuidedSearchResult_RefinementAttribute)(nil), // 30: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute - (*SearchResponse_Summary_SafetyAttributes)(nil), // 31: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes - (*SearchResponse_Summary_CitationMetadata)(nil), // 32: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata - (*SearchResponse_Summary_Citation)(nil), // 33: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation - (*SearchResponse_Summary_CitationSource)(nil), // 34: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource - (*SearchResponse_Summary_Reference)(nil), // 35: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference - (*SearchResponse_Summary_SummaryWithMetadata)(nil), // 36: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata - (*UserInfo)(nil), // 37: google.cloud.discoveryengine.v1beta.UserInfo - (*structpb.Value)(nil), // 38: google.protobuf.Value - (*Interval)(nil), // 39: google.cloud.discoveryengine.v1beta.Interval - (*Document)(nil), // 40: google.cloud.discoveryengine.v1beta.Document - (*DoubleList)(nil), // 41: google.cloud.discoveryengine.v1beta.DoubleList + (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_AttributeType)(0), // 0: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType + (SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_InterpolationType)(0), // 1: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType + (SearchRequest_QueryExpansionSpec_Condition)(0), // 2: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition + (SearchRequest_SpellCorrectionSpec_Mode)(0), // 3: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode + (SearchResponse_Summary_SummarySkippedReason)(0), // 4: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason + (*SearchRequest)(nil), // 5: google.cloud.discoveryengine.v1beta.SearchRequest + (*SearchResponse)(nil), // 6: google.cloud.discoveryengine.v1beta.SearchResponse + (*SearchRequest_ImageQuery)(nil), // 7: google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery + (*SearchRequest_DataStoreSpec)(nil), // 8: google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec + (*SearchRequest_FacetSpec)(nil), // 9: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec + (*SearchRequest_BoostSpec)(nil), // 10: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec + (*SearchRequest_QueryExpansionSpec)(nil), // 11: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec + (*SearchRequest_SpellCorrectionSpec)(nil), // 12: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec + (*SearchRequest_ContentSearchSpec)(nil), // 13: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec + (*SearchRequest_EmbeddingSpec)(nil), // 14: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec + nil, // 15: google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry + nil, // 16: google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry + (*SearchRequest_FacetSpec_FacetKey)(nil), // 17: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey + (*SearchRequest_BoostSpec_ConditionBoostSpec)(nil), // 18: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec + (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec)(nil), // 19: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec + (*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint)(nil), // 20: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint + (*SearchRequest_ContentSearchSpec_SnippetSpec)(nil), // 21: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec + (*SearchRequest_ContentSearchSpec_SummarySpec)(nil), // 22: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec + (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec)(nil), // 23: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec + (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec)(nil), // 24: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec + (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec)(nil), // 25: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec + (*SearchRequest_EmbeddingSpec_EmbeddingVector)(nil), // 26: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector + (*SearchResponse_SearchResult)(nil), // 27: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult + (*SearchResponse_Facet)(nil), // 28: google.cloud.discoveryengine.v1beta.SearchResponse.Facet + (*SearchResponse_GuidedSearchResult)(nil), // 29: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult + (*SearchResponse_Summary)(nil), // 30: google.cloud.discoveryengine.v1beta.SearchResponse.Summary + (*SearchResponse_GeoSearchDebugInfo)(nil), // 31: google.cloud.discoveryengine.v1beta.SearchResponse.GeoSearchDebugInfo + (*SearchResponse_QueryExpansionInfo)(nil), // 32: google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo + nil, // 33: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry + (*SearchResponse_Facet_FacetValue)(nil), // 34: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue + (*SearchResponse_GuidedSearchResult_RefinementAttribute)(nil), // 35: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute + (*SearchResponse_Summary_SafetyAttributes)(nil), // 36: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes + (*SearchResponse_Summary_CitationMetadata)(nil), // 37: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata + (*SearchResponse_Summary_Citation)(nil), // 38: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation + (*SearchResponse_Summary_CitationSource)(nil), // 39: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource + (*SearchResponse_Summary_Reference)(nil), // 40: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference + (*SearchResponse_Summary_SummaryWithMetadata)(nil), // 41: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata + (*SearchResponse_Summary_Reference_ChunkContent)(nil), // 42: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference.ChunkContent + (*UserInfo)(nil), // 43: google.cloud.discoveryengine.v1beta.UserInfo + (*structpb.Value)(nil), // 44: google.protobuf.Value + (*Interval)(nil), // 45: google.cloud.discoveryengine.v1beta.Interval + (*Document)(nil), // 46: google.cloud.discoveryengine.v1beta.Document + (*DoubleList)(nil), // 47: google.cloud.discoveryengine.v1beta.DoubleList } var file_google_cloud_discoveryengine_v1beta_search_service_proto_depIdxs = []int32{ - 5, // 0: google.cloud.discoveryengine.v1beta.SearchRequest.image_query:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery - 6, // 1: google.cloud.discoveryengine.v1beta.SearchRequest.data_store_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec - 37, // 2: google.cloud.discoveryengine.v1beta.SearchRequest.user_info:type_name -> google.cloud.discoveryengine.v1beta.UserInfo - 7, // 3: google.cloud.discoveryengine.v1beta.SearchRequest.facet_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec - 8, // 4: google.cloud.discoveryengine.v1beta.SearchRequest.boost_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec - 13, // 5: google.cloud.discoveryengine.v1beta.SearchRequest.params:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry - 9, // 6: google.cloud.discoveryengine.v1beta.SearchRequest.query_expansion_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec - 10, // 7: google.cloud.discoveryengine.v1beta.SearchRequest.spell_correction_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec - 11, // 8: google.cloud.discoveryengine.v1beta.SearchRequest.content_search_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec - 12, // 9: google.cloud.discoveryengine.v1beta.SearchRequest.embedding_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec - 14, // 10: google.cloud.discoveryengine.v1beta.SearchRequest.user_labels:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry - 23, // 11: google.cloud.discoveryengine.v1beta.SearchResponse.results:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult - 24, // 12: google.cloud.discoveryengine.v1beta.SearchResponse.facets:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Facet - 25, // 13: google.cloud.discoveryengine.v1beta.SearchResponse.guided_search_result:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult - 26, // 14: google.cloud.discoveryengine.v1beta.SearchResponse.summary:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary - 27, // 15: google.cloud.discoveryengine.v1beta.SearchResponse.query_expansion_info:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo - 15, // 16: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.facet_key:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey - 16, // 17: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.condition_boost_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec - 0, // 18: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.condition:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition - 1, // 19: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.mode:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode - 17, // 20: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.snippet_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec - 18, // 21: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.summary_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec - 19, // 22: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.extractive_content_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec - 22, // 23: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.embedding_vectors:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector - 38, // 24: google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry.value:type_name -> google.protobuf.Value - 39, // 25: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey.intervals:type_name -> google.cloud.discoveryengine.v1beta.Interval - 20, // 26: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.model_prompt_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec - 21, // 27: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.model_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec - 40, // 28: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.document:type_name -> google.cloud.discoveryengine.v1beta.Document - 28, // 29: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.model_scores:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry - 29, // 30: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.values:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue - 30, // 31: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.refinement_attributes:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute - 2, // 32: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.summary_skipped_reasons:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason - 31, // 33: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.safety_attributes:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes - 36, // 34: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.summary_with_metadata:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata - 41, // 35: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry.value:type_name -> google.cloud.discoveryengine.v1beta.DoubleList - 39, // 36: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue.interval:type_name -> google.cloud.discoveryengine.v1beta.Interval - 33, // 37: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata.citations:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation - 34, // 38: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation.sources:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource - 32, // 39: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata.citation_metadata:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata - 35, // 40: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata.references:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference - 3, // 41: google.cloud.discoveryengine.v1beta.SearchService.Search:input_type -> google.cloud.discoveryengine.v1beta.SearchRequest - 4, // 42: google.cloud.discoveryengine.v1beta.SearchService.Search:output_type -> google.cloud.discoveryengine.v1beta.SearchResponse - 42, // [42:43] is the sub-list for method output_type - 41, // [41:42] is the sub-list for method input_type - 41, // [41:41] is the sub-list for extension type_name - 41, // [41:41] is the sub-list for extension extendee - 0, // [0:41] is the sub-list for field type_name + 7, // 0: google.cloud.discoveryengine.v1beta.SearchRequest.image_query:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery + 8, // 1: google.cloud.discoveryengine.v1beta.SearchRequest.data_store_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec + 43, // 2: google.cloud.discoveryengine.v1beta.SearchRequest.user_info:type_name -> google.cloud.discoveryengine.v1beta.UserInfo + 9, // 3: google.cloud.discoveryengine.v1beta.SearchRequest.facet_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec + 10, // 4: google.cloud.discoveryengine.v1beta.SearchRequest.boost_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec + 15, // 5: google.cloud.discoveryengine.v1beta.SearchRequest.params:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry + 11, // 6: google.cloud.discoveryengine.v1beta.SearchRequest.query_expansion_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec + 12, // 7: google.cloud.discoveryengine.v1beta.SearchRequest.spell_correction_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec + 13, // 8: google.cloud.discoveryengine.v1beta.SearchRequest.content_search_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec + 14, // 9: google.cloud.discoveryengine.v1beta.SearchRequest.embedding_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec + 16, // 10: google.cloud.discoveryengine.v1beta.SearchRequest.user_labels:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry + 27, // 11: google.cloud.discoveryengine.v1beta.SearchResponse.results:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult + 28, // 12: google.cloud.discoveryengine.v1beta.SearchResponse.facets:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Facet + 29, // 13: google.cloud.discoveryengine.v1beta.SearchResponse.guided_search_result:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult + 30, // 14: google.cloud.discoveryengine.v1beta.SearchResponse.summary:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary + 31, // 15: google.cloud.discoveryengine.v1beta.SearchResponse.geo_search_debug_info:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.GeoSearchDebugInfo + 32, // 16: google.cloud.discoveryengine.v1beta.SearchResponse.query_expansion_info:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo + 17, // 17: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.facet_key:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey + 18, // 18: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.condition_boost_specs:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec + 2, // 19: google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.condition:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition + 3, // 20: google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.mode:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode + 21, // 21: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.snippet_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec + 22, // 22: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.summary_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec + 23, // 23: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.extractive_content_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec + 26, // 24: google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.embedding_vectors:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector + 44, // 25: google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry.value:type_name -> google.protobuf.Value + 45, // 26: google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKey.intervals:type_name -> google.cloud.discoveryengine.v1beta.Interval + 19, // 27: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.boost_control_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec + 0, // 28: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.attribute_type:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType + 1, // 29: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.interpolation_type:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType + 20, // 30: google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.control_points:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint + 24, // 31: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.model_prompt_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec + 25, // 32: google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.model_spec:type_name -> google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec + 46, // 33: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.document:type_name -> google.cloud.discoveryengine.v1beta.Document + 33, // 34: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.model_scores:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry + 34, // 35: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.values:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue + 35, // 36: google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.refinement_attributes:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute + 4, // 37: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.summary_skipped_reasons:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason + 36, // 38: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.safety_attributes:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes + 41, // 39: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.summary_with_metadata:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata + 47, // 40: google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry.value:type_name -> google.cloud.discoveryengine.v1beta.DoubleList + 45, // 41: google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue.interval:type_name -> google.cloud.discoveryengine.v1beta.Interval + 38, // 42: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata.citations:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation + 39, // 43: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation.sources:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource + 42, // 44: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference.chunk_contents:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference.ChunkContent + 37, // 45: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata.citation_metadata:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata + 40, // 46: google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata.references:type_name -> google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference + 5, // 47: google.cloud.discoveryengine.v1beta.SearchService.Search:input_type -> google.cloud.discoveryengine.v1beta.SearchRequest + 6, // 48: google.cloud.discoveryengine.v1beta.SearchService.Search:output_type -> google.cloud.discoveryengine.v1beta.SearchResponse + 48, // [48:49] is the sub-list for method output_type + 47, // [47:48] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name } func init() { file_google_cloud_discoveryengine_v1beta_search_service_proto_init() } @@ -3775,7 +4307,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_ContentSearchSpec_SnippetSpec); i { + switch v := v.(*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec); i { case 0: return &v.state case 1: @@ -3787,7 +4319,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec); i { + switch v := v.(*SearchRequest_BoostSpec_ConditionBoostSpec_BoostControlSpec_ControlPoint); i { case 0: return &v.state case 1: @@ -3799,7 +4331,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_ContentSearchSpec_ExtractiveContentSpec); i { + switch v := v.(*SearchRequest_ContentSearchSpec_SnippetSpec); i { case 0: return &v.state case 1: @@ -3811,7 +4343,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec); i { + switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec); i { case 0: return &v.state case 1: @@ -3823,7 +4355,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec); i { + switch v := v.(*SearchRequest_ContentSearchSpec_ExtractiveContentSpec); i { case 0: return &v.state case 1: @@ -3835,7 +4367,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest_EmbeddingSpec_EmbeddingVector); i { + switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec); i { case 0: return &v.state case 1: @@ -3847,7 +4379,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_SearchResult); i { + switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec); i { case 0: return &v.state case 1: @@ -3859,7 +4391,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_Facet); i { + switch v := v.(*SearchRequest_EmbeddingSpec_EmbeddingVector); i { case 0: return &v.state case 1: @@ -3871,7 +4403,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_GuidedSearchResult); i { + switch v := v.(*SearchResponse_SearchResult); i { case 0: return &v.state case 1: @@ -3883,7 +4415,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_Summary); i { + switch v := v.(*SearchResponse_Facet); i { case 0: return &v.state case 1: @@ -3895,7 +4427,19 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_QueryExpansionInfo); i { + switch v := v.(*SearchResponse_GuidedSearchResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchResponse_Summary); i { case 0: return &v.state case 1: @@ -3907,7 +4451,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse_Facet_FacetValue); i { + switch v := v.(*SearchResponse_GeoSearchDebugInfo); i { case 0: return &v.state case 1: @@ -3919,6 +4463,30 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { } } file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[27].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_v1beta_search_service_proto_msgTypes[29].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_v1beta_search_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_GuidedSearchResult_RefinementAttribute); i { case 0: return &v.state @@ -3930,7 +4498,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_SafetyAttributes); i { case 0: return &v.state @@ -3942,7 +4510,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_CitationMetadata); i { case 0: return &v.state @@ -3954,7 +4522,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_Citation); i { case 0: return &v.state @@ -3966,7 +4534,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_CitationSource); i { case 0: return &v.state @@ -3978,7 +4546,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_Reference); i { case 0: return &v.state @@ -3990,7 +4558,7 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse_Summary_SummaryWithMetadata); i { case 0: return &v.state @@ -4002,11 +4570,23 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { return nil } } + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[37].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_v1beta_search_service_proto_msgTypes[2].OneofWrappers = []interface{}{ (*SearchRequest_ImageQuery_ImageBytes)(nil), } - file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[26].OneofWrappers = []interface{}{ + file_google_cloud_discoveryengine_v1beta_search_service_proto_msgTypes[29].OneofWrappers = []interface{}{ (*SearchResponse_Facet_FacetValue_Value)(nil), (*SearchResponse_Facet_FacetValue_Interval)(nil), } @@ -4015,8 +4595,8 @@ func file_google_cloud_discoveryengine_v1beta_search_service_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_discoveryengine_v1beta_search_service_proto_rawDesc, - NumEnums: 3, - NumMessages: 34, + NumEnums: 5, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/discoveryengine/apiv1beta/discoveryenginepb/search_tuning_service.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/search_tuning_service.pb.go index d4c50674428..1a26ac41751 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/search_tuning_service.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/search_tuning_service.pb.go @@ -164,9 +164,14 @@ type TrainCustomModelResponse struct { // // - **bad-data**: The training data quality is bad. // - **no-improvement**: Tuning didn't improve performance. Won't deploy. - // - **in-progress**: Model training is in progress. + // - **in-progress**: Model training job creation is in progress. + // - **training**: Model is actively training. + // - **evaluating**: The model is evaluating trained metrics. + // - **indexing**: The model trained metrics are indexing. // - **ready**: The model is ready for serving. ModelStatus string `protobuf:"bytes,3,opt,name=model_status,json=modelStatus,proto3" json:"model_status,omitempty"` + // The metrics of the trained model. + Metrics map[string]float64 `protobuf:"bytes,4,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (x *TrainCustomModelResponse) Reset() { @@ -222,6 +227,13 @@ func (x *TrainCustomModelResponse) GetModelStatus() string { return "" } +func (x *TrainCustomModelResponse) GetMetrics() map[string]float64 { + if x != nil { + return x.Metrics + } + return nil +} + // Metadata related to the progress of the TrainCustomModel operation. This is // returned by the google.longrunning.Operation.metadata field. type TrainCustomModelMetadata struct { @@ -439,8 +451,8 @@ var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_rawDesc 0x74, 0x61, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xd1, - 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xf3, + 0x02, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, @@ -453,63 +465,73 @@ var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_rawDesc 0x69, 0x67, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xbf, 0x03, 0x0a, 0x13, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0xd3, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0xca, 0x41, 0x7c, 0x0a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x75, 0x73, 0x12, 0x64, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 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, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x94, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xbf, 0x03, 0x0a, 0x13, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xd3, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x3a, 0x01, 0x2a, 0x22, 0x57, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 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, 0x9f, 0x02, 0x0a, 0x27, - 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x18, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, - 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, - 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, - 0x23, 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, - 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x01, 0xca, 0x41, 0x7c, 0x0a, 0x3c, 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, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x3a, 0x01, 0x2a, + 0x22, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 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, 0x7d, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 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, 0x9f, 0x02, + 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x18, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, + 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, 0x61, + 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -524,31 +546,33 @@ func file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_rawDes return file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_rawDescData } -var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_goTypes = []interface{}{ (*TrainCustomModelRequest)(nil), // 0: google.cloud.discoveryengine.v1beta.TrainCustomModelRequest (*TrainCustomModelResponse)(nil), // 1: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse (*TrainCustomModelMetadata)(nil), // 2: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata (*TrainCustomModelRequest_GcsTrainingInput)(nil), // 3: google.cloud.discoveryengine.v1beta.TrainCustomModelRequest.GcsTrainingInput - (*ImportErrorConfig)(nil), // 4: google.cloud.discoveryengine.v1beta.ImportErrorConfig - (*status.Status)(nil), // 5: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp - (*longrunningpb.Operation)(nil), // 7: google.longrunning.Operation + nil, // 4: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.MetricsEntry + (*ImportErrorConfig)(nil), // 5: google.cloud.discoveryengine.v1beta.ImportErrorConfig + (*status.Status)(nil), // 6: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (*longrunningpb.Operation)(nil), // 8: google.longrunning.Operation } var file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_depIdxs = []int32{ 3, // 0: google.cloud.discoveryengine.v1beta.TrainCustomModelRequest.gcs_training_input:type_name -> google.cloud.discoveryengine.v1beta.TrainCustomModelRequest.GcsTrainingInput - 4, // 1: google.cloud.discoveryengine.v1beta.TrainCustomModelRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 5, // 2: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.error_samples:type_name -> google.rpc.Status - 4, // 3: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig - 6, // 4: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata.create_time:type_name -> google.protobuf.Timestamp - 6, // 5: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata.update_time:type_name -> google.protobuf.Timestamp - 0, // 6: google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel:input_type -> google.cloud.discoveryengine.v1beta.TrainCustomModelRequest - 7, // 7: google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel:output_type -> google.longrunning.Operation - 7, // [7:8] is the sub-list for method output_type - 6, // [6:7] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 5, // 1: google.cloud.discoveryengine.v1beta.TrainCustomModelRequest.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 6, // 2: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.error_samples:type_name -> google.rpc.Status + 5, // 3: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.error_config:type_name -> google.cloud.discoveryengine.v1beta.ImportErrorConfig + 4, // 4: google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.metrics:type_name -> google.cloud.discoveryengine.v1beta.TrainCustomModelResponse.MetricsEntry + 7, // 5: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata.create_time:type_name -> google.protobuf.Timestamp + 7, // 6: google.cloud.discoveryengine.v1beta.TrainCustomModelMetadata.update_time:type_name -> google.protobuf.Timestamp + 0, // 7: google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel:input_type -> google.cloud.discoveryengine.v1beta.TrainCustomModelRequest + 8, // 8: google.cloud.discoveryengine.v1beta.SearchTuningService.TrainCustomModel:output_type -> google.longrunning.Operation + 8, // [8:9] is the sub-list for method output_type + 7, // [7:8] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_init() } @@ -616,7 +640,7 @@ func file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_init() GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_discoveryengine_v1beta_search_tuning_service_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/discoveryengine/apiv1beta/discoveryenginepb/session.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/session.pb.go new file mode 100755 index 00000000000..0e15cb18792 --- /dev/null +++ b/discoveryengine/apiv1beta/discoveryenginepb/session.pb.go @@ -0,0 +1,516 @@ +// 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.32.0 +// protoc v4.25.2 +// source: google/cloud/discoveryengine/v1beta/session.proto + +package discoveryenginepb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Enumeration of the state of the session. +type Session_State int32 + +const ( + // State is unspecified. + Session_STATE_UNSPECIFIED Session_State = 0 + // The session is currently open. + Session_IN_PROGRESS Session_State = 1 +) + +// Enum value maps for Session_State. +var ( + Session_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + } + Session_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + } +) + +func (x Session_State) Enum() *Session_State { + p := new(Session_State) + *p = x + return p +} + +func (x Session_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Session_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_discoveryengine_v1beta_session_proto_enumTypes[0].Descriptor() +} + +func (Session_State) Type() protoreflect.EnumType { + return &file_google_cloud_discoveryengine_v1beta_session_proto_enumTypes[0] +} + +func (x Session_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Session_State.Descriptor instead. +func (Session_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_session_proto_rawDescGZIP(), []int{0, 0} +} + +// External session proto definition. +type Session struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. Fully qualified name + // `project/*/locations/global/collections/{collection}/engines/{engine}/sessions/*` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The state of the session. + State Session_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.discoveryengine.v1beta.Session_State" json:"state,omitempty"` + // A unique identifier for tracking users. + UserPseudoId string `protobuf:"bytes,3,opt,name=user_pseudo_id,json=userPseudoId,proto3" json:"user_pseudo_id,omitempty"` + // Turns. + Turns []*Session_Turn `protobuf:"bytes,4,rep,name=turns,proto3" json:"turns,omitempty"` + // Output only. The time the session started. + StartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // Output only. The time the session finished. + EndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` +} + +func (x *Session) Reset() { + *x = Session{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Session) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Session) ProtoMessage() {} + +func (x *Session) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_session_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 Session.ProtoReflect.Descriptor instead. +func (*Session) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_session_proto_rawDescGZIP(), []int{0} +} + +func (x *Session) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Session) GetState() Session_State { + if x != nil { + return x.State + } + return Session_STATE_UNSPECIFIED +} + +func (x *Session) GetUserPseudoId() string { + if x != nil { + return x.UserPseudoId + } + return "" +} + +func (x *Session) GetTurns() []*Session_Turn { + if x != nil { + return x.Turns + } + return nil +} + +func (x *Session) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *Session) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +// Defines a user inputed query. +type Query struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Query content. + // + // Types that are assignable to Content: + // + // *Query_Text + Content isQuery_Content `protobuf_oneof:"content"` + // Unique Id for the query. + QueryId string `protobuf:"bytes,1,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` +} + +func (x *Query) Reset() { + *x = Query{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Query) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Query) ProtoMessage() {} + +func (x *Query) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_session_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 Query.ProtoReflect.Descriptor instead. +func (*Query) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_session_proto_rawDescGZIP(), []int{1} +} + +func (m *Query) GetContent() isQuery_Content { + if m != nil { + return m.Content + } + return nil +} + +func (x *Query) GetText() string { + if x, ok := x.GetContent().(*Query_Text); ok { + return x.Text + } + return "" +} + +func (x *Query) GetQueryId() string { + if x != nil { + return x.QueryId + } + return "" +} + +type isQuery_Content interface { + isQuery_Content() +} + +type Query_Text struct { + // Plain text. + Text string `protobuf:"bytes,2,opt,name=text,proto3,oneof"` +} + +func (*Query_Text) isQuery_Content() {} + +// Represents a turn, including a query from the user and a +// answer from service. +type Session_Turn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The user query. + Query *Query `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + // The resource name of the answer to the user query. + Answer string `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"` +} + +func (x *Session_Turn) Reset() { + *x = Session_Turn{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Session_Turn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Session_Turn) ProtoMessage() {} + +func (x *Session_Turn) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_discoveryengine_v1beta_session_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 Session_Turn.ProtoReflect.Descriptor instead. +func (*Session_Turn) Descriptor() ([]byte, []int) { + return file_google_cloud_discoveryengine_v1beta_session_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Session_Turn) GetQuery() *Query { + if x != nil { + return x.Query + } + return nil +} + +func (x *Session_Turn) GetAnswer() string { + if x != nil { + return x.Answer + } + return "" +} + +var File_google_cloud_discoveryengine_v1beta_session_proto protoreflect.FileDescriptor + +var file_google_cloud_discoveryengine_v1beta_session_proto_rawDesc = []byte{ + 0x0a, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x06, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x73, 0x65, + 0x75, 0x64, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x05, 0x74, 0x75, + 0x72, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x05, 0x74, 0x75, + 0x72, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, + 0x8c, 0x01, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x40, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 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, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x2f, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, + 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x3a, + 0xd3, 0x02, 0xea, 0x41, 0xcf, 0x02, 0x0a, 0x26, 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, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x7d, 0x12, 0x6b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, + 0x64, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0x43, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x93, 0x02, 0x0a, 0x27, 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, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 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, 0x62, 0x65, 0x74, 0x61, 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, 0x23, 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, 0x42, 0x65, 0x74, + 0x61, 0xca, 0x02, 0x23, 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, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x26, 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, 0x65, 0x74, 0x61, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_discoveryengine_v1beta_session_proto_rawDescOnce sync.Once + file_google_cloud_discoveryengine_v1beta_session_proto_rawDescData = file_google_cloud_discoveryengine_v1beta_session_proto_rawDesc +) + +func file_google_cloud_discoveryengine_v1beta_session_proto_rawDescGZIP() []byte { + file_google_cloud_discoveryengine_v1beta_session_proto_rawDescOnce.Do(func() { + file_google_cloud_discoveryengine_v1beta_session_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1beta_session_proto_rawDescData) + }) + return file_google_cloud_discoveryengine_v1beta_session_proto_rawDescData +} + +var file_google_cloud_discoveryengine_v1beta_session_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_discoveryengine_v1beta_session_proto_goTypes = []interface{}{ + (Session_State)(0), // 0: google.cloud.discoveryengine.v1beta.Session.State + (*Session)(nil), // 1: google.cloud.discoveryengine.v1beta.Session + (*Query)(nil), // 2: google.cloud.discoveryengine.v1beta.Query + (*Session_Turn)(nil), // 3: google.cloud.discoveryengine.v1beta.Session.Turn + (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp +} +var file_google_cloud_discoveryengine_v1beta_session_proto_depIdxs = []int32{ + 0, // 0: google.cloud.discoveryengine.v1beta.Session.state:type_name -> google.cloud.discoveryengine.v1beta.Session.State + 3, // 1: google.cloud.discoveryengine.v1beta.Session.turns:type_name -> google.cloud.discoveryengine.v1beta.Session.Turn + 4, // 2: google.cloud.discoveryengine.v1beta.Session.start_time:type_name -> google.protobuf.Timestamp + 4, // 3: google.cloud.discoveryengine.v1beta.Session.end_time:type_name -> google.protobuf.Timestamp + 2, // 4: google.cloud.discoveryengine.v1beta.Session.Turn.query:type_name -> google.cloud.discoveryengine.v1beta.Query + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_google_cloud_discoveryengine_v1beta_session_proto_init() } +func file_google_cloud_discoveryengine_v1beta_session_proto_init() { + if File_google_cloud_discoveryengine_v1beta_session_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Session); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Query); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Session_Turn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*Query_Text)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_discoveryengine_v1beta_session_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_discoveryengine_v1beta_session_proto_goTypes, + DependencyIndexes: file_google_cloud_discoveryengine_v1beta_session_proto_depIdxs, + EnumInfos: file_google_cloud_discoveryengine_v1beta_session_proto_enumTypes, + MessageInfos: file_google_cloud_discoveryengine_v1beta_session_proto_msgTypes, + }.Build() + File_google_cloud_discoveryengine_v1beta_session_proto = out.File + file_google_cloud_discoveryengine_v1beta_session_proto_rawDesc = nil + file_google_cloud_discoveryengine_v1beta_session_proto_goTypes = nil + file_google_cloud_discoveryengine_v1beta_session_proto_depIdxs = nil +} diff --git a/discoveryengine/apiv1beta/discoveryenginepb/user_event.pb.go b/discoveryengine/apiv1beta/discoveryenginepb/user_event.pb.go index 9e6dcb50ae3..2c65ab5ba0e 100755 --- a/discoveryengine/apiv1beta/discoveryenginepb/user_event.pb.go +++ b/discoveryengine/apiv1beta/discoveryenginepb/user_event.pb.go @@ -407,7 +407,7 @@ type PageInfo struct { // The most specific category associated with a category page. // // To represent full path of category, use '>' sign to separate different - // hierarchies. If '>' is part of the category name, please replace it with + // hierarchies. If '>' is part of the category name, replace it with // other character(s). // // Category pages include special pages such as sales or promotions. For diff --git a/discoveryengine/apiv1beta/document_client.go b/discoveryengine/apiv1beta/document_client.go index 998c140f89b..319efcaa2e2 100755 --- a/discoveryengine/apiv1beta/document_client.go +++ b/discoveryengine/apiv1beta/document_client.go @@ -1063,6 +1063,13 @@ func (c *documentRESTClient) UpdateDocument(ctx context.Context, req *discoverye if req.GetAllowMissing() { params.Add("allowMissing", fmt.Sprintf("%v", req.GetAllowMissing())) } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } baseUrl.RawQuery = params.Encode() diff --git a/discoveryengine/apiv1beta/engine_client.go b/discoveryengine/apiv1beta/engine_client.go index cb483b60a41..853f8cc85d8 100755 --- a/discoveryengine/apiv1beta/engine_client.go +++ b/discoveryengine/apiv1beta/engine_client.go @@ -52,6 +52,9 @@ type EngineCallOptions struct { UpdateEngine []gax.CallOption GetEngine []gax.CallOption ListEngines []gax.CallOption + PauseEngine []gax.CallOption + ResumeEngine []gax.CallOption + TuneEngine []gax.CallOption GetOperation []gax.CallOption ListOperations []gax.CallOption } @@ -77,6 +80,9 @@ func defaultEngineCallOptions() *EngineCallOptions { UpdateEngine: []gax.CallOption{}, GetEngine: []gax.CallOption{}, ListEngines: []gax.CallOption{}, + PauseEngine: []gax.CallOption{}, + ResumeEngine: []gax.CallOption{}, + TuneEngine: []gax.CallOption{}, GetOperation: []gax.CallOption{ gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { @@ -111,6 +117,9 @@ func defaultEngineRESTCallOptions() *EngineCallOptions { UpdateEngine: []gax.CallOption{}, GetEngine: []gax.CallOption{}, ListEngines: []gax.CallOption{}, + PauseEngine: []gax.CallOption{}, + ResumeEngine: []gax.CallOption{}, + TuneEngine: []gax.CallOption{}, GetOperation: []gax.CallOption{ gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { @@ -148,6 +157,10 @@ type internalEngineClient interface { UpdateEngine(context.Context, *discoveryenginepb.UpdateEngineRequest, ...gax.CallOption) (*discoveryenginepb.Engine, error) GetEngine(context.Context, *discoveryenginepb.GetEngineRequest, ...gax.CallOption) (*discoveryenginepb.Engine, error) ListEngines(context.Context, *discoveryenginepb.ListEnginesRequest, ...gax.CallOption) *EngineIterator + PauseEngine(context.Context, *discoveryenginepb.PauseEngineRequest, ...gax.CallOption) (*discoveryenginepb.Engine, error) + ResumeEngine(context.Context, *discoveryenginepb.ResumeEngineRequest, ...gax.CallOption) (*discoveryenginepb.Engine, error) + TuneEngine(context.Context, *discoveryenginepb.TuneEngineRequest, ...gax.CallOption) (*TuneEngineOperation, error) + TuneEngineOperation(name string) *TuneEngineOperation GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator } @@ -231,6 +244,33 @@ func (c *EngineClient) ListEngines(ctx context.Context, req *discoveryenginepb.L return c.internalClient.ListEngines(ctx, req, opts...) } +// PauseEngine pauses the training of an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *EngineClient) PauseEngine(ctx context.Context, req *discoveryenginepb.PauseEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + return c.internalClient.PauseEngine(ctx, req, opts...) +} + +// ResumeEngine resumes the training of an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *EngineClient) ResumeEngine(ctx context.Context, req *discoveryenginepb.ResumeEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + return c.internalClient.ResumeEngine(ctx, req, opts...) +} + +// TuneEngine tunes an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *EngineClient) TuneEngine(ctx context.Context, req *discoveryenginepb.TuneEngineRequest, opts ...gax.CallOption) (*TuneEngineOperation, error) { + return c.internalClient.TuneEngine(ctx, req, opts...) +} + +// TuneEngineOperation returns a new TuneEngineOperation from a given name. +// The name must be that of a previously created TuneEngineOperation, possibly from a different process. +func (c *EngineClient) TuneEngineOperation(name string) *TuneEngineOperation { + return c.internalClient.TuneEngineOperation(name) +} + // GetOperation is a utility method from google.longrunning.Operations. func (c *EngineClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { return c.internalClient.GetOperation(ctx, req, opts...) @@ -541,6 +581,62 @@ func (c *engineGRPCClient) ListEngines(ctx context.Context, req *discoveryengine return it } +func (c *engineGRPCClient) PauseEngine(ctx context.Context, req *discoveryenginepb.PauseEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).PauseEngine[0:len((*c.CallOptions).PauseEngine):len((*c.CallOptions).PauseEngine)], opts...) + var resp *discoveryenginepb.Engine + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.engineClient.PauseEngine(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *engineGRPCClient) ResumeEngine(ctx context.Context, req *discoveryenginepb.ResumeEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ResumeEngine[0:len((*c.CallOptions).ResumeEngine):len((*c.CallOptions).ResumeEngine)], opts...) + var resp *discoveryenginepb.Engine + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.engineClient.ResumeEngine(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *engineGRPCClient) TuneEngine(ctx context.Context, req *discoveryenginepb.TuneEngineRequest, opts ...gax.CallOption) (*TuneEngineOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TuneEngine[0:len((*c.CallOptions).TuneEngine):len((*c.CallOptions).TuneEngine)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.engineClient.TuneEngine(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &TuneEngineOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + func (c *engineGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} @@ -968,6 +1064,214 @@ func (c *engineRESTClient) ListEngines(ctx context.Context, req *discoveryengine return it } +// PauseEngine pauses the training of an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *engineRESTClient) PauseEngine(ctx context.Context, req *discoveryenginepb.PauseEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:pause", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).PauseEngine[0:len((*c.CallOptions).PauseEngine):len((*c.CallOptions).PauseEngine)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Engine{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ResumeEngine resumes the training of an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *engineRESTClient) ResumeEngine(ctx context.Context, req *discoveryenginepb.ResumeEngineRequest, opts ...gax.CallOption) (*discoveryenginepb.Engine, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:resume", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ResumeEngine[0:len((*c.CallOptions).ResumeEngine):len((*c.CallOptions).ResumeEngine)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.Engine{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// TuneEngine tunes an existing engine. Only applicable if +// SolutionType is +// SOLUTION_TYPE_RECOMMENDATION. +func (c *engineRESTClient) TuneEngine(ctx context.Context, req *discoveryenginepb.TuneEngineRequest, opts ...gax.CallOption) (*TuneEngineOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:tune", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1beta/%s", resp.GetName()) + return &TuneEngineOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + // GetOperation is a utility method from google.longrunning.Operations. func (c *engineRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { baseUrl, err := url.Parse(c.endpoint) @@ -1155,3 +1459,21 @@ func (c *engineRESTClient) DeleteEngineOperation(name string) *DeleteEngineOpera pollPath: override, } } + +// TuneEngineOperation returns a new TuneEngineOperation from a given name. +// The name must be that of a previously created TuneEngineOperation, possibly from a different process. +func (c *engineGRPCClient) TuneEngineOperation(name string) *TuneEngineOperation { + return &TuneEngineOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// TuneEngineOperation returns a new TuneEngineOperation from a given name. +// The name must be that of a previously created TuneEngineOperation, possibly from a different process. +func (c *engineRESTClient) TuneEngineOperation(name string) *TuneEngineOperation { + override := fmt.Sprintf("/v1beta/%s", name) + return &TuneEngineOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/discoveryengine/apiv1beta/engine_client_example_test.go b/discoveryengine/apiv1beta/engine_client_example_test.go index 99485956f39..ca5a93028f6 100644 --- a/discoveryengine/apiv1beta/engine_client_example_test.go +++ b/discoveryengine/apiv1beta/engine_client_example_test.go @@ -179,6 +179,86 @@ func ExampleEngineClient_ListEngines() { } } +func ExampleEngineClient_PauseEngine() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.PauseEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#PauseEngineRequest. + } + resp, err := c.PauseEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleEngineClient_ResumeEngine() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.ResumeEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#ResumeEngineRequest. + } + resp, err := c.ResumeEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleEngineClient_TuneEngine() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.TuneEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#TuneEngineRequest. + } + op, err := c.TuneEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleEngineClient_UpdateEngine() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. diff --git a/discoveryengine/apiv1beta/gapic_metadata.json b/discoveryengine/apiv1beta/gapic_metadata.json index 5c58e27cb03..2839150c73d 100644 --- a/discoveryengine/apiv1beta/gapic_metadata.json +++ b/discoveryengine/apiv1beta/gapic_metadata.json @@ -74,6 +74,11 @@ "grpc": { "libraryClient": "ConversationalSearchClient", "rpcs": { + "AnswerQuery": { + "methods": [ + "AnswerQuery" + ] + }, "ConverseConversation": { "methods": [ "ConverseConversation" @@ -84,11 +89,26 @@ "CreateConversation" ] }, + "CreateSession": { + "methods": [ + "CreateSession" + ] + }, "DeleteConversation": { "methods": [ "DeleteConversation" ] }, + "DeleteSession": { + "methods": [ + "DeleteSession" + ] + }, + "GetAnswer": { + "methods": [ + "GetAnswer" + ] + }, "GetConversation": { "methods": [ "GetConversation" @@ -99,6 +119,11 @@ "GetOperation" ] }, + "GetSession": { + "methods": [ + "GetSession" + ] + }, "ListConversations": { "methods": [ "ListConversations" @@ -109,16 +134,31 @@ "ListOperations" ] }, + "ListSessions": { + "methods": [ + "ListSessions" + ] + }, "UpdateConversation": { "methods": [ "UpdateConversation" ] + }, + "UpdateSession": { + "methods": [ + "UpdateSession" + ] } } }, "rest": { "libraryClient": "ConversationalSearchClient", "rpcs": { + "AnswerQuery": { + "methods": [ + "AnswerQuery" + ] + }, "ConverseConversation": { "methods": [ "ConverseConversation" @@ -129,11 +169,26 @@ "CreateConversation" ] }, + "CreateSession": { + "methods": [ + "CreateSession" + ] + }, "DeleteConversation": { "methods": [ "DeleteConversation" ] }, + "DeleteSession": { + "methods": [ + "DeleteSession" + ] + }, + "GetAnswer": { + "methods": [ + "GetAnswer" + ] + }, "GetConversation": { "methods": [ "GetConversation" @@ -144,6 +199,11 @@ "GetOperation" ] }, + "GetSession": { + "methods": [ + "GetSession" + ] + }, "ListConversations": { "methods": [ "ListConversations" @@ -154,10 +214,20 @@ "ListOperations" ] }, + "ListSessions": { + "methods": [ + "ListSessions" + ] + }, "UpdateConversation": { "methods": [ "UpdateConversation" ] + }, + "UpdateSession": { + "methods": [ + "UpdateSession" + ] } } } @@ -386,6 +456,21 @@ "ListOperations" ] }, + "PauseEngine": { + "methods": [ + "PauseEngine" + ] + }, + "ResumeEngine": { + "methods": [ + "ResumeEngine" + ] + }, + "TuneEngine": { + "methods": [ + "TuneEngine" + ] + }, "UpdateEngine": { "methods": [ "UpdateEngine" @@ -426,6 +511,21 @@ "ListOperations" ] }, + "PauseEngine": { + "methods": [ + "PauseEngine" + ] + }, + "ResumeEngine": { + "methods": [ + "ResumeEngine" + ] + }, + "TuneEngine": { + "methods": [ + "TuneEngine" + ] + }, "UpdateEngine": { "methods": [ "UpdateEngine" @@ -435,6 +535,94 @@ } } }, + "GroundedGenerationService": { + "clients": { + "grpc": { + "libraryClient": "GroundedGenerationClient", + "rpcs": { + "CheckGrounding": { + "methods": [ + "CheckGrounding" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + } + } + }, + "rest": { + "libraryClient": "GroundedGenerationClient", + "rpcs": { + "CheckGrounding": { + "methods": [ + "CheckGrounding" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + } + } + } + } + }, + "RankService": { + "clients": { + "grpc": { + "libraryClient": "RankClient", + "rpcs": { + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "Rank": { + "methods": [ + "Rank" + ] + } + } + }, + "rest": { + "libraryClient": "RankClient", + "rpcs": { + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "Rank": { + "methods": [ + "Rank" + ] + } + } + } + } + }, "RecommendationService": { "clients": { "grpc": { diff --git a/discoveryengine/apiv1beta/grounded_generation_client.go b/discoveryengine/apiv1beta/grounded_generation_client.go new file mode 100755 index 00000000000..d7985596407 --- /dev/null +++ b/discoveryengine/apiv1beta/grounded_generation_client.go @@ -0,0 +1,649 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package discoveryengine + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newGroundedGenerationClientHook clientHook + +// GroundedGenerationCallOptions contains the retry settings for each method of GroundedGenerationClient. +type GroundedGenerationCallOptions struct { + CheckGrounding []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultGroundedGenerationGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("discoveryengine.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("discoveryengine.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("discoveryengine.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://discoveryengine.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultGroundedGenerationCallOptions() *GroundedGenerationCallOptions { + return &GroundedGenerationCallOptions{ + CheckGrounding: []gax.CallOption{ + gax.WithTimeout(5000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 5000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListOperations: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 30000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +func defaultGroundedGenerationRESTCallOptions() *GroundedGenerationCallOptions { + return &GroundedGenerationCallOptions{ + CheckGrounding: []gax.CallOption{ + gax.WithTimeout(5000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 5000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListOperations: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 30000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + } +} + +// internalGroundedGenerationClient is an interface that defines the methods available from Discovery Engine API. +type internalGroundedGenerationClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CheckGrounding(context.Context, *discoveryenginepb.CheckGroundingRequest, ...gax.CallOption) (*discoveryenginepb.CheckGroundingResponse, error) + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// GroundedGenerationClient is a client for interacting with Discovery Engine API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service for grounded generation. +type GroundedGenerationClient struct { + // The internal transport-dependent client. + internalClient internalGroundedGenerationClient + + // The call options for this service. + CallOptions *GroundedGenerationCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *GroundedGenerationClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *GroundedGenerationClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *GroundedGenerationClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CheckGrounding performs a grounding check. +func (c *GroundedGenerationClient) CheckGrounding(ctx context.Context, req *discoveryenginepb.CheckGroundingRequest, opts ...gax.CallOption) (*discoveryenginepb.CheckGroundingResponse, error) { + return c.internalClient.CheckGrounding(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *GroundedGenerationClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *GroundedGenerationClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// groundedGenerationGRPCClient is a client for interacting with Discovery Engine API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type groundedGenerationGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing GroundedGenerationClient + CallOptions **GroundedGenerationCallOptions + + // The gRPC API client. + groundedGenerationClient discoveryenginepb.GroundedGenerationServiceClient + + operationsClient longrunningpb.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewGroundedGenerationClient creates a new grounded generation service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service for grounded generation. +func NewGroundedGenerationClient(ctx context.Context, opts ...option.ClientOption) (*GroundedGenerationClient, error) { + clientOpts := defaultGroundedGenerationGRPCClientOptions() + if newGroundedGenerationClientHook != nil { + hookOpts, err := newGroundedGenerationClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := GroundedGenerationClient{CallOptions: defaultGroundedGenerationCallOptions()} + + c := &groundedGenerationGRPCClient{ + connPool: connPool, + groundedGenerationClient: discoveryenginepb.NewGroundedGenerationServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *groundedGenerationGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *groundedGenerationGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *groundedGenerationGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type groundedGenerationRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing GroundedGenerationClient + CallOptions **GroundedGenerationCallOptions +} + +// NewGroundedGenerationRESTClient creates a new grounded generation service rest client. +// +// Service for grounded generation. +func NewGroundedGenerationRESTClient(ctx context.Context, opts ...option.ClientOption) (*GroundedGenerationClient, error) { + clientOpts := append(defaultGroundedGenerationRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultGroundedGenerationRESTCallOptions() + c := &groundedGenerationRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &GroundedGenerationClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultGroundedGenerationRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://discoveryengine.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://discoveryengine.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://discoveryengine.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://discoveryengine.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *groundedGenerationRESTClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *groundedGenerationRESTClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *groundedGenerationRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *groundedGenerationGRPCClient) CheckGrounding(ctx context.Context, req *discoveryenginepb.CheckGroundingRequest, opts ...gax.CallOption) (*discoveryenginepb.CheckGroundingResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "grounding_config", url.QueryEscape(req.GetGroundingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CheckGrounding[0:len((*c.CallOptions).CheckGrounding):len((*c.CallOptions).CheckGrounding)], opts...) + var resp *discoveryenginepb.CheckGroundingResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.groundedGenerationClient.CheckGrounding(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *groundedGenerationGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *groundedGenerationGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CheckGrounding performs a grounding check. +func (c *groundedGenerationRESTClient) CheckGrounding(ctx context.Context, req *discoveryenginepb.CheckGroundingRequest, opts ...gax.CallOption) (*discoveryenginepb.CheckGroundingResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:check", req.GetGroundingConfig()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "grounding_config", url.QueryEscape(req.GetGroundingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).CheckGrounding[0:len((*c.CallOptions).CheckGrounding):len((*c.CallOptions).CheckGrounding)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.CheckGroundingResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *groundedGenerationRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *groundedGenerationRESTClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v/operations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} diff --git a/discoveryengine/apiv1beta/grounded_generation_client_example_test.go b/discoveryengine/apiv1beta/grounded_generation_client_example_test.go new file mode 100644 index 00000000000..7838acfcf33 --- /dev/null +++ b/discoveryengine/apiv1beta/grounded_generation_client_example_test.go @@ -0,0 +1,147 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package discoveryengine_test + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func ExampleNewGroundedGenerationClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewGroundedGenerationRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleGroundedGenerationClient_CheckGrounding() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.CheckGroundingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#CheckGroundingRequest. + } + resp, err := c.CheckGrounding(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleGroundedGenerationClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleGroundedGenerationClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/discoveryengine/apiv1beta/rank_client.go b/discoveryengine/apiv1beta/rank_client.go new file mode 100755 index 00000000000..ad9b95e6586 --- /dev/null +++ b/discoveryengine/apiv1beta/rank_client.go @@ -0,0 +1,649 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package discoveryengine + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newRankClientHook clientHook + +// RankCallOptions contains the retry settings for each method of RankClient. +type RankCallOptions struct { + Rank []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultRankGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("discoveryengine.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("discoveryengine.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("discoveryengine.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://discoveryengine.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultRankCallOptions() *RankCallOptions { + return &RankCallOptions{ + Rank: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListOperations: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 30000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +func defaultRankRESTCallOptions() *RankCallOptions { + return &RankCallOptions{ + Rank: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListOperations: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 30000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + } +} + +// internalRankClient is an interface that defines the methods available from Discovery Engine API. +type internalRankClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + Rank(context.Context, *discoveryenginepb.RankRequest, ...gax.CallOption) (*discoveryenginepb.RankResponse, error) + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// RankClient is a client for interacting with Discovery Engine API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service for ranking text records. +type RankClient struct { + // The internal transport-dependent client. + internalClient internalRankClient + + // The call options for this service. + CallOptions *RankCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *RankClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *RankClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *RankClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// Rank ranks a list of text records based on the given input query. +func (c *RankClient) Rank(ctx context.Context, req *discoveryenginepb.RankRequest, opts ...gax.CallOption) (*discoveryenginepb.RankResponse, error) { + return c.internalClient.Rank(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *RankClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *RankClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// rankGRPCClient is a client for interacting with Discovery Engine API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type rankGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing RankClient + CallOptions **RankCallOptions + + // The gRPC API client. + rankClient discoveryenginepb.RankServiceClient + + operationsClient longrunningpb.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewRankClient creates a new rank service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service for ranking text records. +func NewRankClient(ctx context.Context, opts ...option.ClientOption) (*RankClient, error) { + clientOpts := defaultRankGRPCClientOptions() + if newRankClientHook != nil { + hookOpts, err := newRankClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := RankClient{CallOptions: defaultRankCallOptions()} + + c := &rankGRPCClient{ + connPool: connPool, + rankClient: discoveryenginepb.NewRankServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *rankGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *rankGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *rankGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type rankRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing RankClient + CallOptions **RankCallOptions +} + +// NewRankRESTClient creates a new rank service rest client. +// +// Service for ranking text records. +func NewRankRESTClient(ctx context.Context, opts ...option.ClientOption) (*RankClient, error) { + clientOpts := append(defaultRankRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultRankRESTCallOptions() + c := &rankRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &RankClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultRankRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://discoveryengine.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://discoveryengine.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://discoveryengine.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://discoveryengine.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *rankRESTClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *rankRESTClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *rankRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *rankGRPCClient) Rank(ctx context.Context, req *discoveryenginepb.RankRequest, opts ...gax.CallOption) (*discoveryenginepb.RankResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "ranking_config", url.QueryEscape(req.GetRankingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).Rank[0:len((*c.CallOptions).Rank):len((*c.CallOptions).Rank)], opts...) + var resp *discoveryenginepb.RankResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.rankClient.Rank(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *rankGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *rankGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// Rank ranks a list of text records based on the given input query. +func (c *rankRESTClient) Rank(ctx context.Context, req *discoveryenginepb.RankRequest, opts ...gax.CallOption) (*discoveryenginepb.RankResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v:rank", req.GetRankingConfig()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "ranking_config", url.QueryEscape(req.GetRankingConfig()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).Rank[0:len((*c.CallOptions).Rank):len((*c.CallOptions).Rank)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &discoveryenginepb.RankResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *rankRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *rankRESTClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1beta/%v/operations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} diff --git a/discoveryengine/apiv1beta/rank_client_example_test.go b/discoveryengine/apiv1beta/rank_client_example_test.go new file mode 100644 index 00000000000..e98142d8d53 --- /dev/null +++ b/discoveryengine/apiv1beta/rank_client_example_test.go @@ -0,0 +1,147 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package discoveryengine_test + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func ExampleNewRankClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewRankRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleRankClient_Rank() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.RankRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#RankRequest. + } + resp, err := c.Rank(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRankClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRankClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/discoveryengine/apiv1beta/search_client.go b/discoveryengine/apiv1beta/search_client.go index ed71b320b88..ceb68dd738c 100755 --- a/discoveryengine/apiv1beta/search_client.go +++ b/discoveryengine/apiv1beta/search_client.go @@ -67,13 +67,13 @@ func defaultSearchGRPCClientOptions() []option.ClientOption { func defaultSearchCallOptions() *SearchCallOptions { return &SearchCallOptions{ Search: []gax.CallOption{ - gax.WithTimeout(5000 * time.Millisecond), + gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { return gax.OnCodes([]codes.Code{ codes.Unavailable, }, gax.Backoff{ - Initial: 100 * time.Millisecond, - Max: 5000 * time.Millisecond, + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, Multiplier: 1.30, }) }), @@ -108,11 +108,11 @@ func defaultSearchCallOptions() *SearchCallOptions { func defaultSearchRESTCallOptions() *SearchCallOptions { return &SearchCallOptions{ Search: []gax.CallOption{ - gax.WithTimeout(5000 * time.Millisecond), + gax.WithTimeout(30000 * time.Millisecond), gax.WithRetry(func() gax.Retryer { return gax.OnHTTPCodes(gax.Backoff{ - Initial: 100 * time.Millisecond, - Max: 5000 * time.Millisecond, + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, Multiplier: 1.30, }, http.StatusServiceUnavailable) diff --git a/internal/.repo-metadata-full.json b/internal/.repo-metadata-full.json index a68507e1f45..668663f1bf8 100644 --- a/internal/.repo-metadata-full.json +++ b/internal/.repo-metadata-full.json @@ -2349,6 +2349,16 @@ "release_level": "preview", "library_type": "GAPIC_AUTO" }, + "cloud.google.com/go/shopping/merchant/quota/apiv1beta": { + "api_shortname": "merchantapi", + "distribution_name": "cloud.google.com/go/shopping/merchant/quota/apiv1beta", + "description": "Merchant API", + "language": "go", + "client_library_type": "generated", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/shopping/latest/merchant/quota/apiv1beta", + "release_level": "preview", + "library_type": "GAPIC_AUTO" + }, "cloud.google.com/go/shopping/merchant/reports/apiv1beta": { "api_shortname": "merchantapi", "distribution_name": "cloud.google.com/go/shopping/merchant/reports/apiv1beta", diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/AnswerQuery/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/AnswerQuery/main.go new file mode 100644 index 00000000000..cd71b0478b4 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/AnswerQuery/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_AnswerQuery_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.AnswerQueryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#AnswerQueryRequest. + } + resp, err := c.AnswerQuery(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_AnswerQuery_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/CreateSession/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/CreateSession/main.go new file mode 100644 index 00000000000..91daeb15811 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/CreateSession/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_CreateSession_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.CreateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#CreateSessionRequest. + } + resp, err := c.CreateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_CreateSession_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/DeleteSession/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/DeleteSession/main.go new file mode 100644 index 00000000000..1f692c05587 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/DeleteSession/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_DeleteSession_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.DeleteSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#DeleteSessionRequest. + } + err = c.DeleteSession(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_DeleteSession_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetAnswer/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetAnswer/main.go new file mode 100644 index 00000000000..ed4ed67e83f --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetAnswer/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_GetAnswer_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.GetAnswerRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#GetAnswerRequest. + } + resp, err := c.GetAnswer(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_GetAnswer_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetSession/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetSession/main.go new file mode 100644 index 00000000000..df970cc6cef --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/GetSession/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_GetSession_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.GetSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#GetSessionRequest. + } + resp, err := c.GetSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_GetSession_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/ListSessions/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/ListSessions/main.go new file mode 100644 index 00000000000..75c2ef35fbf --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/ListSessions/main.go @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_ListSessions_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.ListSessionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#ListSessionsRequest. + } + it := c.ListSessions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*discoveryenginepb.ListSessionsResponse) + } +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_ListSessions_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/UpdateSession/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/UpdateSession/main.go new file mode 100644 index 00000000000..cde7dc03eff --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/ConversationalSearchClient/UpdateSession/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_ConversationalSearchService_UpdateSession_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewConversationalSearchClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.UpdateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#UpdateSessionRequest. + } + resp, err := c.UpdateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_ConversationalSearchService_UpdateSession_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/PauseEngine/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/PauseEngine/main.go new file mode 100644 index 00000000000..9f300d480f7 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/PauseEngine/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_EngineService_PauseEngine_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.PauseEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#PauseEngineRequest. + } + resp, err := c.PauseEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_EngineService_PauseEngine_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/ResumeEngine/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/ResumeEngine/main.go new file mode 100644 index 00000000000..b4d9e6bbdae --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/ResumeEngine/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_EngineService_ResumeEngine_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.ResumeEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#ResumeEngineRequest. + } + resp, err := c.ResumeEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_EngineService_ResumeEngine_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/TuneEngine/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/TuneEngine/main.go new file mode 100644 index 00000000000..e48448a24b5 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/EngineClient/TuneEngine/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_EngineService_TuneEngine_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewEngineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.TuneEngineRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#TuneEngineRequest. + } + op, err := c.TuneEngine(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_EngineService_TuneEngine_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/CheckGrounding/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/CheckGrounding/main.go new file mode 100644 index 00000000000..e0ce948c07b --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/CheckGrounding/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_GroundedGenerationService_CheckGrounding_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.CheckGroundingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#CheckGroundingRequest. + } + resp, err := c.CheckGrounding(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_GroundedGenerationService_CheckGrounding_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/GetOperation/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/GetOperation/main.go new file mode 100644 index 00000000000..176b0e31f0a --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_GroundedGenerationService_GetOperation_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_GroundedGenerationService_GetOperation_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/ListOperations/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/ListOperations/main.go new file mode 100644 index 00000000000..bb22ec6f90b --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/GroundedGenerationClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_GroundedGenerationService_ListOperations_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewGroundedGenerationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END discoveryengine_v1beta_generated_GroundedGenerationService_ListOperations_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/GetOperation/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/GetOperation/main.go new file mode 100644 index 00000000000..953517fa985 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_RankService_GetOperation_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_RankService_GetOperation_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/ListOperations/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/ListOperations/main.go new file mode 100644 index 00000000000..9271d55ba4c --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_RankService_ListOperations_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END discoveryengine_v1beta_generated_RankService_ListOperations_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/Rank/main.go b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/Rank/main.go new file mode 100644 index 00000000000..ca495195402 --- /dev/null +++ b/internal/generated/snippets/discoveryengine/apiv1beta/RankClient/Rank/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START discoveryengine_v1beta_generated_RankService_Rank_sync] + +package main + +import ( + "context" + + discoveryengine "cloud.google.com/go/discoveryengine/apiv1beta" + discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := discoveryengine.NewRankClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &discoveryenginepb.RankRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb#RankRequest. + } + resp, err := c.Rank(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END discoveryengine_v1beta_generated_RankService_Rank_sync] diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json b/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json index 004fa415df1..7e7c4239756 100644 --- a/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json +++ b/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json @@ -241,6 +241,52 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_AnswerQuery_sync", + "title": "discoveryengine AnswerQuery Sample", + "description": "AnswerQuery answer query method.", + "file": "ConversationalSearchClient/AnswerQuery/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AnswerQuery", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.AnswerQuery", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.AnswerQueryRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.AnswerQueryResponse", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "AnswerQuery", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.AnswerQuery", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_ConverseConversation_sync", "title": "discoveryengine ConverseConversation Sample", @@ -333,6 +379,52 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_CreateSession_sync", + "title": "discoveryengine CreateSession Sample", + "description": "CreateSession creates a Session.\n\nIf the [Session][google.cloud.discoveryengine.v1beta.Session] to create\nalready exists, an ALREADY_EXISTS error is returned.", + "file": "ConversationalSearchClient/CreateSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.CreateSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.CreateSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Session", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "CreateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.CreateSession", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_DeleteConversation_sync", "title": "discoveryengine DeleteConversation Sample", @@ -378,6 +470,97 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_DeleteSession_sync", + "title": "discoveryengine DeleteSession Sample", + "description": "DeleteSession deletes a Session.\n\nIf the [Session][google.cloud.discoveryengine.v1beta.Session] to delete\ndoes not exist, a NOT_FOUND error is returned.", + "file": "ConversationalSearchClient/DeleteSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.DeleteSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.DeleteSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "DeleteSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.DeleteSession", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_GetAnswer_sync", + "title": "discoveryengine GetAnswer Sample", + "description": "GetAnswer gets a Answer.", + "file": "ConversationalSearchClient/GetAnswer/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetAnswer", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.GetAnswer", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.GetAnswerRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Answer", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "GetAnswer", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_GetConversation_sync", "title": "discoveryengine GetConversation Sample", @@ -470,6 +653,52 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_GetSession_sync", + "title": "discoveryengine GetSession Sample", + "description": "GetSession gets a Session.", + "file": "ConversationalSearchClient/GetSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.GetSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.GetSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Session", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "GetSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetSession", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_ListConversations_sync", "title": "discoveryengine ListConversations Sample", @@ -562,6 +791,52 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_ListSessions_sync", + "title": "discoveryengine ListSessions Sample", + "description": "ListSessions lists all Sessions by their parent\n[DataStore][google.cloud.discoveryengine.v1beta.DataStore].", + "file": "ConversationalSearchClient/ListSessions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSessions", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.ListSessions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.ListSessionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SessionIterator", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "ListSessions", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.ListSessions", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_UpdateConversation_sync", "title": "discoveryengine UpdateConversation Sample", @@ -608,6 +883,52 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_ConversationalSearchService_UpdateSession_sync", + "title": "discoveryengine UpdateSession Sample", + "description": "UpdateSession updates a Session.\n\n[Session][google.cloud.discoveryengine.v1beta.Session] action type cannot\nbe changed. If the [Session][google.cloud.discoveryengine.v1beta.Session]\nto update does not exist, a NOT_FOUND error is returned.", + "file": "ConversationalSearchClient/UpdateSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient.UpdateSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.UpdateSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Session", + "client": { + "shortName": "ConversationalSearchClient", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchClient" + }, + "method": { + "shortName": "UpdateSession", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService.UpdateSession", + "service": { + "shortName": "ConversationalSearchService", + "fullName": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_DataStoreService_CreateDataStore_sync", "title": "discoveryengine CreateDataStore Sample", @@ -1620,10 +1941,148 @@ ] }, { - "regionTag": "discoveryengine_v1beta_generated_EngineService_UpdateEngine_sync", - "title": "discoveryengine UpdateEngine Sample", - "description": "UpdateEngine updates an [Engine][google.cloud.discoveryengine.v1beta.Engine]", - "file": "EngineClient/UpdateEngine/main.go", + "regionTag": "discoveryengine_v1beta_generated_EngineService_PauseEngine_sync", + "title": "discoveryengine PauseEngine Sample", + "description": "PauseEngine pauses the training of an existing engine. Only applicable if\n[SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is\n[SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION].", + "file": "EngineClient/PauseEngine/main.go", + "language": "GO", + "clientMethod": { + "shortName": "PauseEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient.PauseEngine", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.PauseEngineRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Engine", + "client": { + "shortName": "EngineClient", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient" + }, + "method": { + "shortName": "PauseEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.PauseEngine", + "service": { + "shortName": "EngineService", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_EngineService_ResumeEngine_sync", + "title": "discoveryengine ResumeEngine Sample", + "description": "ResumeEngine resumes the training of an existing engine. Only applicable if\n[SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is\n[SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION].", + "file": "EngineClient/ResumeEngine/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ResumeEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient.ResumeEngine", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.ResumeEngineRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.Engine", + "client": { + "shortName": "EngineClient", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient" + }, + "method": { + "shortName": "ResumeEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.ResumeEngine", + "service": { + "shortName": "EngineService", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_EngineService_TuneEngine_sync", + "title": "discoveryengine TuneEngine Sample", + "description": "TuneEngine tunes an existing engine. Only applicable if\n[SolutionType][google.cloud.discoveryengine.v1beta.SolutionType] is\n[SOLUTION_TYPE_RECOMMENDATION][google.cloud.discoveryengine.v1beta.SolutionType.SOLUTION_TYPE_RECOMMENDATION].", + "file": "EngineClient/TuneEngine/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TuneEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient.TuneEngine", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.TuneEngineRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "TuneEngineOperation", + "client": { + "shortName": "EngineClient", + "fullName": "google.cloud.discoveryengine.v1beta.EngineClient" + }, + "method": { + "shortName": "TuneEngine", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService.TuneEngine", + "service": { + "shortName": "EngineService", + "fullName": "google.cloud.discoveryengine.v1beta.EngineService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_EngineService_UpdateEngine_sync", + "title": "discoveryengine UpdateEngine Sample", + "description": "UpdateEngine updates an [Engine][google.cloud.discoveryengine.v1beta.Engine]", + "file": "EngineClient/UpdateEngine/main.go", "language": "GO", "clientMethod": { "shortName": "UpdateEngine", @@ -1665,6 +2124,282 @@ } ] }, + { + "regionTag": "discoveryengine_v1beta_generated_GroundedGenerationService_CheckGrounding_sync", + "title": "discoveryengine CheckGrounding Sample", + "description": "CheckGrounding performs a grounding check.", + "file": "GroundedGenerationClient/CheckGrounding/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CheckGrounding", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient.CheckGrounding", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.CheckGroundingRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.CheckGroundingResponse", + "client": { + "shortName": "GroundedGenerationClient", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient" + }, + "method": { + "shortName": "CheckGrounding", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding", + "service": { + "shortName": "GroundedGenerationService", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_GroundedGenerationService_GetOperation_sync", + "title": "discoveryengine GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "GroundedGenerationClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "GroundedGenerationClient", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_GroundedGenerationService_ListOperations_sync", + "title": "discoveryengine ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "GroundedGenerationClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "GroundedGenerationClient", + "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_RankService_GetOperation_sync", + "title": "discoveryengine GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "RankClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "RankClient", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_RankService_ListOperations_sync", + "title": "discoveryengine ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "RankClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "RankClient", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "discoveryengine_v1beta_generated_RankService_Rank_sync", + "title": "discoveryengine Rank Sample", + "description": "Rank ranks a list of text records based on the given input query.", + "file": "RankClient/Rank/main.go", + "language": "GO", + "clientMethod": { + "shortName": "Rank", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient.Rank", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "discoveryenginepb.RankRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*discoveryenginepb.RankResponse", + "client": { + "shortName": "RankClient", + "fullName": "google.cloud.discoveryengine.v1beta.RankClient" + }, + "method": { + "shortName": "Rank", + "fullName": "google.cloud.discoveryengine.v1beta.RankService.Rank", + "service": { + "shortName": "RankService", + "fullName": "google.cloud.discoveryengine.v1beta.RankService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "discoveryengine_v1beta_generated_RecommendationService_GetOperation_sync", "title": "discoveryengine GetOperation Sample", diff --git a/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json b/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json index 81064ee8e5d..8bcd43e46d4 100644 --- a/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json +++ b/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json @@ -14,7 +14,7 @@ { "regionTag": "routes_v2_generated_Routes_ComputeRoutes_sync", "title": "routes ComputeRoutes Sample", - "description": "ComputeRoutes returns the primary route along with optional alternate routes, given a set\nof terminal and intermediate waypoints.\n\n**NOTE: ** This method requires that you specify a response field mask in\nthe input. You can provide the response field mask by using URL parameter\n`$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask`\n(see the [available URL parameters and\nheaders](https: //cloud.google.com/apis/docs/system-parameters). The value\nis a comma separated list of field paths. See detailed documentation about\n[how to construct the field\npaths](https: //github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto).\n\nFor example, in this method: \n\n* Field mask of all available fields (for manual inspection): \n`X-Goog-FieldMask: *`\n* Field mask of Route-level duration, distance, and polyline (an example\nproduction setup): \n`X-Goog-FieldMask: \nroutes.duration,routes.distanceMeters,routes.polyline.encodedPolyline`\n\nGoogle discourage the use of the wildcard (`*`) response field mask, or\nspecifying the field mask at the top level (`routes`), because: \n\n* Selecting only the fields that you need helps our server save computation\ncycles, allowing us to return the result to you with a lower latency.\n* Selecting only the fields that you need\nin your production job ensures stable latency performance. We might add\nmore response fields in the future, and those new fields might require\nextra computation time. If you select all fields, or if you select all\nfields at the top level, then you might experience performance degradation\nbecause any new field we add will be automatically included in the\nresponse.\n* Selecting only the fields that you need results in a smaller response\nsize, and thus higher network throughput.", + "description": "ComputeRoutes returns the primary route along with optional alternate routes, given a set\nof terminal and intermediate waypoints.\n\n**NOTE: ** This method requires that you specify a response field mask in\nthe input. You can provide the response field mask by using URL parameter\n`$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask`\n(see the [available URL parameters and\nheaders](https: //cloud.google.com/apis/docs/system-parameters)). The value\nis a comma separated list of field paths. See detailed documentation about\n[how to construct the field\npaths](https: //github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto).\n\nFor example, in this method: \n\n* Field mask of all available fields (for manual inspection): \n`X-Goog-FieldMask: *`\n* Field mask of Route-level duration, distance, and polyline (an example\nproduction setup): \n`X-Goog-FieldMask: \nroutes.duration,routes.distanceMeters,routes.polyline.encodedPolyline`\n\nGoogle discourage the use of the wildcard (`*`) response field mask, or\nspecifying the field mask at the top level (`routes`), because: \n\n* Selecting only the fields that you need helps our server save computation\ncycles, allowing us to return the result to you with a lower latency.\n* Selecting only the fields that you need\nin your production job ensures stable latency performance. We might add\nmore response fields in the future, and those new fields might require\nextra computation time. If you select all fields, or if you select all\nfields at the top level, then you might experience performance degradation\nbecause any new field we add will be automatically included in the\nresponse.\n* Selecting only the fields that you need results in a smaller response\nsize, and thus higher network throughput.", "file": "RoutesClient/ComputeRoutes/main.go", "language": "GO", "clientMethod": { diff --git a/internal/generated/snippets/shopping/merchant/quota/apiv1beta/Client/ListQuotaGroups/main.go b/internal/generated/snippets/shopping/merchant/quota/apiv1beta/Client/ListQuotaGroups/main.go new file mode 100644 index 00000000000..eec6ed52eec --- /dev/null +++ b/internal/generated/snippets/shopping/merchant/quota/apiv1beta/Client/ListQuotaGroups/main.go @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START merchantapi_v1beta_generated_QuotaService_ListQuotaGroups_sync] + +package main + +import ( + "context" + + quota "cloud.google.com/go/shopping/merchant/quota/apiv1beta" + quotapb "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := quota.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := "apb.ListQuotaGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb#ListQuotaGroupsRequest. + } + it := c.ListQuotaGroups(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*quotapb.ListQuotaGroupsResponse) + } +} + +// [END merchantapi_v1beta_generated_QuotaService_ListQuotaGroups_sync] diff --git a/internal/generated/snippets/shopping/merchant/quota/apiv1beta/snippet_metadata.google.shopping.merchant.quota.v1beta.json b/internal/generated/snippets/shopping/merchant/quota/apiv1beta/snippet_metadata.google.shopping.merchant.quota.v1beta.json new file mode 100644 index 00000000000..1d79e0397be --- /dev/null +++ b/internal/generated/snippets/shopping/merchant/quota/apiv1beta/snippet_metadata.google.shopping.merchant.quota.v1beta.json @@ -0,0 +1,61 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/shopping/merchant/quota/apiv1beta", + "version": "0.4.0", + "language": "GO", + "apis": [ + { + "id": "google.shopping.merchant.quota.v1beta", + "version": "v1beta" + } + ] + }, + "snippets": [ + { + "regionTag": "merchantapi_v1beta_generated_QuotaService_ListQuotaGroups_sync", + "title": "merchantapi ListQuotaGroups Sample", + "description": "ListQuotaGroups lists the daily call quota and usage per group for your Merchant\nCenter account.", + "file": "Client/ListQuotaGroups/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListQuotaGroups", + "fullName": "google.shopping.merchant.quota.v1beta.Client.ListQuotaGroups", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "quotapb.ListQuotaGroupsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "QuotaGroupIterator", + "client": { + "shortName": "Client", + "fullName": "google.shopping.merchant.quota.v1beta.Client" + }, + "method": { + "shortName": "ListQuotaGroups", + "fullName": "google.shopping.merchant.quota.v1beta.QuotaService.ListQuotaGroups", + "service": { + "shortName": "QuotaService", + "fullName": "google.shopping.merchant.quota.v1beta.QuotaService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/maps/routing/apiv2/routes_client.go b/maps/routing/apiv2/routes_client.go index 8d7fadb1683..844c5facaa8 100755 --- a/maps/routing/apiv2/routes_client.go +++ b/maps/routing/apiv2/routes_client.go @@ -124,7 +124,7 @@ func (c *RoutesClient) Connection() *grpc.ClientConn { // the input. You can provide the response field mask by using URL parameter // $fields or fields, or by using an HTTP/gRPC header X-Goog-FieldMask // (see the available URL parameters and -// headers (at https://cloud.google.com/apis/docs/system-parameters). The value +// headers (at https://cloud.google.com/apis/docs/system-parameters)). The value // is a comma separated list of field paths. See detailed documentation about // how to construct the field // paths (at https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). @@ -165,9 +165,9 @@ func (c *RoutesClient) ComputeRoutes(ctx context.Context, req *routingpb.Compute // the input. You can provide the response field mask by using the URL // parameter $fields or fields, or by using the HTTP/gRPC header // X-Goog-FieldMask (see the available URL parameters and -// headers (at https://cloud.google.com/apis/docs/system-parameters). The value -// is a comma separated list of field paths. See this detailed documentation -// about how to construct the field +// headers (at https://cloud.google.com/apis/docs/system-parameters)). +// The value is a comma separated list of field paths. See this detailed +// documentation about how to construct the field // paths (at https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). // // For example, in this method: @@ -378,7 +378,7 @@ func (c *routesGRPCClient) ComputeRouteMatrix(ctx context.Context, req *routingp // the input. You can provide the response field mask by using URL parameter // $fields or fields, or by using an HTTP/gRPC header X-Goog-FieldMask // (see the available URL parameters and -// headers (at https://cloud.google.com/apis/docs/system-parameters). The value +// headers (at https://cloud.google.com/apis/docs/system-parameters)). The value // is a comma separated list of field paths. See detailed documentation about // how to construct the field // paths (at https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). @@ -477,9 +477,9 @@ func (c *routesRESTClient) ComputeRoutes(ctx context.Context, req *routingpb.Com // the input. You can provide the response field mask by using the URL // parameter $fields or fields, or by using the HTTP/gRPC header // X-Goog-FieldMask (see the available URL parameters and -// headers (at https://cloud.google.com/apis/docs/system-parameters). The value -// is a comma separated list of field paths. See this detailed documentation -// about how to construct the field +// headers (at https://cloud.google.com/apis/docs/system-parameters)). +// The value is a comma separated list of field paths. See this detailed +// documentation about how to construct the field // paths (at https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). // // For example, in this method: diff --git a/maps/routing/apiv2/routingpb/fallback_info.pb.go b/maps/routing/apiv2/routingpb/fallback_info.pb.go index 3fbe95abcb9..8cd661c6a0d 100755 --- a/maps/routing/apiv2/routingpb/fallback_info.pb.go +++ b/maps/routing/apiv2/routingpb/fallback_info.pb.go @@ -98,11 +98,12 @@ type FallbackRoutingMode int32 const ( // Not used. FallbackRoutingMode_FALLBACK_ROUTING_MODE_UNSPECIFIED FallbackRoutingMode = 0 - // Indicates the `TRAFFIC_UNAWARE` [google.maps.routing.v2.RoutingPreference] - // was used to compute the response. + // Indicates the `TRAFFIC_UNAWARE` + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] was used to + // compute the response. FallbackRoutingMode_FALLBACK_TRAFFIC_UNAWARE FallbackRoutingMode = 1 // Indicates the `TRAFFIC_AWARE` - // [RoutingPreference][google.maps.routing.v2.RoutingPreference] was used to + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] was used to // compute the response. FallbackRoutingMode_FALLBACK_TRAFFIC_AWARE FallbackRoutingMode = 2 ) diff --git a/maps/routing/apiv2/routingpb/geocoding_results.pb.go b/maps/routing/apiv2/routingpb/geocoding_results.pb.go index 7d48311fc75..a1221fcd992 100755 --- a/maps/routing/apiv2/routingpb/geocoding_results.pb.go +++ b/maps/routing/apiv2/routingpb/geocoding_results.pb.go @@ -36,7 +36,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Contains [GeocodedWaypoints][google.maps.routing.v2.GeocodedWaypoint] for +// Contains [`GeocodedWaypoints`][google.maps.routing.v2.GeocodedWaypoint] for // origin, destination and intermediate waypoints. Only populated for address // waypoints. type GeocodingResults struct { @@ -122,8 +122,8 @@ type GeocodedWaypoint struct { // waypoint. IntermediateWaypointRequestIndex *int32 `protobuf:"varint,2,opt,name=intermediate_waypoint_request_index,json=intermediateWaypointRequestIndex,proto3,oneof" json:"intermediate_waypoint_request_index,omitempty"` // The type(s) of the result, in the form of zero or more type tags. - // Supported types: - // https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types + // Supported types: [Address types and address component + // types](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types). Type []string `protobuf:"bytes,3,rep,name=type,proto3" json:"type,omitempty"` // Indicates that the geocoder did not return an exact match for the original // request, though it was able to match part of the requested address. You may diff --git a/maps/routing/apiv2/routingpb/location.pb.go b/maps/routing/apiv2/routingpb/location.pb.go index d3d499cc7c4..4a80d83582a 100755 --- a/maps/routing/apiv2/routingpb/location.pb.go +++ b/maps/routing/apiv2/routingpb/location.pb.go @@ -50,7 +50,7 @@ type Location struct { // values can be from 0 to 360, where 0 specifies a heading of due North, 90 // specifies a heading of due East, and so on. You can use this field only for // `DRIVE` and `TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. Heading *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=heading,proto3" json:"heading,omitempty"` } diff --git a/maps/routing/apiv2/routingpb/maneuver.pb.go b/maps/routing/apiv2/routingpb/maneuver.pb.go index 9ca705e1a05..dec1dce5392 100755 --- a/maps/routing/apiv2/routingpb/maneuver.pb.go +++ b/maps/routing/apiv2/routingpb/maneuver.pb.go @@ -36,7 +36,7 @@ const ( ) // A set of values that specify the navigation action to take for the current -// step (e.g., turn left, merge, straight, etc.). +// step (for example, turn left, merge, or straight). type Maneuver int32 const ( diff --git a/maps/routing/apiv2/routingpb/navigation_instruction.pb.go b/maps/routing/apiv2/routingpb/navigation_instruction.pb.go index 9d82aa537ee..acc3c4c1c48 100755 --- a/maps/routing/apiv2/routingpb/navigation_instruction.pb.go +++ b/maps/routing/apiv2/routingpb/navigation_instruction.pb.go @@ -36,14 +36,15 @@ const ( ) // Encapsulates navigation instructions for a -// [RouteLegStep][google.maps.routing.v2.RouteLegStep] +// [`RouteLegStep`][google.maps.routing.v2.RouteLegStep]. type NavigationInstruction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Encapsulates the navigation instructions for the current step (e.g., turn - // left, merge, straight, etc.). This field determines which icon to display. + // Encapsulates the navigation instructions for the current step (for example, + // turn left, merge, or straight). This field determines which icon to + // display. Maneuver Maneuver `protobuf:"varint,1,opt,name=maneuver,proto3,enum=google.maps.routing.v2.Maneuver" json:"maneuver,omitempty"` // Instructions for navigating this step. Instructions string `protobuf:"bytes,2,opt,name=instructions,proto3" json:"instructions,omitempty"` diff --git a/maps/routing/apiv2/routingpb/polyline.pb.go b/maps/routing/apiv2/routingpb/polyline.pb.go index 133aa766812..13b2fcdd2b0 100755 --- a/maps/routing/apiv2/routingpb/polyline.pb.go +++ b/maps/routing/apiv2/routingpb/polyline.pb.go @@ -101,7 +101,7 @@ const ( // No polyline type preference specified. Defaults to `ENCODED_POLYLINE`. PolylineEncoding_POLYLINE_ENCODING_UNSPECIFIED PolylineEncoding = 0 // Specifies a polyline encoded using the [polyline encoding - // algorithm](https://developers.google.com/maps/documentation/utilities/polylinealgorithm). + // algorithm](/maps/documentation/utilities/polylinealgorithm). PolylineEncoding_ENCODED_POLYLINE PolylineEncoding = 1 // Specifies a polyline using the [GeoJSON LineString // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) @@ -229,7 +229,7 @@ type Polyline_EncodedPolyline struct { type Polyline_GeoJsonLinestring struct { // Specifies a polyline using the [GeoJSON LineString - // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4). GeoJsonLinestring *structpb.Struct `protobuf:"bytes,2,opt,name=geo_json_linestring,json=geoJsonLinestring,proto3,oneof"` } diff --git a/maps/routing/apiv2/routingpb/route.pb.go b/maps/routing/apiv2/routingpb/route.pb.go index 064f57ef366..4953668f3ad 100755 --- a/maps/routing/apiv2/routingpb/route.pb.go +++ b/maps/routing/apiv2/routingpb/route.pb.go @@ -52,8 +52,8 @@ type Route struct { RouteLabels []RouteLabel `protobuf:"varint,13,rep,packed,name=route_labels,json=routeLabels,proto3,enum=google.maps.routing.v2.RouteLabel" json:"route_labels,omitempty"` // A collection of legs (path segments between waypoints) that make up the // route. Each leg corresponds to the trip between two non-`via` - // [Waypoints][google.maps.routing.v2.Waypoint]. For example, a route with no - // intermediate waypoints has only one leg. A route that includes one + // [`Waypoints`][google.maps.routing.v2.Waypoint]. For example, a route with + // no intermediate waypoints has only one leg. A route that includes one // non-`via` intermediate waypoint has two legs. A route that includes one // `via` intermediate waypoint has one leg. The order of the legs matches the // order of waypoints from `origin` to `intermediates` to `destination`. @@ -81,7 +81,7 @@ type Route struct { // Additional information about the route. TravelAdvisory *RouteTravelAdvisory `protobuf:"bytes,9,opt,name=travel_advisory,json=travelAdvisory,proto3" json:"travel_advisory,omitempty"` // If you set - // [optimize_waypoint_order][google.maps.routing.v2.ComputeRoutesRequest.optimize_waypoint_order] + // [`optimize_waypoint_order`][google.maps.routing.v2.ComputeRoutesRequest.optimize_waypoint_order] // to true, this field contains the optimized ordering of intermediate // waypoints. Otherwise, this field is empty. // For example, if you give an input of Origin: LA; Intermediate waypoints: @@ -236,7 +236,7 @@ type RouteTravelAdvisory struct { // Contains information about tolls on the route. This field is only populated // if tolls are expected on the route. If this field is set, but the - // estimatedPrice subfield is not populated, then the route contains tolls, + // `estimatedPrice` subfield is not populated, then the route contains tolls, // but the estimated price is unknown. If this field is not set, then there // are no tolls expected on the route. TollInfo *TollInfo `protobuf:"bytes,2,opt,name=toll_info,json=tollInfo,proto3" json:"toll_info,omitempty"` @@ -595,7 +595,7 @@ func (x *RouteLeg) GetStepsOverview() *RouteLeg_StepsOverview { return nil } -// Contains a segment of a [RouteLeg][google.maps.routing.v2.RouteLeg]. A +// Contains a segment of a [`RouteLeg`][google.maps.routing.v2.RouteLeg]. A // step corresponds to a single navigation instruction. Route legs are made up // of steps. type RouteLegStep struct { @@ -854,10 +854,10 @@ type Route_RouteLocalizedValues struct { Distance *localized_text.LocalizedText `protobuf:"bytes,1,opt,name=distance,proto3" json:"distance,omitempty"` // Duration taking traffic conditions into consideration, represented in // text form. Note: If you did not request traffic information, this value - // will be the same value as static_duration. + // will be the same value as `static_duration`. Duration *localized_text.LocalizedText `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"` - // Duration without taking traffic conditions into - // consideration, represented in text form. + // Duration without taking traffic conditions into consideration, + // represented in text form. StaticDuration *localized_text.LocalizedText `protobuf:"bytes,3,opt,name=static_duration,json=staticDuration,proto3" json:"static_duration,omitempty"` // Transit fare represented in text form. TransitFare *localized_text.LocalizedText `protobuf:"bytes,4,opt,name=transit_fare,json=transitFare,proto3" json:"transit_fare,omitempty"` @@ -1185,7 +1185,7 @@ func (x *RouteLegStep_RouteLegStepLocalizedValues) GetStaticDuration() *localize return nil } -// Details about the transit stops for the `RouteLegStep` +// Details about the transit stops for the `RouteLegStep`. type RouteLegStepTransitDetails_TransitStopDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1261,7 +1261,7 @@ func (x *RouteLegStepTransitDetails_TransitStopDetails) GetDepartureTime() *time return nil } -// Localized descriptions of values for RouteTransitDetails. +// Localized descriptions of values for `RouteTransitDetails`. type RouteLegStepTransitDetails_TransitDetailsLocalizedValues struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/maps/routing/apiv2/routingpb/route_label.pb.go b/maps/routing/apiv2/routingpb/route_label.pb.go index b6d1fd9bead..7b0626309da 100755 --- a/maps/routing/apiv2/routingpb/route_label.pb.go +++ b/maps/routing/apiv2/routingpb/route_label.pb.go @@ -35,7 +35,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Labels for the [Route][google.maps.routing.v2.Route] that are useful to +// Labels for the [`Route`][google.maps.routing.v2.Route] that are useful to // identify specific properties of the route to compare against others. type RouteLabel int32 @@ -46,7 +46,7 @@ const ( RouteLabel_DEFAULT_ROUTE RouteLabel = 1 // An alternative to the default "best" route. Routes like this will be // returned when - // [compute_alternative_routes][google.maps.routing.v2.ComputeRoutesRequest.compute_alternative_routes] + // [`compute_alternative_routes`][google.maps.routing.v2.ComputeRoutesRequest.compute_alternative_routes] // is specified. RouteLabel_DEFAULT_ROUTE_ALTERNATE RouteLabel = 2 // Fuel efficient route. Routes labeled with this value are determined to be diff --git a/maps/routing/apiv2/routingpb/route_modifiers.pb.go b/maps/routing/apiv2/routingpb/route_modifiers.pb.go index 8a66dad3429..b1435535818 100755 --- a/maps/routing/apiv2/routingpb/route_modifiers.pb.go +++ b/maps/routing/apiv2/routingpb/route_modifiers.pb.go @@ -44,19 +44,19 @@ type RouteModifiers struct { // When set to true, avoids toll roads where reasonable, giving preference to // routes not containing toll roads. Applies only to the `DRIVE` and - // `TWO_WHEELER` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. AvoidTolls bool `protobuf:"varint,1,opt,name=avoid_tolls,json=avoidTolls,proto3" json:"avoid_tolls,omitempty"` // When set to true, avoids highways where reasonable, giving preference to // routes not containing highways. Applies only to the `DRIVE` and - // `TWO_WHEELER` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `TWO_WHEELER` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. AvoidHighways bool `protobuf:"varint,2,opt,name=avoid_highways,json=avoidHighways,proto3" json:"avoid_highways,omitempty"` // When set to true, avoids ferries where reasonable, giving preference to // routes not containing ferries. Applies only to the `DRIVE` and`TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. AvoidFerries bool `protobuf:"varint,3,opt,name=avoid_ferries,json=avoidFerries,proto3" json:"avoid_ferries,omitempty"` // When set to true, avoids navigating indoors where reasonable, giving // preference to routes not containing indoor navigation. Applies only to the - // `WALK` [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // `WALK` [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. AvoidIndoor bool `protobuf:"varint,4,opt,name=avoid_indoor,json=avoidIndoor,proto3" json:"avoid_indoor,omitempty"` // Specifies the vehicle information. VehicleInfo *VehicleInfo `protobuf:"bytes,5,opt,name=vehicle_info,json=vehicleInfo,proto3" json:"vehicle_info,omitempty"` @@ -65,7 +65,7 @@ type RouteModifiers struct { // toll passes are not provided, the API treats the toll pass as unknown and // tries to return the cash price. // Applies only to the `DRIVE` and `TWO_WHEELER` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. TollPasses []TollPass `protobuf:"varint,6,rep,packed,name=toll_passes,json=tollPasses,proto3,enum=google.maps.routing.v2.TollPass" json:"toll_passes,omitempty"` } diff --git a/maps/routing/apiv2/routingpb/routes_service.pb.go b/maps/routing/apiv2/routingpb/routes_service.pb.go index 762e33236f0..5f11b755321 100755 --- a/maps/routing/apiv2/routingpb/routes_service.pb.go +++ b/maps/routing/apiv2/routingpb/routes_service.pb.go @@ -161,8 +161,7 @@ const ( ComputeRoutesRequest_FUEL_CONSUMPTION ComputeRoutesRequest_ExtraComputation = 2 // Traffic aware polylines for the route(s). ComputeRoutesRequest_TRAFFIC_ON_POLYLINE ComputeRoutesRequest_ExtraComputation = 3 - // [Navigation - // Instructions][google.maps.routing.v2.NavigationInstructions.instructions] + // [`NavigationInstructions`](google.maps.routing.v2.NavigationInstructions.instructions) // presented as a formatted HTML text string. This content // is meant to be read as-is. This content is for display only. // Do not programmatically parse it. @@ -294,14 +293,16 @@ type ComputeRoutesRequest struct { // Optional. The departure time. If you don't set this value, then this value // defaults to the time that you made the request. // NOTE: You can only specify a `departure_time` in the past when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to + // `TRANSIT`. Transit trips are available for up to 7 days in the past or 100 + // days in the future. DepartureTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=departure_time,json=departureTime,proto3" json:"departure_time,omitempty"` // Optional. The arrival time. // NOTE: Can only be set when // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. You can specify either departure_time or arrival_time, but not - // both. + // `TRANSIT`. You can specify either `departure_time` or `arrival_time`, but + // not both. Transit trips are available for up to 7 days in the past or 100 + // days in the future. ArrivalTime *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=arrival_time,json=arrivalTime,proto3" json:"arrival_time,omitempty"` // Optional. Specifies whether to calculate alternate routes in addition to // the route. No alternative routes are returned for requests that have @@ -311,21 +312,22 @@ type ComputeRoutesRequest struct { // calculated. RouteModifiers *RouteModifiers `protobuf:"bytes,9,opt,name=route_modifiers,json=routeModifiers,proto3" json:"route_modifiers,omitempty"` // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more - // information, see - // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See - // [Language Support](https://developers.google.com/maps/faq#languagesupport) + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) // for the list of supported languages. When you don't provide this value, the // display language is inferred from the location of the route request. LanguageCode string `protobuf:"bytes,10,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` // Optional. The region code, specified as a ccTLD ("top-level domain") - // two-character value. For more information see - // https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains + // two-character value. For more information see [Country code top-level + // domains](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains). RegionCode string `protobuf:"bytes,16,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` // Optional. Specifies the units of measure for the display fields. These // fields include the `instruction` field in - // [NavigationInstruction][google.maps.routing.v2.NavigationInstruction]. The - // units of measure used for the route, leg, step distance, and duration are - // not affected by this value. If you don't provide this value, then the + // [`NavigationInstruction`][google.maps.routing.v2.NavigationInstruction]. + // The units of measure used for the route, leg, step distance, and duration + // are not affected by this value. If you don't provide this value, then the // display units are inferred from the location of the first origin. Units Units `protobuf:"varint,11,opt,name=units,proto3,enum=google.maps.routing.v2.Units" json:"units,omitempty"` // Optional. If set to true, the service attempts to minimize the overall cost @@ -352,19 +354,20 @@ type ComputeRoutesRequest struct { ExtraComputations []ComputeRoutesRequest_ExtraComputation `protobuf:"varint,15,rep,packed,name=extra_computations,json=extraComputations,proto3,enum=google.maps.routing.v2.ComputeRoutesRequest_ExtraComputation" json:"extra_computations,omitempty"` // Optional. Specifies the assumptions to use when calculating time in // traffic. This setting affects the value returned in the duration field in - // the [Route][google.maps.routing.v2.Route] and - // [RouteLeg][google.maps.routing.v2.RouteLeg] which contains the predicted + // the + // [`Route`][google.maps.routing.v2.Route] and + // [`RouteLeg`][google.maps.routing.v2.RouteLeg] which contains the predicted // time in traffic based on historical averages. // `TrafficModel` is only available for requests that have set - // [RoutingPreference][google.maps.routing.v2.RoutingPreference] to + // [`RoutingPreference`][google.maps.routing.v2.RoutingPreference] to // `TRAFFIC_AWARE_OPTIMAL` and - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] to `DRIVE`. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] to `DRIVE`. // Defaults to `BEST_GUESS` if traffic is requested and `TrafficModel` is not // specified. TrafficModel TrafficModel `protobuf:"varint,18,opt,name=traffic_model,json=trafficModel,proto3,enum=google.maps.routing.v2.TrafficModel" json:"traffic_model,omitempty"` // Optional. Specifies preferences that influence the route returned for // `TRANSIT` routes. NOTE: You can only specify a `transit_preferences` when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to // `TRANSIT`. TransitPreferences *TransitPreferences `protobuf:"bytes,20,opt,name=transit_preferences,json=transitPreferences,proto3" json:"transit_preferences,omitempty"` } @@ -541,7 +544,7 @@ type ComputeRoutesResponse struct { unknownFields protoimpl.UnknownFields // Contains an array of computed routes (up to three) when you specify - // compute_alternatives_routes, and contains just one route when you don't. + // `compute_alternatives_routes`, and contains just one route when you don't. // When this array contains multiple entries, the first one is the most // recommended route. If the array is empty, then it means no route could be // found. @@ -618,12 +621,14 @@ type ComputeRouteMatrixRequest struct { // matrix. Several size restrictions apply to the cardinality of origins and // destinations: // - // * The number of elements (origins × destinations) must be no greater than - // 625 in any case. - // * The number of elements (origins × destinations) must be no greater than - // 100 if routing_preference is set to `TRAFFIC_AWARE_OPTIMAL`. - // * The number of waypoints (origins + destinations) specified as `place_id` - // must be no greater than 50. + // * The sum of the number of origins + the number of destinations specified + // as either `place_id` or `address` must be no greater than 50. + // * The product of number of origins × number of destinations must be no + // greater than 625 in any case. + // * The product of the number of origins × number of destinations must be no + // greater than 100 if routing_preference is set to `TRAFFIC_AWARE_OPTIMAL`. + // * The product of the number of origins × number of destinations must be no + // greater than 100 if travel_mode is set to `TRANSIT`. Origins []*RouteMatrixOrigin `protobuf:"bytes,1,rep,name=origins,proto3" json:"origins,omitempty"` // Required. Array of destinations, which determines the columns of the // response matrix. @@ -639,26 +644,29 @@ type ComputeRouteMatrixRequest struct { // Optional. The departure time. If you don't set this value, then this value // defaults to the time that you made the request. // NOTE: You can only specify a `departure_time` in the past when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to // `TRANSIT`. DepartureTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=departure_time,json=departureTime,proto3" json:"departure_time,omitempty"` // Optional. The arrival time. // NOTE: Can only be set when - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] is set to - // `TRANSIT`. You can specify either departure_time or arrival_time, but not - // both. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] is set to + // `TRANSIT`. You can specify either `departure_time` or `arrival_time`, but + // not both. ArrivalTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=arrival_time,json=arrivalTime,proto3" json:"arrival_time,omitempty"` // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more - // information, see - // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. See - // [Language Support](https://developers.google.com/maps/faq#languagesupport) + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) // for the list of supported languages. When you don't provide this value, the // display language is inferred from the location of the first origin. LanguageCode string `protobuf:"bytes,6,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` // Optional. The region code, specified as a ccTLD ("top-level domain") - // two-character value. For more information see - // https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains + // two-character value. For more information see [Country code top-level + // domains](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains). RegionCode string `protobuf:"bytes,9,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"` + // Optional. Specifies the units of measure for the display fields. + Units Units `protobuf:"varint,7,opt,name=units,proto3,enum=google.maps.routing.v2.Units" json:"units,omitempty"` // Optional. A list of extra computations which may be used to complete the // request. Note: These extra computations may return extra fields on the // response. These extra fields must also be specified in the field mask to be @@ -769,6 +777,13 @@ func (x *ComputeRouteMatrixRequest) GetRegionCode() string { return "" } +func (x *ComputeRouteMatrixRequest) GetUnits() Units { + if x != nil { + return x.Units + } + return Units_UNITS_UNSPECIFIED +} + func (x *ComputeRouteMatrixRequest) GetExtraComputations() []ComputeRouteMatrixRequest_ExtraComputation { if x != nil { return x.ExtraComputations @@ -1292,7 +1307,7 @@ var file_google_maps_routing_v2_routes_service_proto_rawDesc = []byte{ 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x10, 0x67, 0x65, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x22, 0xb4, 0x07, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, + 0x74, 0x73, 0x22, 0xee, 0x07, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, @@ -1328,150 +1343,154 @@ var file_google_maps_routing_v2_routes_service_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x76, 0x0a, - 0x12, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, - 0x72, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x11, 0x65, 0x78, 0x74, 0x72, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, + 0x01, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, + 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x60, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, - 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x72, 0x61, - 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x45, - 0x58, 0x54, 0x52, 0x41, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x54, 0x4f, 0x4c, 0x4c, 0x53, 0x10, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, - 0x41, 0x0a, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x79, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, + 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, + 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x43, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, + 0x60, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x22, 0x40, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x72, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, 0x54, 0x52, 0x41, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x4c, 0x4c, + 0x53, 0x10, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x08, 0x77, 0x61, 0x79, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x16, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, - 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x61, - 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x77, 0x61, 0x79, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xc8, 0x07, 0x0a, 0x12, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, + 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, - 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0f, 0x74, 0x72, 0x61, - 0x76, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, - 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, - 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, - 0x49, 0x0a, 0x0d, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, - 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x66, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x65, 0x0a, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, - 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, + 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x16, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x08, + 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, + 0xc8, 0x07, 0x0a, 0x12, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0b, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x10, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x09, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x42, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x61, 0x64, + 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x76, 0x65, + 0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, + 0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x65, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x85, 0x02, 0x0a, 0x0f, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x54, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, + 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x46, + 0x61, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2a, 0x74, 0x0a, 0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x1a, 0x85, 0x02, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, - 0x65, 0x78, 0x74, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x46, 0x61, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x2a, 0x74, 0x0a, 0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2e, 0x0a, 0x2a, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x52, 0x49, 0x58, 0x5f, - 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, - 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, - 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x32, 0xe4, 0x02, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, - 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, - 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, - 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x32, 0x3a, 0x63, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x12, 0x43, 0x6f, - 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, - 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x64, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2f, 0x76, 0x32, 0x3a, 0x63, - 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x30, 0x01, 0x1a, 0x18, 0xca, 0x41, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0xc7, 0x01, - 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, - 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x42, 0x12, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0xf8, 0x01, - 0x01, 0xa2, 0x02, 0x05, 0x47, 0x4d, 0x52, 0x56, 0x32, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x4d, 0x61, 0x70, 0x73, - 0x5c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x4d, 0x61, 0x70, 0x73, 0x3a, 0x3a, 0x52, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x2a, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x52, 0x49, 0x58, 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, + 0x32, 0xe4, 0x02, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0d, + 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x76, 0x32, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, + 0x69, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x2f, 0x76, 0x32, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x30, 0x01, 0x1a, 0x18, 0xca, + 0x41, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0xc7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x42, 0x12, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, + 0x70, 0x69, 0x76, 0x32, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x72, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x05, 0x47, 0x4d, + 0x52, 0x56, 0x32, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x4d, 0x61, 0x70, + 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x4d, 0x61, 0x70, 0x73, 0x5c, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x4d, 0x61, 0x70, 0x73, 0x3a, 0x3a, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, + 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1543,32 +1562,33 @@ var file_google_maps_routing_v2_routes_service_proto_depIdxs = []int32{ 13, // 21: google.maps.routing.v2.ComputeRouteMatrixRequest.routing_preference:type_name -> google.maps.routing.v2.RoutingPreference 16, // 22: google.maps.routing.v2.ComputeRouteMatrixRequest.departure_time:type_name -> google.protobuf.Timestamp 16, // 23: google.maps.routing.v2.ComputeRouteMatrixRequest.arrival_time:type_name -> google.protobuf.Timestamp - 3, // 24: google.maps.routing.v2.ComputeRouteMatrixRequest.extra_computations:type_name -> google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation - 19, // 25: google.maps.routing.v2.ComputeRouteMatrixRequest.traffic_model:type_name -> google.maps.routing.v2.TrafficModel - 20, // 26: google.maps.routing.v2.ComputeRouteMatrixRequest.transit_preferences:type_name -> google.maps.routing.v2.TransitPreferences - 11, // 27: google.maps.routing.v2.RouteMatrixOrigin.waypoint:type_name -> google.maps.routing.v2.Waypoint - 17, // 28: google.maps.routing.v2.RouteMatrixOrigin.route_modifiers:type_name -> google.maps.routing.v2.RouteModifiers - 11, // 29: google.maps.routing.v2.RouteMatrixDestination.waypoint:type_name -> google.maps.routing.v2.Waypoint - 24, // 30: google.maps.routing.v2.RouteMatrixElement.status:type_name -> google.rpc.Status - 0, // 31: google.maps.routing.v2.RouteMatrixElement.condition:type_name -> google.maps.routing.v2.RouteMatrixElementCondition - 25, // 32: google.maps.routing.v2.RouteMatrixElement.duration:type_name -> google.protobuf.Duration - 25, // 33: google.maps.routing.v2.RouteMatrixElement.static_duration:type_name -> google.protobuf.Duration - 26, // 34: google.maps.routing.v2.RouteMatrixElement.travel_advisory:type_name -> google.maps.routing.v2.RouteTravelAdvisory - 22, // 35: google.maps.routing.v2.RouteMatrixElement.fallback_info:type_name -> google.maps.routing.v2.FallbackInfo - 10, // 36: google.maps.routing.v2.RouteMatrixElement.localized_values:type_name -> google.maps.routing.v2.RouteMatrixElement.LocalizedValues - 27, // 37: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.distance:type_name -> google.type.LocalizedText - 27, // 38: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.duration:type_name -> google.type.LocalizedText - 27, // 39: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.static_duration:type_name -> google.type.LocalizedText - 27, // 40: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.transit_fare:type_name -> google.type.LocalizedText - 4, // 41: google.maps.routing.v2.Routes.ComputeRoutes:input_type -> google.maps.routing.v2.ComputeRoutesRequest - 6, // 42: google.maps.routing.v2.Routes.ComputeRouteMatrix:input_type -> google.maps.routing.v2.ComputeRouteMatrixRequest - 5, // 43: google.maps.routing.v2.Routes.ComputeRoutes:output_type -> google.maps.routing.v2.ComputeRoutesResponse - 9, // 44: google.maps.routing.v2.Routes.ComputeRouteMatrix:output_type -> google.maps.routing.v2.RouteMatrixElement - 43, // [43:45] is the sub-list for method output_type - 41, // [41:43] is the sub-list for method input_type - 41, // [41:41] is the sub-list for extension type_name - 41, // [41:41] is the sub-list for extension extendee - 0, // [0:41] is the sub-list for field type_name + 18, // 24: google.maps.routing.v2.ComputeRouteMatrixRequest.units:type_name -> google.maps.routing.v2.Units + 3, // 25: google.maps.routing.v2.ComputeRouteMatrixRequest.extra_computations:type_name -> google.maps.routing.v2.ComputeRouteMatrixRequest.ExtraComputation + 19, // 26: google.maps.routing.v2.ComputeRouteMatrixRequest.traffic_model:type_name -> google.maps.routing.v2.TrafficModel + 20, // 27: google.maps.routing.v2.ComputeRouteMatrixRequest.transit_preferences:type_name -> google.maps.routing.v2.TransitPreferences + 11, // 28: google.maps.routing.v2.RouteMatrixOrigin.waypoint:type_name -> google.maps.routing.v2.Waypoint + 17, // 29: google.maps.routing.v2.RouteMatrixOrigin.route_modifiers:type_name -> google.maps.routing.v2.RouteModifiers + 11, // 30: google.maps.routing.v2.RouteMatrixDestination.waypoint:type_name -> google.maps.routing.v2.Waypoint + 24, // 31: google.maps.routing.v2.RouteMatrixElement.status:type_name -> google.rpc.Status + 0, // 32: google.maps.routing.v2.RouteMatrixElement.condition:type_name -> google.maps.routing.v2.RouteMatrixElementCondition + 25, // 33: google.maps.routing.v2.RouteMatrixElement.duration:type_name -> google.protobuf.Duration + 25, // 34: google.maps.routing.v2.RouteMatrixElement.static_duration:type_name -> google.protobuf.Duration + 26, // 35: google.maps.routing.v2.RouteMatrixElement.travel_advisory:type_name -> google.maps.routing.v2.RouteTravelAdvisory + 22, // 36: google.maps.routing.v2.RouteMatrixElement.fallback_info:type_name -> google.maps.routing.v2.FallbackInfo + 10, // 37: google.maps.routing.v2.RouteMatrixElement.localized_values:type_name -> google.maps.routing.v2.RouteMatrixElement.LocalizedValues + 27, // 38: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.distance:type_name -> google.type.LocalizedText + 27, // 39: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.duration:type_name -> google.type.LocalizedText + 27, // 40: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.static_duration:type_name -> google.type.LocalizedText + 27, // 41: google.maps.routing.v2.RouteMatrixElement.LocalizedValues.transit_fare:type_name -> google.type.LocalizedText + 4, // 42: google.maps.routing.v2.Routes.ComputeRoutes:input_type -> google.maps.routing.v2.ComputeRoutesRequest + 6, // 43: google.maps.routing.v2.Routes.ComputeRouteMatrix:input_type -> google.maps.routing.v2.ComputeRouteMatrixRequest + 5, // 44: google.maps.routing.v2.Routes.ComputeRoutes:output_type -> google.maps.routing.v2.ComputeRoutesResponse + 9, // 45: google.maps.routing.v2.Routes.ComputeRouteMatrix:output_type -> google.maps.routing.v2.RouteMatrixElement + 44, // [44:46] is the sub-list for method output_type + 42, // [42:44] is the sub-list for method input_type + 42, // [42:42] is the sub-list for extension type_name + 42, // [42:42] is the sub-list for extension extendee + 0, // [0:42] is the sub-list for field type_name } func init() { file_google_maps_routing_v2_routes_service_proto_init() } @@ -1714,7 +1734,7 @@ type RoutesClient interface { // the input. You can provide the response field mask by using URL parameter // `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask` // (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value + // headers](https://cloud.google.com/apis/docs/system-parameters)). The value // is a comma separated list of field paths. See detailed documentation about // [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). @@ -1752,9 +1772,9 @@ type RoutesClient interface { // the input. You can provide the response field mask by using the URL // parameter `$fields` or `fields`, or by using the HTTP/gRPC header // `X-Goog-FieldMask` (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value - // is a comma separated list of field paths. See this detailed documentation - // about [how to construct the field + // headers](https://cloud.google.com/apis/docs/system-parameters)). + // The value is a comma separated list of field paths. See this detailed + // documentation about [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). // // For example, in this method: @@ -1841,7 +1861,7 @@ type RoutesServer interface { // the input. You can provide the response field mask by using URL parameter // `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask` // (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value + // headers](https://cloud.google.com/apis/docs/system-parameters)). The value // is a comma separated list of field paths. See detailed documentation about // [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). @@ -1879,9 +1899,9 @@ type RoutesServer interface { // the input. You can provide the response field mask by using the URL // parameter `$fields` or `fields`, or by using the HTTP/gRPC header // `X-Goog-FieldMask` (see the [available URL parameters and - // headers](https://cloud.google.com/apis/docs/system-parameters). The value - // is a comma separated list of field paths. See this detailed documentation - // about [how to construct the field + // headers](https://cloud.google.com/apis/docs/system-parameters)). + // The value is a comma separated list of field paths. See this detailed + // documentation about [how to construct the field // paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto). // // For example, in this method: diff --git a/maps/routing/apiv2/routingpb/routing_preference.pb.go b/maps/routing/apiv2/routingpb/routing_preference.pb.go index 3a5ea115f3c..bdd2c9cfa89 100755 --- a/maps/routing/apiv2/routingpb/routing_preference.pb.go +++ b/maps/routing/apiv2/routingpb/routing_preference.pb.go @@ -45,9 +45,11 @@ const ( // Computes routes without taking live traffic conditions into consideration. // Suitable when traffic conditions don't matter or are not applicable. // Using this value produces the lowest latency. - // Note: For [RouteTravelMode][google.maps.routing.v2.RouteTravelMode] `DRIVE` - // and `TWO_WHEELER` choice of route and duration are based on road network - // and average time-independent traffic conditions. Results for a given + // Note: For [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode] + // `DRIVE` and `TWO_WHEELER`, the route and duration chosen are based on road + // network and average time-independent traffic conditions, not current road + // conditions. Consequently, routes may include roads that are temporarily + // closed. Results for a given // request may vary over time due to changes in the road network, updated // average traffic conditions, and the distributed nature of the service. // Results may also vary between nearly-equivalent routes at any time or diff --git a/maps/routing/apiv2/routingpb/speed_reading_interval.pb.go b/maps/routing/apiv2/routingpb/speed_reading_interval.pb.go index da7557662e7..da1dbdbcf1a 100755 --- a/maps/routing/apiv2/routingpb/speed_reading_interval.pb.go +++ b/maps/routing/apiv2/routingpb/speed_reading_interval.pb.go @@ -94,8 +94,8 @@ func (SpeedReadingInterval_Speed) EnumDescriptor() ([]byte, []int) { // Traffic density indicator on a contiguous segment of a polyline or path. // Given a path with points P_0, P_1, ... , P_N (zero-based index), the -// SpeedReadingInterval defines an interval and describes its traffic using the -// following categories. +// `SpeedReadingInterval` defines an interval and describes its traffic using +// the following categories. type SpeedReadingInterval struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/maps/routing/apiv2/routingpb/toll_info.pb.go b/maps/routing/apiv2/routingpb/toll_info.pb.go index 8178104a37c..bd6b2501a0e 100755 --- a/maps/routing/apiv2/routingpb/toll_info.pb.go +++ b/maps/routing/apiv2/routingpb/toll_info.pb.go @@ -36,16 +36,16 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Encapsulates toll information on a [Route][google.maps.routing.v2.Route] or -// on a [RouteLeg][google.maps.routing.v2.RouteLeg]. +// Encapsulates toll information on a [`Route`][google.maps.routing.v2.Route] or +// on a [`RouteLeg`][google.maps.routing.v2.RouteLeg]. type TollInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The monetary amount of tolls for the corresponding - // [Route][google.maps.routing.v2.Route] or - // [RouteLeg][google.maps.routing.v2.RouteLeg]. This list contains a money + // [`Route`][google.maps.routing.v2.Route] or + // [`RouteLeg`][google.maps.routing.v2.RouteLeg]. This list contains a money // amount for each currency that is expected to be charged by the toll // stations. Typically this list will contain only one item for routes with // tolls in one currency. For international trips, this list may contain diff --git a/maps/routing/apiv2/routingpb/toll_passes.pb.go b/maps/routing/apiv2/routingpb/toll_passes.pb.go index 21e4be5280b..6188e7304e5 100755 --- a/maps/routing/apiv2/routingpb/toll_passes.pb.go +++ b/maps/routing/apiv2/routingpb/toll_passes.pb.go @@ -41,7 +41,8 @@ type TollPass int32 const ( // Not used. If this value is used, then the request fails. TollPass_TOLL_PASS_UNSPECIFIED TollPass = 0 - // Sydney toll pass. See additional details at https://www.myetoll.com.au. + // Sydney toll pass. See additional details at + // https://www.myetoll.com.au. TollPass_AU_ETOLL_TAG TollPass = 82 // Sydney toll pass. See additional details at https://www.tollpay.com.au. TollPass_AU_EWAY_TAG TollPass = 83 @@ -86,6 +87,15 @@ const ( TollPass_IN_FASTAG TollPass = 78 // India, HP state plate exemption. TollPass_IN_LOCAL_HP_PLATE_EXEMPT TollPass = 79 + // Japan + // ETC. Electronic wireless system to collect tolls. + // https://www.go-etc.jp/ + TollPass_JP_ETC TollPass = 98 + // Japan + // ETC2.0. New version of ETC with further discount and bidirectional + // communication between devices on vehicles and antennas on the road. + // https://www.go-etc.jp/etc2/index.html + TollPass_JP_ETC2 TollPass = 99 // Mexico toll pass. // https://iave.capufe.gob.mx/#/ TollPass_MX_IAVE TollPass = 90 @@ -248,6 +258,8 @@ const ( TollPass_US_WV_EZPASSWV TollPass = 62 // WV, USA. TollPass_US_WV_MEMORIAL_BRIDGE_TICKETS TollPass = 63 + // WV, USA + TollPass_US_WV_MOV_PASS TollPass = 100 // WV, USA. TollPass_US_WV_NEWELL_TOLL_BRIDGE_TICKET TollPass = 64 ) @@ -255,102 +267,105 @@ const ( // Enum value maps for TollPass. var ( TollPass_name = map[int32]string{ - 0: "TOLL_PASS_UNSPECIFIED", - 82: "AU_ETOLL_TAG", - 83: "AU_EWAY_TAG", - 2: "AU_LINKT", - 3: "AR_TELEPASE", - 81: "BR_AUTO_EXPRESO", - 7: "BR_CONECTCAR", - 8: "BR_MOVE_MAIS", - 88: "BR_PASSA_RAPIDO", - 9: "BR_SEM_PARAR", - 10: "BR_TAGGY", - 11: "BR_VELOE", - 84: "CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD", - 85: "CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD", - 18: "CA_US_BLUE_WATER_EDGE_PASS", - 19: "CA_US_CONNEXION", - 20: "CA_US_NEXUS_CARD", - 16: "ID_E_TOLL", - 78: "IN_FASTAG", - 79: "IN_LOCAL_HP_PLATE_EXEMPT", - 90: "MX_IAVE", - 91: "MX_PASE", - 93: "MX_QUICKPASS", - 89: "MX_SISTEMA_TELEPEAJE_CHIHUAHUA", - 12: "MX_TAG_IAVE", - 13: "MX_TAG_TELEVIA", - 92: "MX_TELEVIA", - 14: "MX_VIAPASS", - 21: "US_AL_FREEDOM_PASS", - 22: "US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS", - 4: "US_CA_FASTRAK", - 86: "US_CA_FASTRAK_CAV_STICKER", - 23: "US_CO_EXPRESSTOLL", - 24: "US_CO_GO_PASS", - 25: "US_DE_EZPASSDE", - 65: "US_FL_BOB_SIKES_TOLL_BRIDGE_PASS", - 66: "US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD", - 67: "US_FL_EPASS", - 68: "US_FL_GIBA_TOLL_PASS", - 69: "US_FL_LEEWAY", - 70: "US_FL_SUNPASS", - 71: "US_FL_SUNPASS_PRO", - 73: "US_IL_EZPASSIL", - 72: "US_IL_IPASS", - 26: "US_IN_EZPASSIN", - 27: "US_KS_BESTPASS_HORIZON", - 28: "US_KS_KTAG", - 29: "US_KS_NATIONALPASS", - 30: "US_KS_PREPASS_ELITEPASS", - 31: "US_KY_RIVERLINK", - 32: "US_LA_GEAUXPASS", - 33: "US_LA_TOLL_TAG", - 6: "US_MA_EZPASSMA", - 34: "US_MD_EZPASSMD", - 35: "US_ME_EZPASSME", - 36: "US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD", - 94: "US_MI_BCPASS", - 37: "US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG", - 38: "US_MI_IQ_PROX_CARD", - 95: "US_MI_IQ_TAG", - 39: "US_MI_MACKINAC_BRIDGE_MAC_PASS", - 40: "US_MI_NEXPRESS_TOLL", - 41: "US_MN_EZPASSMN", - 42: "US_NC_EZPASSNC", - 87: "US_NC_PEACH_PASS", - 43: "US_NC_QUICK_PASS", - 80: "US_NH_EZPASSNH", - 75: "US_NJ_DOWNBEACH_EXPRESS_PASS", - 74: "US_NJ_EZPASSNJ", - 76: "US_NY_EXPRESSPASS", - 77: "US_NY_EZPASSNY", - 44: "US_OH_EZPASSOH", - 45: "US_PA_EZPASSPA", - 46: "US_RI_EZPASSRI", - 47: "US_SC_PALPASS", - 97: "US_TX_AVI_TAG", - 48: "US_TX_BANCPASS", - 49: "US_TX_DEL_RIO_PASS", - 50: "US_TX_EFAST_PASS", - 51: "US_TX_EAGLE_PASS_EXPRESS_CARD", - 52: "US_TX_EPTOLL", - 53: "US_TX_EZ_CROSS", - 54: "US_TX_EZTAG", - 96: "US_TX_FUEGO_TAG", - 55: "US_TX_LAREDO_TRADE_TAG", - 56: "US_TX_PLUSPASS", - 57: "US_TX_TOLLTAG", - 58: "US_TX_TXTAG", - 59: "US_TX_XPRESS_CARD", - 60: "US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD", - 61: "US_VA_EZPASSVA", - 17: "US_WA_BREEZEBY", - 1: "US_WA_GOOD_TO_GO", - 62: "US_WV_EZPASSWV", - 63: "US_WV_MEMORIAL_BRIDGE_TICKETS", - 64: "US_WV_NEWELL_TOLL_BRIDGE_TICKET", + 0: "TOLL_PASS_UNSPECIFIED", + 82: "AU_ETOLL_TAG", + 83: "AU_EWAY_TAG", + 2: "AU_LINKT", + 3: "AR_TELEPASE", + 81: "BR_AUTO_EXPRESO", + 7: "BR_CONECTCAR", + 8: "BR_MOVE_MAIS", + 88: "BR_PASSA_RAPIDO", + 9: "BR_SEM_PARAR", + 10: "BR_TAGGY", + 11: "BR_VELOE", + 84: "CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD", + 85: "CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD", + 18: "CA_US_BLUE_WATER_EDGE_PASS", + 19: "CA_US_CONNEXION", + 20: "CA_US_NEXUS_CARD", + 16: "ID_E_TOLL", + 78: "IN_FASTAG", + 79: "IN_LOCAL_HP_PLATE_EXEMPT", + 98: "JP_ETC", + 99: "JP_ETC2", + 90: "MX_IAVE", + 91: "MX_PASE", + 93: "MX_QUICKPASS", + 89: "MX_SISTEMA_TELEPEAJE_CHIHUAHUA", + 12: "MX_TAG_IAVE", + 13: "MX_TAG_TELEVIA", + 92: "MX_TELEVIA", + 14: "MX_VIAPASS", + 21: "US_AL_FREEDOM_PASS", + 22: "US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS", + 4: "US_CA_FASTRAK", + 86: "US_CA_FASTRAK_CAV_STICKER", + 23: "US_CO_EXPRESSTOLL", + 24: "US_CO_GO_PASS", + 25: "US_DE_EZPASSDE", + 65: "US_FL_BOB_SIKES_TOLL_BRIDGE_PASS", + 66: "US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD", + 67: "US_FL_EPASS", + 68: "US_FL_GIBA_TOLL_PASS", + 69: "US_FL_LEEWAY", + 70: "US_FL_SUNPASS", + 71: "US_FL_SUNPASS_PRO", + 73: "US_IL_EZPASSIL", + 72: "US_IL_IPASS", + 26: "US_IN_EZPASSIN", + 27: "US_KS_BESTPASS_HORIZON", + 28: "US_KS_KTAG", + 29: "US_KS_NATIONALPASS", + 30: "US_KS_PREPASS_ELITEPASS", + 31: "US_KY_RIVERLINK", + 32: "US_LA_GEAUXPASS", + 33: "US_LA_TOLL_TAG", + 6: "US_MA_EZPASSMA", + 34: "US_MD_EZPASSMD", + 35: "US_ME_EZPASSME", + 36: "US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD", + 94: "US_MI_BCPASS", + 37: "US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG", + 38: "US_MI_IQ_PROX_CARD", + 95: "US_MI_IQ_TAG", + 39: "US_MI_MACKINAC_BRIDGE_MAC_PASS", + 40: "US_MI_NEXPRESS_TOLL", + 41: "US_MN_EZPASSMN", + 42: "US_NC_EZPASSNC", + 87: "US_NC_PEACH_PASS", + 43: "US_NC_QUICK_PASS", + 80: "US_NH_EZPASSNH", + 75: "US_NJ_DOWNBEACH_EXPRESS_PASS", + 74: "US_NJ_EZPASSNJ", + 76: "US_NY_EXPRESSPASS", + 77: "US_NY_EZPASSNY", + 44: "US_OH_EZPASSOH", + 45: "US_PA_EZPASSPA", + 46: "US_RI_EZPASSRI", + 47: "US_SC_PALPASS", + 97: "US_TX_AVI_TAG", + 48: "US_TX_BANCPASS", + 49: "US_TX_DEL_RIO_PASS", + 50: "US_TX_EFAST_PASS", + 51: "US_TX_EAGLE_PASS_EXPRESS_CARD", + 52: "US_TX_EPTOLL", + 53: "US_TX_EZ_CROSS", + 54: "US_TX_EZTAG", + 96: "US_TX_FUEGO_TAG", + 55: "US_TX_LAREDO_TRADE_TAG", + 56: "US_TX_PLUSPASS", + 57: "US_TX_TOLLTAG", + 58: "US_TX_TXTAG", + 59: "US_TX_XPRESS_CARD", + 60: "US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD", + 61: "US_VA_EZPASSVA", + 17: "US_WA_BREEZEBY", + 1: "US_WA_GOOD_TO_GO", + 62: "US_WV_EZPASSWV", + 63: "US_WV_MEMORIAL_BRIDGE_TICKETS", + 100: "US_WV_MOV_PASS", + 64: "US_WV_NEWELL_TOLL_BRIDGE_TICKET", } TollPass_value = map[string]int32{ "TOLL_PASS_UNSPECIFIED": 0, @@ -373,6 +388,8 @@ var ( "ID_E_TOLL": 16, "IN_FASTAG": 78, "IN_LOCAL_HP_PLATE_EXEMPT": 79, + "JP_ETC": 98, + "JP_ETC2": 99, "MX_IAVE": 90, "MX_PASE": 91, "MX_QUICKPASS": 93, @@ -448,6 +465,7 @@ var ( "US_WA_GOOD_TO_GO": 1, "US_WV_EZPASSWV": 62, "US_WV_MEMORIAL_BRIDGE_TICKETS": 63, + "US_WV_MOV_PASS": 100, "US_WV_NEWELL_TOLL_BRIDGE_TICKET": 64, } ) @@ -486,7 +504,7 @@ var file_google_maps_routing_v2_toll_passes_proto_rawDesc = []byte{ 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x32, 0x2a, 0xd1, 0x11, 0x0a, 0x08, 0x54, 0x6f, 0x6c, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x12, + 0x76, 0x32, 0x2a, 0xfe, 0x11, 0x0a, 0x08, 0x54, 0x6f, 0x6c, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x5f, 0x45, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x52, 0x12, 0x0f, 0x0a, 0x0b, @@ -514,133 +532,136 @@ var file_google_maps_routing_v2_toll_passes_proto_rawDesc = []byte{ 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x41, 0x47, 0x10, 0x4e, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x48, 0x50, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x45, 0x4d, 0x50, - 0x54, 0x10, 0x4f, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x58, 0x5f, 0x49, 0x41, 0x56, 0x45, 0x10, 0x5a, - 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x58, 0x5f, 0x50, 0x41, 0x53, 0x45, 0x10, 0x5b, 0x12, 0x10, 0x0a, - 0x0c, 0x4d, 0x58, 0x5f, 0x51, 0x55, 0x49, 0x43, 0x4b, 0x50, 0x41, 0x53, 0x53, 0x10, 0x5d, 0x12, - 0x22, 0x0a, 0x1e, 0x4d, 0x58, 0x5f, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4d, 0x41, 0x5f, 0x54, 0x45, - 0x4c, 0x45, 0x50, 0x45, 0x41, 0x4a, 0x45, 0x5f, 0x43, 0x48, 0x49, 0x48, 0x55, 0x41, 0x48, 0x55, - 0x41, 0x10, 0x59, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x58, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x49, 0x41, - 0x56, 0x45, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x58, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x54, - 0x45, 0x4c, 0x45, 0x56, 0x49, 0x41, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x58, 0x5f, 0x54, - 0x45, 0x4c, 0x45, 0x56, 0x49, 0x41, 0x10, 0x5c, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x58, 0x5f, 0x56, - 0x49, 0x41, 0x50, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x5f, 0x41, - 0x4c, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x44, 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x15, - 0x12, 0x32, 0x0a, 0x2e, 0x55, 0x53, 0x5f, 0x41, 0x4b, 0x5f, 0x41, 0x4e, 0x54, 0x4f, 0x4e, 0x5f, - 0x41, 0x4e, 0x44, 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, - 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x4f, 0x46, 0x5f, 0x31, 0x30, 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, - 0x54, 0x53, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x5f, 0x46, 0x41, - 0x53, 0x54, 0x52, 0x41, 0x4b, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x53, 0x5f, 0x43, 0x41, - 0x5f, 0x46, 0x41, 0x53, 0x54, 0x52, 0x41, 0x4b, 0x5f, 0x43, 0x41, 0x56, 0x5f, 0x53, 0x54, 0x49, - 0x43, 0x4b, 0x45, 0x52, 0x10, 0x56, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x5f, - 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x17, 0x12, 0x11, 0x0a, - 0x0d, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x5f, 0x47, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x18, - 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, - 0x44, 0x45, 0x10, 0x19, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x42, 0x4f, - 0x42, 0x5f, 0x53, 0x49, 0x4b, 0x45, 0x53, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x42, 0x52, 0x49, - 0x44, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x41, 0x12, 0x3a, 0x0a, 0x36, 0x55, 0x53, - 0x5f, 0x46, 0x4c, 0x5f, 0x44, 0x55, 0x4e, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, - 0x49, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x4d, 0x45, 0x4e, 0x54, 0x5f, - 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, - 0x43, 0x41, 0x52, 0x44, 0x10, 0x42, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, - 0x45, 0x50, 0x41, 0x53, 0x53, 0x10, 0x43, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x53, 0x5f, 0x46, 0x4c, - 0x5f, 0x47, 0x49, 0x42, 0x41, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, - 0x44, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x4c, 0x45, 0x45, 0x57, 0x41, - 0x59, 0x10, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x53, 0x55, 0x4e, - 0x50, 0x41, 0x53, 0x53, 0x10, 0x46, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, - 0x53, 0x55, 0x4e, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x10, 0x47, 0x12, 0x12, 0x0a, - 0x0e, 0x55, 0x53, 0x5f, 0x49, 0x4c, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x49, 0x4c, 0x10, - 0x49, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x49, 0x4c, 0x5f, 0x49, 0x50, 0x41, 0x53, 0x53, - 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x5a, 0x50, 0x41, - 0x53, 0x53, 0x49, 0x4e, 0x10, 0x1a, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x5f, 0x4b, 0x53, 0x5f, - 0x42, 0x45, 0x53, 0x54, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, - 0x10, 0x1b, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x4b, 0x54, 0x41, 0x47, - 0x10, 0x1c, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x4e, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x41, 0x4c, 0x50, 0x41, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, - 0x5f, 0x4b, 0x53, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x4c, 0x49, 0x54, - 0x45, 0x50, 0x41, 0x53, 0x53, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x53, 0x5f, 0x4b, 0x59, - 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, - 0x55, 0x53, 0x5f, 0x4c, 0x41, 0x5f, 0x47, 0x45, 0x41, 0x55, 0x58, 0x50, 0x41, 0x53, 0x53, 0x10, - 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4c, 0x41, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, - 0x54, 0x41, 0x47, 0x10, 0x21, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x5f, 0x45, - 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x41, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, - 0x4d, 0x44, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x44, 0x10, 0x22, 0x12, 0x12, 0x0a, - 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x45, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x45, 0x10, - 0x23, 0x12, 0x31, 0x0a, 0x2d, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x41, 0x4d, 0x42, 0x41, 0x53, - 0x53, 0x41, 0x44, 0x4f, 0x52, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, - 0x4d, 0x49, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x41, - 0x52, 0x44, 0x10, 0x24, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x42, 0x43, - 0x50, 0x41, 0x53, 0x53, 0x10, 0x5e, 0x12, 0x29, 0x0a, 0x25, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, - 0x47, 0x52, 0x4f, 0x53, 0x53, 0x45, 0x5f, 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, - 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x54, 0x41, 0x47, 0x10, - 0x25, 0x12, 0x1a, 0x0a, 0x12, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x49, 0x51, 0x5f, 0x50, 0x52, - 0x4f, 0x58, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x26, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x49, 0x51, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x5f, 0x12, - 0x22, 0x0a, 0x1e, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x4d, 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x41, - 0x43, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x10, 0x27, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x4e, 0x45, 0x58, - 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, - 0x55, 0x53, 0x5f, 0x4d, 0x4e, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x4e, 0x10, 0x29, - 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4e, 0x43, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, - 0x4e, 0x43, 0x10, 0x2a, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x5f, 0x4e, 0x43, 0x5f, 0x50, 0x45, - 0x41, 0x43, 0x48, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x57, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, - 0x5f, 0x4e, 0x43, 0x5f, 0x51, 0x55, 0x49, 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x2b, - 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4e, 0x48, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, - 0x4e, 0x48, 0x10, 0x50, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x53, 0x5f, 0x4e, 0x4a, 0x5f, 0x44, 0x4f, - 0x57, 0x4e, 0x42, 0x45, 0x41, 0x43, 0x48, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, - 0x50, 0x41, 0x53, 0x53, 0x10, 0x4b, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4e, 0x4a, 0x5f, - 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4e, 0x4a, 0x10, 0x4a, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, - 0x5f, 0x4e, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x50, 0x41, 0x53, 0x53, 0x10, - 0x4c, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4e, 0x59, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, - 0x53, 0x4e, 0x59, 0x10, 0x4d, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4f, 0x48, 0x5f, 0x45, - 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4f, 0x48, 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, - 0x50, 0x41, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x50, 0x41, 0x10, 0x2d, 0x12, 0x12, 0x0a, - 0x0e, 0x55, 0x53, 0x5f, 0x52, 0x49, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x52, 0x49, 0x10, - 0x2e, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x41, 0x4c, 0x50, 0x41, - 0x53, 0x53, 0x10, 0x2f, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x41, 0x56, - 0x49, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x61, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, - 0x5f, 0x42, 0x41, 0x4e, 0x43, 0x50, 0x41, 0x53, 0x53, 0x10, 0x30, 0x12, 0x16, 0x0a, 0x12, 0x55, - 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x44, 0x45, 0x4c, 0x5f, 0x52, 0x49, 0x4f, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x10, 0x31, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x46, 0x41, - 0x53, 0x54, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x32, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x53, 0x5f, - 0x54, 0x58, 0x5f, 0x45, 0x41, 0x47, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x58, - 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x33, 0x12, 0x10, 0x0a, 0x0c, - 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x50, 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x34, 0x12, 0x12, - 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x5a, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, - 0x10, 0x35, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x5a, 0x54, 0x41, - 0x47, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x55, 0x45, - 0x47, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x60, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x5f, 0x54, - 0x58, 0x5f, 0x4c, 0x41, 0x52, 0x45, 0x44, 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x5f, 0x54, - 0x41, 0x47, 0x10, 0x37, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4c, - 0x55, 0x53, 0x50, 0x41, 0x53, 0x53, 0x10, 0x38, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x54, - 0x58, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x54, 0x41, 0x47, 0x10, 0x39, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x58, 0x54, 0x41, 0x47, 0x10, 0x3a, 0x12, 0x15, 0x0a, 0x11, - 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x41, 0x52, - 0x44, 0x10, 0x3b, 0x12, 0x27, 0x0a, 0x23, 0x55, 0x53, 0x5f, 0x55, 0x54, 0x5f, 0x41, 0x44, 0x41, - 0x4d, 0x53, 0x5f, 0x41, 0x56, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x4b, 0x57, 0x41, 0x59, 0x5f, 0x45, - 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, - 0x55, 0x53, 0x5f, 0x56, 0x41, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x56, 0x41, 0x10, 0x3d, - 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x57, 0x41, 0x5f, 0x42, 0x52, 0x45, 0x45, 0x5a, 0x45, - 0x42, 0x59, 0x10, 0x11, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x5f, 0x57, 0x41, 0x5f, 0x47, 0x4f, - 0x4f, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x47, 0x4f, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, - 0x5f, 0x57, 0x56, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x57, 0x56, 0x10, 0x3e, 0x12, 0x21, - 0x0a, 0x1d, 0x55, 0x53, 0x5f, 0x57, 0x56, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x49, 0x41, 0x4c, - 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, - 0x3f, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x53, 0x5f, 0x57, 0x56, 0x5f, 0x4e, 0x45, 0x57, 0x45, 0x4c, - 0x4c, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x49, - 0x43, 0x4b, 0x45, 0x54, 0x10, 0x40, 0x42, 0xc4, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x42, 0x0f, 0x54, 0x6f, 0x6c, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x61, - 0x70, 0x73, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x32, - 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x72, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x05, 0x47, 0x4d, 0x52, 0x56, 0x32, 0xaa, - 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x52, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x5c, 0x4d, 0x61, 0x70, 0x73, 0x5c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x4d, 0x61, 0x70, 0x73, - 0x3a, 0x3a, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x10, 0x4f, 0x12, 0x0a, 0x0a, 0x06, 0x4a, 0x50, 0x5f, 0x45, 0x54, 0x43, 0x10, 0x62, 0x12, + 0x0b, 0x0a, 0x07, 0x4a, 0x50, 0x5f, 0x45, 0x54, 0x43, 0x32, 0x10, 0x63, 0x12, 0x0b, 0x0a, 0x07, + 0x4d, 0x58, 0x5f, 0x49, 0x41, 0x56, 0x45, 0x10, 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x58, 0x5f, + 0x50, 0x41, 0x53, 0x45, 0x10, 0x5b, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x58, 0x5f, 0x51, 0x55, 0x49, + 0x43, 0x4b, 0x50, 0x41, 0x53, 0x53, 0x10, 0x5d, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x58, 0x5f, 0x53, + 0x49, 0x53, 0x54, 0x45, 0x4d, 0x41, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x50, 0x45, 0x41, 0x4a, 0x45, + 0x5f, 0x43, 0x48, 0x49, 0x48, 0x55, 0x41, 0x48, 0x55, 0x41, 0x10, 0x59, 0x12, 0x0f, 0x0a, 0x0b, + 0x4d, 0x58, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x49, 0x41, 0x56, 0x45, 0x10, 0x0c, 0x12, 0x12, 0x0a, + 0x0e, 0x4d, 0x58, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x56, 0x49, 0x41, 0x10, + 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x58, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x56, 0x49, 0x41, 0x10, + 0x5c, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x58, 0x5f, 0x56, 0x49, 0x41, 0x50, 0x41, 0x53, 0x53, 0x10, + 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x5f, 0x41, 0x4c, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x44, + 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x15, 0x12, 0x32, 0x0a, 0x2e, 0x55, 0x53, 0x5f, + 0x41, 0x4b, 0x5f, 0x41, 0x4e, 0x54, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x45, 0x52, 0x53, 0x4f, + 0x4e, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x4f, 0x46, + 0x5f, 0x31, 0x30, 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x16, 0x12, 0x11, 0x0a, + 0x0d, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x52, 0x41, 0x4b, 0x10, 0x04, + 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x52, 0x41, + 0x4b, 0x5f, 0x43, 0x41, 0x56, 0x5f, 0x53, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x56, 0x12, + 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x5f, + 0x47, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, + 0x44, 0x45, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x44, 0x45, 0x10, 0x19, 0x12, 0x24, 0x0a, + 0x20, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x42, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x4b, 0x45, 0x53, + 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x53, + 0x53, 0x10, 0x41, 0x12, 0x3a, 0x0a, 0x36, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x44, 0x55, 0x4e, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x56, + 0x45, 0x4c, 0x4f, 0x50, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x43, + 0x54, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x42, 0x12, + 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x45, 0x50, 0x41, 0x53, 0x53, 0x10, 0x43, + 0x12, 0x18, 0x0a, 0x14, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x47, 0x49, 0x42, 0x41, 0x5f, 0x54, + 0x4f, 0x4c, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x44, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, + 0x5f, 0x46, 0x4c, 0x5f, 0x4c, 0x45, 0x45, 0x57, 0x41, 0x59, 0x10, 0x45, 0x12, 0x11, 0x0a, 0x0d, + 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x53, 0x55, 0x4e, 0x50, 0x41, 0x53, 0x53, 0x10, 0x46, 0x12, + 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x46, 0x4c, 0x5f, 0x53, 0x55, 0x4e, 0x50, 0x41, 0x53, 0x53, + 0x5f, 0x50, 0x52, 0x4f, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x49, 0x4c, 0x5f, + 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x49, 0x4c, 0x10, 0x49, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, + 0x5f, 0x49, 0x4c, 0x5f, 0x49, 0x50, 0x41, 0x53, 0x53, 0x10, 0x48, 0x12, 0x12, 0x0a, 0x0e, 0x55, + 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x10, 0x1a, 0x12, + 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x42, 0x45, 0x53, 0x54, 0x50, 0x41, 0x53, + 0x53, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x10, 0x1b, 0x12, 0x0e, 0x0a, 0x0a, 0x55, + 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x4b, 0x54, 0x41, 0x47, 0x10, 0x1c, 0x12, 0x16, 0x0a, 0x12, 0x55, + 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x50, 0x41, 0x53, + 0x53, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x5f, 0x4b, 0x53, 0x5f, 0x50, 0x52, 0x45, + 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x4c, 0x49, 0x54, 0x45, 0x50, 0x41, 0x53, 0x53, 0x10, 0x1e, + 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x53, 0x5f, 0x4b, 0x59, 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x4c, + 0x49, 0x4e, 0x4b, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x53, 0x5f, 0x4c, 0x41, 0x5f, 0x47, + 0x45, 0x41, 0x55, 0x58, 0x50, 0x41, 0x53, 0x53, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, + 0x5f, 0x4c, 0x41, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x21, 0x12, 0x12, + 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x41, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x41, + 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x44, 0x5f, 0x45, 0x5a, 0x50, 0x41, + 0x53, 0x53, 0x4d, 0x44, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x45, 0x5f, + 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x45, 0x10, 0x23, 0x12, 0x31, 0x0a, 0x2d, 0x55, 0x53, + 0x5f, 0x4d, 0x49, 0x5f, 0x41, 0x4d, 0x42, 0x41, 0x53, 0x53, 0x41, 0x44, 0x4f, 0x52, 0x5f, 0x42, + 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x45, 0x52, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x24, 0x12, 0x10, 0x0a, + 0x0c, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x42, 0x43, 0x50, 0x41, 0x53, 0x53, 0x10, 0x5e, 0x12, + 0x29, 0x0a, 0x25, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x47, 0x52, 0x4f, 0x53, 0x53, 0x45, 0x5f, + 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, + 0x50, 0x41, 0x53, 0x53, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x12, 0x55, 0x53, + 0x5f, 0x4d, 0x49, 0x5f, 0x49, 0x51, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x5f, 0x43, 0x41, 0x52, 0x44, + 0x10, 0x26, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, + 0x49, 0x51, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x5f, 0x12, 0x22, 0x0a, 0x1e, 0x55, 0x53, 0x5f, 0x4d, + 0x49, 0x5f, 0x4d, 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x41, 0x43, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, + 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x27, 0x12, 0x17, 0x0a, 0x13, + 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x5f, 0x4e, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, + 0x4f, 0x4c, 0x4c, 0x10, 0x28, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4d, 0x4e, 0x5f, 0x45, + 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4d, 0x4e, 0x10, 0x29, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, + 0x4e, 0x43, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4e, 0x43, 0x10, 0x2a, 0x12, 0x14, 0x0a, + 0x10, 0x55, 0x53, 0x5f, 0x4e, 0x43, 0x5f, 0x50, 0x45, 0x41, 0x43, 0x48, 0x5f, 0x50, 0x41, 0x53, + 0x53, 0x10, 0x57, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x5f, 0x4e, 0x43, 0x5f, 0x51, 0x55, 0x49, + 0x43, 0x4b, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x2b, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, + 0x4e, 0x48, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4e, 0x48, 0x10, 0x50, 0x12, 0x20, 0x0a, + 0x1c, 0x55, 0x53, 0x5f, 0x4e, 0x4a, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x42, 0x45, 0x41, 0x43, 0x48, + 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x4b, 0x12, + 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4e, 0x4a, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4e, + 0x4a, 0x10, 0x4a, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x4e, 0x59, 0x5f, 0x45, 0x58, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x50, 0x41, 0x53, 0x53, 0x10, 0x4c, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, + 0x5f, 0x4e, 0x59, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4e, 0x59, 0x10, 0x4d, 0x12, 0x12, + 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x4f, 0x48, 0x5f, 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x4f, 0x48, + 0x10, 0x2c, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x5f, 0x45, 0x5a, 0x50, 0x41, + 0x53, 0x53, 0x50, 0x41, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x52, 0x49, 0x5f, + 0x45, 0x5a, 0x50, 0x41, 0x53, 0x53, 0x52, 0x49, 0x10, 0x2e, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, + 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x41, 0x4c, 0x50, 0x41, 0x53, 0x53, 0x10, 0x2f, 0x12, 0x11, 0x0a, + 0x0d, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x41, 0x56, 0x49, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x61, + 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x42, 0x41, 0x4e, 0x43, 0x50, 0x41, + 0x53, 0x53, 0x10, 0x30, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x44, 0x45, + 0x4c, 0x5f, 0x52, 0x49, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x31, 0x12, 0x14, 0x0a, 0x10, + 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x53, 0x53, + 0x10, 0x32, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x41, 0x47, 0x4c, + 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x43, + 0x41, 0x52, 0x44, 0x10, 0x33, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, + 0x50, 0x54, 0x4f, 0x4c, 0x4c, 0x10, 0x34, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, + 0x5f, 0x45, 0x5a, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x10, 0x35, 0x12, 0x0f, 0x0a, 0x0b, 0x55, + 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x45, 0x5a, 0x54, 0x41, 0x47, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, + 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x46, 0x55, 0x45, 0x47, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x10, + 0x60, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x4c, 0x41, 0x52, 0x45, 0x44, + 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x37, 0x12, 0x12, 0x0a, + 0x0e, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x50, 0x4c, 0x55, 0x53, 0x50, 0x41, 0x53, 0x53, 0x10, + 0x38, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x4f, 0x4c, 0x4c, 0x54, + 0x41, 0x47, 0x10, 0x39, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x54, 0x58, + 0x54, 0x41, 0x47, 0x10, 0x3a, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x5f, 0x54, 0x58, 0x5f, 0x58, + 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x3b, 0x12, 0x27, 0x0a, 0x23, + 0x55, 0x53, 0x5f, 0x55, 0x54, 0x5f, 0x41, 0x44, 0x41, 0x4d, 0x53, 0x5f, 0x41, 0x56, 0x45, 0x5f, + 0x50, 0x41, 0x52, 0x4b, 0x57, 0x41, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x43, + 0x41, 0x52, 0x44, 0x10, 0x3c, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x56, 0x41, 0x5f, 0x45, + 0x5a, 0x50, 0x41, 0x53, 0x53, 0x56, 0x41, 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, + 0x57, 0x41, 0x5f, 0x42, 0x52, 0x45, 0x45, 0x5a, 0x45, 0x42, 0x59, 0x10, 0x11, 0x12, 0x14, 0x0a, + 0x10, 0x55, 0x53, 0x5f, 0x57, 0x41, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x47, + 0x4f, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x5f, 0x57, 0x56, 0x5f, 0x45, 0x5a, 0x50, + 0x41, 0x53, 0x53, 0x57, 0x56, 0x10, 0x3e, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x53, 0x5f, 0x57, 0x56, + 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, + 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x3f, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, + 0x5f, 0x57, 0x56, 0x5f, 0x4d, 0x4f, 0x56, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x64, 0x12, 0x23, + 0x0a, 0x1f, 0x55, 0x53, 0x5f, 0x57, 0x56, 0x5f, 0x4e, 0x45, 0x57, 0x45, 0x4c, 0x4c, 0x5f, 0x54, + 0x4f, 0x4c, 0x4c, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, + 0x54, 0x10, 0x40, 0x42, 0xc4, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x32, 0x42, 0x0f, 0x54, 0x6f, 0x6c, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x65, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, + 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, + 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x05, 0x47, 0x4d, 0x52, 0x56, 0x32, 0xaa, 0x02, 0x16, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x4d, + 0x61, 0x70, 0x73, 0x5c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x32, 0xea, 0x02, + 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x4d, 0x61, 0x70, 0x73, 0x3a, 0x3a, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/maps/routing/apiv2/routingpb/vehicle_emission_type.pb.go b/maps/routing/apiv2/routingpb/vehicle_emission_type.pb.go index b968c301a82..f31f5b39e0c 100755 --- a/maps/routing/apiv2/routingpb/vehicle_emission_type.pb.go +++ b/maps/routing/apiv2/routingpb/vehicle_emission_type.pb.go @@ -37,7 +37,7 @@ const ( // A set of values describing the vehicle's emission type. // Applies only to the `DRIVE` -// [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. +// [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. type VehicleEmissionType int32 const ( diff --git a/maps/routing/apiv2/routingpb/vehicle_info.pb.go b/maps/routing/apiv2/routingpb/vehicle_info.pb.go index 96830780530..0c7e00cc32a 100755 --- a/maps/routing/apiv2/routingpb/vehicle_info.pb.go +++ b/maps/routing/apiv2/routingpb/vehicle_info.pb.go @@ -43,7 +43,7 @@ type VehicleInfo struct { // Describes the vehicle's emission type. // Applies only to the `DRIVE` - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. EmissionType VehicleEmissionType `protobuf:"varint,2,opt,name=emission_type,json=emissionType,proto3,enum=google.maps.routing.v2.VehicleEmissionType" json:"emission_type,omitempty"` } diff --git a/maps/routing/apiv2/routingpb/waypoint.pb.go b/maps/routing/apiv2/routingpb/waypoint.pb.go index 75e6097f9d0..52e1f5a4a97 100755 --- a/maps/routing/apiv2/routingpb/waypoint.pb.go +++ b/maps/routing/apiv2/routingpb/waypoint.pb.go @@ -52,7 +52,7 @@ type Waypoint struct { LocationType isWaypoint_LocationType `protobuf_oneof:"location_type"` // Marks this waypoint as a milestone rather a stopping point. For // each non-via waypoint in the request, the response appends an entry to the - // [legs][google.maps.routing.v2.Route.legs] + // [`legs`][google.maps.routing.v2.Route.legs] // array to provide the details for stopovers on that leg of the trip. Set // this value to true when you want the route to pass through this waypoint // without stopping over. Via waypoints don't cause an entry to be added to @@ -67,14 +67,14 @@ type Waypoint struct { // calculated route won't include non-`via` waypoints on roads that are // unsuitable for pickup and drop-off. This option works only for `DRIVE` and // `TWO_WHEELER` travel modes, and when the `location_type` is - // [Location][google.maps.routing.v2.Location]. + // [`Location`][google.maps.routing.v2.Location]. VehicleStopover bool `protobuf:"varint,4,opt,name=vehicle_stopover,json=vehicleStopover,proto3" json:"vehicle_stopover,omitempty"` // Indicates that the location of this waypoint is meant to have a preference // for the vehicle to stop at a particular side of road. When you set this // value, the route will pass through the location so that the vehicle can // stop at the side of road that the location is biased towards from the - // center of the road. This option works only for 'DRIVE' and 'TWO_WHEELER' - // [RouteTravelMode][google.maps.routing.v2.RouteTravelMode]. + // center of the road. This option works only for `DRIVE` and `TWO_WHEELER` + // [`RouteTravelMode`][google.maps.routing.v2.RouteTravelMode]. SideOfRoad bool `protobuf:"varint,5,opt,name=side_of_road,json=sideOfRoad,proto3" json:"side_of_road,omitempty"` } diff --git a/shopping/merchant/quota/apiv1beta/auxiliary.go b/shopping/merchant/quota/apiv1beta/auxiliary.go new file mode 100755 index 00000000000..8dac964902f --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/auxiliary.go @@ -0,0 +1,69 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package quota + +import ( + quotapb "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb" + "google.golang.org/api/iterator" +) + +// QuotaGroupIterator manages a stream of *quotapb.QuotaGroup. +type QuotaGroupIterator struct { + items []*quotapb.QuotaGroup + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*quotapb.QuotaGroup, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *QuotaGroupIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *QuotaGroupIterator) Next() (*quotapb.QuotaGroup, error) { + var item *quotapb.QuotaGroup + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *QuotaGroupIterator) bufLen() int { + return len(it.items) +} + +func (it *QuotaGroupIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/shopping/merchant/quota/apiv1beta/doc.go b/shopping/merchant/quota/apiv1beta/doc.go new file mode 100755 index 00000000000..a1e3ef4fb90 --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/doc.go @@ -0,0 +1,135 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// Package quota is an auto-generated package for the +// Merchant API. +// +// Programmatically manage your Merchant Center accounts. +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// # General documentation +// +// For information that is relevant for all client libraries please reference +// https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this +// page includes: +// +// - [Authentication and Authorization] +// - [Timeouts and Cancellation] +// - [Testing against Client Libraries] +// - [Debugging Client Libraries] +// - [Inspecting errors] +// +// # Example usage +// +// To get started with this package, create a client. +// +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := quota.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := quota.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := "apb.ListQuotaGroupsRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb#ListQuotaGroupsRequest. +// } +// it := c.ListQuotaGroups(ctx, req) +// for { +// resp, err := it.Next() +// if err == iterator.Done { +// break +// } +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// // If you need to access the underlying RPC response, +// // you can do so by casting the `Response` as below. +// // Otherwise, remove this line. Only populated after +// // first call to Next(). Not safe for concurrent access. +// _ = it.Response.(*quotapb.ListQuotaGroupsResponse) +// } +// +// # Use of Context +// +// The ctx passed to NewClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +// +// [Authentication and Authorization]: https://pkg.go.dev/cloud.google.com/go#hdr-Authentication_and_Authorization +// [Timeouts and Cancellation]: https://pkg.go.dev/cloud.google.com/go#hdr-Timeouts_and_Cancellation +// [Testing against Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Testing +// [Debugging Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Debugging +// [Inspecting errors]: https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors +package quota // import "cloud.google.com/go/shopping/merchant/quota/apiv1beta" + +import ( + "context" + + "google.golang.org/api/option" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/content", + } +} diff --git a/shopping/merchant/quota/apiv1beta/gapic_metadata.json b/shopping/merchant/quota/apiv1beta/gapic_metadata.json new file mode 100644 index 00000000000..d67af57bdaa --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/gapic_metadata.json @@ -0,0 +1,33 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.shopping.merchant.quota.v1beta", + "libraryPackage": "cloud.google.com/go/shopping/merchant/quota/apiv1beta", + "services": { + "QuotaService": { + "clients": { + "grpc": { + "libraryClient": "Client", + "rpcs": { + "ListQuotaGroups": { + "methods": [ + "ListQuotaGroups" + ] + } + } + }, + "rest": { + "libraryClient": "Client", + "rpcs": { + "ListQuotaGroups": { + "methods": [ + "ListQuotaGroups" + ] + } + } + } + } + } + } +} diff --git a/shopping/merchant/quota/apiv1beta/quota_client.go b/shopping/merchant/quota/apiv1beta/quota_client.go new file mode 100755 index 00000000000..9f92e6b0199 --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/quota_client.go @@ -0,0 +1,421 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package quota + +import ( + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + quotapb "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newClientHook clientHook + +// CallOptions contains the retry settings for each method of Client. +type CallOptions struct { + ListQuotaGroups []gax.CallOption +} + +func defaultGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("merchantapi.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("merchantapi.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("merchantapi.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://merchantapi.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultCallOptions() *CallOptions { + return &CallOptions{ + ListQuotaGroups: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +func defaultRESTCallOptions() *CallOptions { + return &CallOptions{ + ListQuotaGroups: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + } +} + +// internalClient is an interface that defines the methods available from Merchant API. +type internalClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListQuotaGroups(context.Context, *quotapb.ListQuotaGroupsRequest, ...gax.CallOption) *QuotaGroupIterator +} + +// Client is a client for interacting with Merchant API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service to get method call quota information per Merchant API method. +type Client struct { + // The internal transport-dependent client. + internalClient internalClient + + // The call options for this service. + CallOptions *CallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *Client) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *Client) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *Client) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListQuotaGroups lists the daily call quota and usage per group for your Merchant +// Center account. +func (c *Client) ListQuotaGroups(ctx context.Context, req *quotapb.ListQuotaGroupsRequest, opts ...gax.CallOption) *QuotaGroupIterator { + return c.internalClient.ListQuotaGroups(ctx, req, opts...) +} + +// gRPCClient is a client for interacting with Merchant API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type gRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + // The gRPC API client. + client quotapb.QuotaServiceClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewClient creates a new quota service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service to get method call quota information per Merchant API method. +func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := defaultGRPCClientOptions() + if newClientHook != nil { + hookOpts, err := newClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := Client{CallOptions: defaultCallOptions()} + + c := &gRPCClient{ + connPool: connPool, + client: quotapb.NewQuotaServiceClient(connPool), + CallOptions: &client.CallOptions, + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *gRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *gRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type restClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions +} + +// NewRESTClient creates a new quota service rest client. +// +// Service to get method call quota information per Merchant API method. +func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := append(defaultRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultRESTCallOptions() + c := &restClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &Client{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://merchantapi.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://merchantapi.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://merchantapi.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://merchantapi.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *restClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *restClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *restClient) Connection() *grpc.ClientConn { + return nil +} +func (c *gRPCClient) ListQuotaGroups(ctx context.Context, req *quotapb.ListQuotaGroupsRequest, opts ...gax.CallOption) *QuotaGroupIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListQuotaGroups[0:len((*c.CallOptions).ListQuotaGroups):len((*c.CallOptions).ListQuotaGroups)], opts...) + it := &QuotaGroupIterator{} + req = proto.Clone(req).(*quotapb.ListQuotaGroupsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*quotapb.QuotaGroup, string, error) { + resp := "apb.ListQuotaGroupsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListQuotaGroups(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetQuotaGroups(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// ListQuotaGroups lists the daily call quota and usage per group for your Merchant +// Center account. +func (c *restClient) ListQuotaGroups(ctx context.Context, req *quotapb.ListQuotaGroupsRequest, opts ...gax.CallOption) *QuotaGroupIterator { + it := &QuotaGroupIterator{} + req = proto.Clone(req).(*quotapb.ListQuotaGroupsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*quotapb.QuotaGroup, string, error) { + resp := "apb.ListQuotaGroupsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/quota/v1beta/%v/quotas", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetQuotaGroups(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} diff --git a/shopping/merchant/quota/apiv1beta/quota_client_example_test.go b/shopping/merchant/quota/apiv1beta/quota_client_example_test.go new file mode 100644 index 00000000000..77eb2560108 --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/quota_client_example_test.go @@ -0,0 +1,96 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package quota_test + +import ( + "context" + + quota "cloud.google.com/go/shopping/merchant/quota/apiv1beta" + quotapb "cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb" + "google.golang.org/api/iterator" +) + +func ExampleNewClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := quota.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := quota.NewRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleClient_ListQuotaGroups() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := quota.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := "apb.ListQuotaGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/shopping/merchant/quota/apiv1beta/quotapb#ListQuotaGroupsRequest. + } + it := c.ListQuotaGroups(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*quotapb.ListQuotaGroupsResponse) + } +} diff --git a/shopping/merchant/quota/apiv1beta/quotapb/quota.pb.go b/shopping/merchant/quota/apiv1beta/quotapb/quota.pb.go new file mode 100755 index 00000000000..d7d04a999e5 --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/quotapb/quota.pb.go @@ -0,0 +1,632 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/shopping/merchant/quota/v1beta/quota.proto + +package quotapb + +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" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The group information for methods in the Merchant API. The quota is shared +// between all methods in the group. Even if none of the methods within the +// group have usage the information for the group is returned. +type QuotaGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name of the quota group. + // Format: accounts/{account}/quotas/{group} + // Note: There is no guarantee on the format of {group} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The current quota usage, meaning the number of calls already + // made on a given day to the methods in the group. The daily quota limits + // reset at at 12:00 PM midday UTC. + QuotaUsage int64 `protobuf:"varint,2,opt,name=quota_usage,json=quotaUsage,proto3" json:"quota_usage,omitempty"` + // Output only. The maximum number of calls allowed per day for the group. + QuotaLimit int64 `protobuf:"varint,3,opt,name=quota_limit,json=quotaLimit,proto3" json:"quota_limit,omitempty"` + // Output only. The maximum number of calls allowed per minute for the group. + QuotaMinuteLimit int64 `protobuf:"varint,5,opt,name=quota_minute_limit,json=quotaMinuteLimit,proto3" json:"quota_minute_limit,omitempty"` + // Output only. List of all methods group quota applies to. + MethodDetails []*MethodDetails `protobuf:"bytes,4,rep,name=method_details,json=methodDetails,proto3" json:"method_details,omitempty"` +} + +func (x *QuotaGroup) Reset() { + *x = QuotaGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuotaGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuotaGroup) ProtoMessage() {} + +func (x *QuotaGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_shopping_merchant_quota_v1beta_quota_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 QuotaGroup.ProtoReflect.Descriptor instead. +func (*QuotaGroup) Descriptor() ([]byte, []int) { + return file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescGZIP(), []int{0} +} + +func (x *QuotaGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *QuotaGroup) GetQuotaUsage() int64 { + if x != nil { + return x.QuotaUsage + } + return 0 +} + +func (x *QuotaGroup) GetQuotaLimit() int64 { + if x != nil { + return x.QuotaLimit + } + return 0 +} + +func (x *QuotaGroup) GetQuotaMinuteLimit() int64 { + if x != nil { + return x.QuotaMinuteLimit + } + return 0 +} + +func (x *QuotaGroup) GetMethodDetails() []*MethodDetails { + if x != nil { + return x.MethodDetails + } + return nil +} + +// The method details per method in the Merchant API. +type MethodDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The name of the method for example `products.list`. + Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` + // Output only. The API version that the method belongs to. + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // Output only. The sub-API that the method belongs to. + Subapi string `protobuf:"bytes,3,opt,name=subapi,proto3" json:"subapi,omitempty"` + // Output only. The path for the method such as + // `products/v1/productInputs.insert` + Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *MethodDetails) Reset() { + *x = MethodDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MethodDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MethodDetails) ProtoMessage() {} + +func (x *MethodDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_shopping_merchant_quota_v1beta_quota_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 MethodDetails.ProtoReflect.Descriptor instead. +func (*MethodDetails) Descriptor() ([]byte, []int) { + return file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescGZIP(), []int{1} +} + +func (x *MethodDetails) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *MethodDetails) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *MethodDetails) GetSubapi() string { + if x != nil { + return x.Subapi + } + return "" +} + +func (x *MethodDetails) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +// Request message for the ListQuotaGroups method. +type ListQuotaGroupsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The merchant account who owns the collection of method quotas + // Format: accounts/{account} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of quotas to return in the response, used + // for paging. Defaults to 500; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. Token (if provided) to retrieve the subsequent page. All other + // parameters must match the original call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListQuotaGroupsRequest) Reset() { + *x = ListQuotaGroupsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListQuotaGroupsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListQuotaGroupsRequest) ProtoMessage() {} + +func (x *ListQuotaGroupsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_shopping_merchant_quota_v1beta_quota_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 ListQuotaGroupsRequest.ProtoReflect.Descriptor instead. +func (*ListQuotaGroupsRequest) Descriptor() ([]byte, []int) { + return file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescGZIP(), []int{2} +} + +func (x *ListQuotaGroupsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListQuotaGroupsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListQuotaGroupsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for the ListMethodGroups method. +type ListQuotaGroupsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The methods, current quota usage and limits per each group. The quota is + // shared between all methods in the group. The groups are sorted in + // descending order based on + // [quotaUsage][google.shopping.merchant.quota.v1main.QuotaGroup.quota_usage]. + QuotaGroups []*QuotaGroup `protobuf:"bytes,1,rep,name=quota_groups,json=quotaGroups,proto3" json:"quota_groups,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListQuotaGroupsResponse) Reset() { + *x = ListQuotaGroupsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListQuotaGroupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListQuotaGroupsResponse) ProtoMessage() {} + +func (x *ListQuotaGroupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_shopping_merchant_quota_v1beta_quota_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 ListQuotaGroupsResponse.ProtoReflect.Descriptor instead. +func (*ListQuotaGroupsResponse) Descriptor() ([]byte, []int) { + return file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescGZIP(), []int{3} +} + +func (x *ListQuotaGroupsResponse) GetQuotaGroups() []*QuotaGroup { + if x != nil { + return x.QuotaGroups + } + return nil +} + +func (x *ListQuotaGroupsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +var File_google_shopping_merchant_quota_v1beta_quota_proto protoreflect.FileDescriptor + +var file_google_shopping_merchant_quota_v1beta_quota_proto_rawDesc = []byte{ + 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x2f, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, + 0x6f, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x22, 0xee, 0x02, + 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x71, + 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x31, 0x0a, 0x12, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x10, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x66, 0xea, 0x41, 0x63, 0x0a, 0x25, 0x6d, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x21, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x32, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x81, + 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1d, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x75, 0x62, 0x61, 0x70, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x06, 0x73, 0x75, 0x62, 0x61, 0x70, 0x69, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x22, 0xa5, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x61, + 0x70, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xa5, 0x02, 0x0a, 0x0c, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xcb, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x72, 0x63, + 0x68, 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x72, 0x63, 0x68, + 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x71, 0x75, 0x6f, + 0x74, 0x61, 0x73, 0x1a, 0x47, 0xca, 0x41, 0x1a, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, + 0x61, 0x70, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0xd2, 0x41, 0x27, 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, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0xbb, 0x01, 0xea, + 0x41, 0x38, 0x0a, 0x22, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x61, 0x70, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, + 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x2f, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x70, 0x62, 0x3b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescOnce sync.Once + file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescData = file_google_shopping_merchant_quota_v1beta_quota_proto_rawDesc +) + +func file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescGZIP() []byte { + file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescOnce.Do(func() { + file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescData) + }) + return file_google_shopping_merchant_quota_v1beta_quota_proto_rawDescData +} + +var file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_shopping_merchant_quota_v1beta_quota_proto_goTypes = []interface{}{ + (*QuotaGroup)(nil), // 0: google.shopping.merchant.quota.v1beta.QuotaGroup + (*MethodDetails)(nil), // 1: google.shopping.merchant.quota.v1beta.MethodDetails + (*ListQuotaGroupsRequest)(nil), // 2: google.shopping.merchant.quota.v1beta.ListQuotaGroupsRequest + (*ListQuotaGroupsResponse)(nil), // 3: google.shopping.merchant.quota.v1beta.ListQuotaGroupsResponse +} +var file_google_shopping_merchant_quota_v1beta_quota_proto_depIdxs = []int32{ + 1, // 0: google.shopping.merchant.quota.v1beta.QuotaGroup.method_details:type_name -> google.shopping.merchant.quota.v1beta.MethodDetails + 0, // 1: google.shopping.merchant.quota.v1beta.ListQuotaGroupsResponse.quota_groups:type_name -> google.shopping.merchant.quota.v1beta.QuotaGroup + 2, // 2: google.shopping.merchant.quota.v1beta.QuotaService.ListQuotaGroups:input_type -> google.shopping.merchant.quota.v1beta.ListQuotaGroupsRequest + 3, // 3: google.shopping.merchant.quota.v1beta.QuotaService.ListQuotaGroups:output_type -> google.shopping.merchant.quota.v1beta.ListQuotaGroupsResponse + 3, // [3:4] is the sub-list for method output_type + 2, // [2:3] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_shopping_merchant_quota_v1beta_quota_proto_init() } +func file_google_shopping_merchant_quota_v1beta_quota_proto_init() { + if File_google_shopping_merchant_quota_v1beta_quota_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuotaGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MethodDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListQuotaGroupsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListQuotaGroupsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_shopping_merchant_quota_v1beta_quota_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_shopping_merchant_quota_v1beta_quota_proto_goTypes, + DependencyIndexes: file_google_shopping_merchant_quota_v1beta_quota_proto_depIdxs, + MessageInfos: file_google_shopping_merchant_quota_v1beta_quota_proto_msgTypes, + }.Build() + File_google_shopping_merchant_quota_v1beta_quota_proto = out.File + file_google_shopping_merchant_quota_v1beta_quota_proto_rawDesc = nil + file_google_shopping_merchant_quota_v1beta_quota_proto_goTypes = nil + file_google_shopping_merchant_quota_v1beta_quota_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 + +// QuotaServiceClient is the client API for QuotaService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QuotaServiceClient interface { + // Lists the daily call quota and usage per group for your Merchant + // Center account. + ListQuotaGroups(ctx context.Context, in *ListQuotaGroupsRequest, opts ...grpc.CallOption) (*ListQuotaGroupsResponse, error) +} + +type quotaServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewQuotaServiceClient(cc grpc.ClientConnInterface) QuotaServiceClient { + return "aServiceClient{cc} +} + +func (c *quotaServiceClient) ListQuotaGroups(ctx context.Context, in *ListQuotaGroupsRequest, opts ...grpc.CallOption) (*ListQuotaGroupsResponse, error) { + out := new(ListQuotaGroupsResponse) + err := c.cc.Invoke(ctx, "/google.shopping.merchant.quota.v1beta.QuotaService/ListQuotaGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// QuotaServiceServer is the server API for QuotaService service. +type QuotaServiceServer interface { + // Lists the daily call quota and usage per group for your Merchant + // Center account. + ListQuotaGroups(context.Context, *ListQuotaGroupsRequest) (*ListQuotaGroupsResponse, error) +} + +// UnimplementedQuotaServiceServer can be embedded to have forward compatible implementations. +type UnimplementedQuotaServiceServer struct { +} + +func (*UnimplementedQuotaServiceServer) ListQuotaGroups(context.Context, *ListQuotaGroupsRequest) (*ListQuotaGroupsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListQuotaGroups not implemented") +} + +func RegisterQuotaServiceServer(s *grpc.Server, srv QuotaServiceServer) { + s.RegisterService(&_QuotaService_serviceDesc, srv) +} + +func _QuotaService_ListQuotaGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListQuotaGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QuotaServiceServer).ListQuotaGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.shopping.merchant.quota.v1beta.QuotaService/ListQuotaGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QuotaServiceServer).ListQuotaGroups(ctx, req.(*ListQuotaGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _QuotaService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.shopping.merchant.quota.v1beta.QuotaService", + HandlerType: (*QuotaServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListQuotaGroups", + Handler: _QuotaService_ListQuotaGroups_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/shopping/merchant/quota/v1beta/quota.proto", +} diff --git a/shopping/merchant/quota/apiv1beta/version.go b/shopping/merchant/quota/apiv1beta/version.go new file mode 100644 index 00000000000..c83f4b16b76 --- /dev/null +++ b/shopping/merchant/quota/apiv1beta/version.go @@ -0,0 +1,23 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. + +package quota + +import "cloud.google.com/go/shopping/internal" + +func init() { + versionClient = internal.Version +}