1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/cloud/dialogflow/cx/v3beta1/session.proto 20 21package cx 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 status "google.golang.org/genproto/googleapis/rpc/status" 30 latlng "google.golang.org/genproto/googleapis/type/latlng" 31 grpc "google.golang.org/grpc" 32 codes "google.golang.org/grpc/codes" 33 status1 "google.golang.org/grpc/status" 34 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 35 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 36 durationpb "google.golang.org/protobuf/types/known/durationpb" 37 structpb "google.golang.org/protobuf/types/known/structpb" 38) 39 40const ( 41 // Verify that this generated code is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 43 // Verify that runtime/protoimpl is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 45) 46 47// Represents different DetectIntentResponse types. 48type DetectIntentResponse_ResponseType int32 49 50const ( 51 // Not specified. This should never happen. 52 DetectIntentResponse_RESPONSE_TYPE_UNSPECIFIED DetectIntentResponse_ResponseType = 0 53 // Partial response. e.g. Aggregated responses in a Fulfillment that enables 54 // `return_partial_response` can be returned as partial response. 55 // WARNING: partial response is not eligible for barge-in. 56 DetectIntentResponse_PARTIAL DetectIntentResponse_ResponseType = 1 57 // Final response. 58 DetectIntentResponse_FINAL DetectIntentResponse_ResponseType = 2 59) 60 61// Enum value maps for DetectIntentResponse_ResponseType. 62var ( 63 DetectIntentResponse_ResponseType_name = map[int32]string{ 64 0: "RESPONSE_TYPE_UNSPECIFIED", 65 1: "PARTIAL", 66 2: "FINAL", 67 } 68 DetectIntentResponse_ResponseType_value = map[string]int32{ 69 "RESPONSE_TYPE_UNSPECIFIED": 0, 70 "PARTIAL": 1, 71 "FINAL": 2, 72 } 73) 74 75func (x DetectIntentResponse_ResponseType) Enum() *DetectIntentResponse_ResponseType { 76 p := new(DetectIntentResponse_ResponseType) 77 *p = x 78 return p 79} 80 81func (x DetectIntentResponse_ResponseType) String() string { 82 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 83} 84 85func (DetectIntentResponse_ResponseType) Descriptor() protoreflect.EnumDescriptor { 86 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[0].Descriptor() 87} 88 89func (DetectIntentResponse_ResponseType) Type() protoreflect.EnumType { 90 return &file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[0] 91} 92 93func (x DetectIntentResponse_ResponseType) Number() protoreflect.EnumNumber { 94 return protoreflect.EnumNumber(x) 95} 96 97// Deprecated: Use DetectIntentResponse_ResponseType.Descriptor instead. 98func (DetectIntentResponse_ResponseType) EnumDescriptor() ([]byte, []int) { 99 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{1, 0} 100} 101 102// Type of the response message. 103type StreamingRecognitionResult_MessageType int32 104 105const ( 106 // Not specified. Should never be used. 107 StreamingRecognitionResult_MESSAGE_TYPE_UNSPECIFIED StreamingRecognitionResult_MessageType = 0 108 // Message contains a (possibly partial) transcript. 109 StreamingRecognitionResult_TRANSCRIPT StreamingRecognitionResult_MessageType = 1 110 // Event indicates that the server has detected the end of the user's speech 111 // utterance and expects no additional speech. Therefore, the server will 112 // not process additional audio (although it may subsequently return 113 // additional results). The client should stop sending additional audio 114 // data, half-close the gRPC connection, and wait for any additional results 115 // until the server closes the gRPC connection. This message is only sent if 116 // [`single_utterance`][google.cloud.dialogflow.cx.v3beta1.InputAudioConfig.single_utterance] was set to 117 // `true`, and is not used otherwise. 118 StreamingRecognitionResult_END_OF_SINGLE_UTTERANCE StreamingRecognitionResult_MessageType = 2 119) 120 121// Enum value maps for StreamingRecognitionResult_MessageType. 122var ( 123 StreamingRecognitionResult_MessageType_name = map[int32]string{ 124 0: "MESSAGE_TYPE_UNSPECIFIED", 125 1: "TRANSCRIPT", 126 2: "END_OF_SINGLE_UTTERANCE", 127 } 128 StreamingRecognitionResult_MessageType_value = map[string]int32{ 129 "MESSAGE_TYPE_UNSPECIFIED": 0, 130 "TRANSCRIPT": 1, 131 "END_OF_SINGLE_UTTERANCE": 2, 132 } 133) 134 135func (x StreamingRecognitionResult_MessageType) Enum() *StreamingRecognitionResult_MessageType { 136 p := new(StreamingRecognitionResult_MessageType) 137 *p = x 138 return p 139} 140 141func (x StreamingRecognitionResult_MessageType) String() string { 142 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 143} 144 145func (StreamingRecognitionResult_MessageType) Descriptor() protoreflect.EnumDescriptor { 146 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[1].Descriptor() 147} 148 149func (StreamingRecognitionResult_MessageType) Type() protoreflect.EnumType { 150 return &file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[1] 151} 152 153func (x StreamingRecognitionResult_MessageType) Number() protoreflect.EnumNumber { 154 return protoreflect.EnumNumber(x) 155} 156 157// Deprecated: Use StreamingRecognitionResult_MessageType.Descriptor instead. 158func (StreamingRecognitionResult_MessageType) EnumDescriptor() ([]byte, []int) { 159 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{4, 0} 160} 161 162// Type of a Match. 163type Match_MatchType int32 164 165const ( 166 // Not specified. Should never be used. 167 Match_MATCH_TYPE_UNSPECIFIED Match_MatchType = 0 168 // The query was matched to an intent. 169 Match_INTENT Match_MatchType = 1 170 // The query directly triggered an intent. 171 Match_DIRECT_INTENT Match_MatchType = 2 172 // The query was used for parameter filling. 173 Match_PARAMETER_FILLING Match_MatchType = 3 174 // No match was found for the query. 175 Match_NO_MATCH Match_MatchType = 4 176 // Indicates an empty query. 177 Match_NO_INPUT Match_MatchType = 5 178 // The query directly triggered an event. 179 Match_EVENT Match_MatchType = 6 180) 181 182// Enum value maps for Match_MatchType. 183var ( 184 Match_MatchType_name = map[int32]string{ 185 0: "MATCH_TYPE_UNSPECIFIED", 186 1: "INTENT", 187 2: "DIRECT_INTENT", 188 3: "PARAMETER_FILLING", 189 4: "NO_MATCH", 190 5: "NO_INPUT", 191 6: "EVENT", 192 } 193 Match_MatchType_value = map[string]int32{ 194 "MATCH_TYPE_UNSPECIFIED": 0, 195 "INTENT": 1, 196 "DIRECT_INTENT": 2, 197 "PARAMETER_FILLING": 3, 198 "NO_MATCH": 4, 199 "NO_INPUT": 5, 200 "EVENT": 6, 201 } 202) 203 204func (x Match_MatchType) Enum() *Match_MatchType { 205 p := new(Match_MatchType) 206 *p = x 207 return p 208} 209 210func (x Match_MatchType) String() string { 211 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 212} 213 214func (Match_MatchType) Descriptor() protoreflect.EnumDescriptor { 215 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[2].Descriptor() 216} 217 218func (Match_MatchType) Type() protoreflect.EnumType { 219 return &file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes[2] 220} 221 222func (x Match_MatchType) Number() protoreflect.EnumNumber { 223 return protoreflect.EnumNumber(x) 224} 225 226// Deprecated: Use Match_MatchType.Descriptor instead. 227func (Match_MatchType) EnumDescriptor() ([]byte, []int) { 228 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{13, 0} 229} 230 231// The request to detect user's intent. 232type DetectIntentRequest struct { 233 state protoimpl.MessageState 234 sizeCache protoimpl.SizeCache 235 unknownFields protoimpl.UnknownFields 236 237 // Required. The name of the session this query is sent to. 238 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 239 // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location 240 // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`. 241 // If `Environment ID` is not specified, we assume default 'draft' 242 // environment. 243 // It's up to the API caller to choose an appropriate `Session ID`. It can be 244 // a random number or some type of session identifiers (preferably hashed). 245 // The length of the `Session ID` must not exceed 36 characters. 246 // 247 // For more information, see the [sessions 248 // guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). 249 // 250 // Note: Always use agent versions for production traffic. 251 // See [Versions and 252 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 253 Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` 254 // The parameters of this query. 255 QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"` 256 // Required. The input specification. 257 QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"` 258 // Instructs the speech synthesizer how to generate the output audio. 259 OutputAudioConfig *OutputAudioConfig `protobuf:"bytes,4,opt,name=output_audio_config,json=outputAudioConfig,proto3" json:"output_audio_config,omitempty"` 260} 261 262func (x *DetectIntentRequest) Reset() { 263 *x = DetectIntentRequest{} 264 if protoimpl.UnsafeEnabled { 265 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[0] 266 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 267 ms.StoreMessageInfo(mi) 268 } 269} 270 271func (x *DetectIntentRequest) String() string { 272 return protoimpl.X.MessageStringOf(x) 273} 274 275func (*DetectIntentRequest) ProtoMessage() {} 276 277func (x *DetectIntentRequest) ProtoReflect() protoreflect.Message { 278 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[0] 279 if protoimpl.UnsafeEnabled && x != nil { 280 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 281 if ms.LoadMessageInfo() == nil { 282 ms.StoreMessageInfo(mi) 283 } 284 return ms 285 } 286 return mi.MessageOf(x) 287} 288 289// Deprecated: Use DetectIntentRequest.ProtoReflect.Descriptor instead. 290func (*DetectIntentRequest) Descriptor() ([]byte, []int) { 291 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{0} 292} 293 294func (x *DetectIntentRequest) GetSession() string { 295 if x != nil { 296 return x.Session 297 } 298 return "" 299} 300 301func (x *DetectIntentRequest) GetQueryParams() *QueryParameters { 302 if x != nil { 303 return x.QueryParams 304 } 305 return nil 306} 307 308func (x *DetectIntentRequest) GetQueryInput() *QueryInput { 309 if x != nil { 310 return x.QueryInput 311 } 312 return nil 313} 314 315func (x *DetectIntentRequest) GetOutputAudioConfig() *OutputAudioConfig { 316 if x != nil { 317 return x.OutputAudioConfig 318 } 319 return nil 320} 321 322// The message returned from the DetectIntent method. 323type DetectIntentResponse struct { 324 state protoimpl.MessageState 325 sizeCache protoimpl.SizeCache 326 unknownFields protoimpl.UnknownFields 327 328 // Output only. The unique identifier of the response. It can be used to 329 // locate a response in the training example set or for reporting issues. 330 ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"` 331 // The result of the conversational query. 332 QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"` 333 // The audio data bytes encoded as specified in the request. 334 // Note: The output audio is generated based on the values of default platform 335 // text responses found in the 336 // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If 337 // multiple default text responses exist, they will be concatenated when 338 // generating audio. If no default platform text responses exist, the 339 // generated audio content will be empty. 340 // 341 // In some scenarios, multiple output audio fields may be present in the 342 // response structure. In these cases, only the top-most-level audio output 343 // has content. 344 OutputAudio []byte `protobuf:"bytes,4,opt,name=output_audio,json=outputAudio,proto3" json:"output_audio,omitempty"` 345 // The config used by the speech synthesizer to generate the output audio. 346 OutputAudioConfig *OutputAudioConfig `protobuf:"bytes,5,opt,name=output_audio_config,json=outputAudioConfig,proto3" json:"output_audio_config,omitempty"` 347 // Response type. 348 ResponseType DetectIntentResponse_ResponseType `protobuf:"varint,6,opt,name=response_type,json=responseType,proto3,enum=google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse_ResponseType" json:"response_type,omitempty"` 349 // Indicates whether the partial response can be cancelled when a later 350 // response arrives. e.g. if the agent specified some music as partial 351 // response, it can be cancelled. 352 AllowCancellation bool `protobuf:"varint,7,opt,name=allow_cancellation,json=allowCancellation,proto3" json:"allow_cancellation,omitempty"` 353} 354 355func (x *DetectIntentResponse) Reset() { 356 *x = DetectIntentResponse{} 357 if protoimpl.UnsafeEnabled { 358 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[1] 359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 360 ms.StoreMessageInfo(mi) 361 } 362} 363 364func (x *DetectIntentResponse) String() string { 365 return protoimpl.X.MessageStringOf(x) 366} 367 368func (*DetectIntentResponse) ProtoMessage() {} 369 370func (x *DetectIntentResponse) ProtoReflect() protoreflect.Message { 371 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[1] 372 if protoimpl.UnsafeEnabled && x != nil { 373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 374 if ms.LoadMessageInfo() == nil { 375 ms.StoreMessageInfo(mi) 376 } 377 return ms 378 } 379 return mi.MessageOf(x) 380} 381 382// Deprecated: Use DetectIntentResponse.ProtoReflect.Descriptor instead. 383func (*DetectIntentResponse) Descriptor() ([]byte, []int) { 384 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{1} 385} 386 387func (x *DetectIntentResponse) GetResponseId() string { 388 if x != nil { 389 return x.ResponseId 390 } 391 return "" 392} 393 394func (x *DetectIntentResponse) GetQueryResult() *QueryResult { 395 if x != nil { 396 return x.QueryResult 397 } 398 return nil 399} 400 401func (x *DetectIntentResponse) GetOutputAudio() []byte { 402 if x != nil { 403 return x.OutputAudio 404 } 405 return nil 406} 407 408func (x *DetectIntentResponse) GetOutputAudioConfig() *OutputAudioConfig { 409 if x != nil { 410 return x.OutputAudioConfig 411 } 412 return nil 413} 414 415func (x *DetectIntentResponse) GetResponseType() DetectIntentResponse_ResponseType { 416 if x != nil { 417 return x.ResponseType 418 } 419 return DetectIntentResponse_RESPONSE_TYPE_UNSPECIFIED 420} 421 422func (x *DetectIntentResponse) GetAllowCancellation() bool { 423 if x != nil { 424 return x.AllowCancellation 425 } 426 return false 427} 428 429// The top-level message sent by the client to the 430// [Sessions.StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent] method. 431// 432// Multiple request messages should be sent in order: 433// 434// 1. The first message must contain 435// [session][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.session], 436// [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] plus optionally 437// [query_params][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params]. If the client 438// wants to receive an audio response, it should also contain 439// [output_audio_config][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.output_audio_config]. 440// 441// 2. If [query_input][google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input] was set to 442// [query_input.audio.config][google.cloud.dialogflow.cx.v3beta1.AudioInput.config], all subsequent messages 443// must contain [query_input.audio.audio][google.cloud.dialogflow.cx.v3beta1.AudioInput.audio] to continue with 444// Speech recognition. 445// If you decide to rather detect an intent from text 446// input after you already started Speech recognition, please send a message 447// with [query_input.text][google.cloud.dialogflow.cx.v3beta1.QueryInput.text]. 448// 449// However, note that: 450// 451// * Dialogflow will bill you for the audio duration so far. 452// * Dialogflow discards all Speech recognition results in favor of the 453// input text. 454// * Dialogflow will use the language code from the first message. 455// 456// After you sent all input, you must half-close or abort the request stream. 457type StreamingDetectIntentRequest struct { 458 state protoimpl.MessageState 459 sizeCache protoimpl.SizeCache 460 unknownFields protoimpl.UnknownFields 461 462 // The name of the session this query is sent to. 463 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 464 // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location 465 // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`. 466 // If `Environment ID` is not specified, we assume default 'draft' 467 // environment. 468 // It's up to the API caller to choose an appropriate `Session ID`. It can be 469 // a random number or some type of session identifiers (preferably hashed). 470 // The length of the `Session ID` must not exceed 36 characters. 471 // Note: session must be set in the first request. 472 // 473 // For more information, see the [sessions 474 // guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). 475 // 476 // Note: Always use agent versions for production traffic. 477 // See [Versions and 478 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 479 Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` 480 // The parameters of this query. 481 QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"` 482 // Required. The input specification. 483 QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"` 484 // Instructs the speech synthesizer how to generate the output audio. 485 OutputAudioConfig *OutputAudioConfig `protobuf:"bytes,4,opt,name=output_audio_config,json=outputAudioConfig,proto3" json:"output_audio_config,omitempty"` 486 // Enable partial detect intent response. If this flag is not enabled, 487 // response stream still contains only one final `DetectIntentResponse` even 488 // if some `Fulfillment`s in the agent have been configured to return partial 489 // responses. 490 EnablePartialResponse bool `protobuf:"varint,5,opt,name=enable_partial_response,json=enablePartialResponse,proto3" json:"enable_partial_response,omitempty"` 491} 492 493func (x *StreamingDetectIntentRequest) Reset() { 494 *x = StreamingDetectIntentRequest{} 495 if protoimpl.UnsafeEnabled { 496 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[2] 497 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 498 ms.StoreMessageInfo(mi) 499 } 500} 501 502func (x *StreamingDetectIntentRequest) String() string { 503 return protoimpl.X.MessageStringOf(x) 504} 505 506func (*StreamingDetectIntentRequest) ProtoMessage() {} 507 508func (x *StreamingDetectIntentRequest) ProtoReflect() protoreflect.Message { 509 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[2] 510 if protoimpl.UnsafeEnabled && x != nil { 511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 512 if ms.LoadMessageInfo() == nil { 513 ms.StoreMessageInfo(mi) 514 } 515 return ms 516 } 517 return mi.MessageOf(x) 518} 519 520// Deprecated: Use StreamingDetectIntentRequest.ProtoReflect.Descriptor instead. 521func (*StreamingDetectIntentRequest) Descriptor() ([]byte, []int) { 522 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{2} 523} 524 525func (x *StreamingDetectIntentRequest) GetSession() string { 526 if x != nil { 527 return x.Session 528 } 529 return "" 530} 531 532func (x *StreamingDetectIntentRequest) GetQueryParams() *QueryParameters { 533 if x != nil { 534 return x.QueryParams 535 } 536 return nil 537} 538 539func (x *StreamingDetectIntentRequest) GetQueryInput() *QueryInput { 540 if x != nil { 541 return x.QueryInput 542 } 543 return nil 544} 545 546func (x *StreamingDetectIntentRequest) GetOutputAudioConfig() *OutputAudioConfig { 547 if x != nil { 548 return x.OutputAudioConfig 549 } 550 return nil 551} 552 553func (x *StreamingDetectIntentRequest) GetEnablePartialResponse() bool { 554 if x != nil { 555 return x.EnablePartialResponse 556 } 557 return false 558} 559 560// The top-level message returned from the 561// [StreamingDetectIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent] method. 562// 563// Multiple response messages (N) can be returned in order. 564// 565// The first (N-1) responses set either the `recognition_result` or 566// `detect_intent_response` field, depending on the request: 567// 568// * If the `StreamingDetectIntentRequest.query_input.audio` field was 569// set, and the `StreamingDetectIntentRequest.enable_partial_response` 570// field was false, the `recognition_result` field is populated for each 571// of the (N-1) responses. 572// See the [StreamingRecognitionResult][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult] message for details 573// about the result message sequence. 574// 575// * If the `StreamingDetectIntentRequest.enable_partial_response` field was 576// true, the `detect_intent_response` field is populated for each 577// of the (N-1) responses, where 1 <= N <= 4. 578// These responses set the [DetectIntentResponse.response_type][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.response_type] field 579// to `PARTIAL`. 580// 581// For the final Nth response message, the `detect_intent_response` is fully 582// populated, and [DetectIntentResponse.response_type][google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.response_type] is set to `FINAL`. 583type StreamingDetectIntentResponse struct { 584 state protoimpl.MessageState 585 sizeCache protoimpl.SizeCache 586 unknownFields protoimpl.UnknownFields 587 588 // The output response. 589 // 590 // Types that are assignable to Response: 591 // *StreamingDetectIntentResponse_RecognitionResult 592 // *StreamingDetectIntentResponse_DetectIntentResponse 593 Response isStreamingDetectIntentResponse_Response `protobuf_oneof:"response"` 594} 595 596func (x *StreamingDetectIntentResponse) Reset() { 597 *x = StreamingDetectIntentResponse{} 598 if protoimpl.UnsafeEnabled { 599 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[3] 600 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 601 ms.StoreMessageInfo(mi) 602 } 603} 604 605func (x *StreamingDetectIntentResponse) String() string { 606 return protoimpl.X.MessageStringOf(x) 607} 608 609func (*StreamingDetectIntentResponse) ProtoMessage() {} 610 611func (x *StreamingDetectIntentResponse) ProtoReflect() protoreflect.Message { 612 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[3] 613 if protoimpl.UnsafeEnabled && x != nil { 614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 615 if ms.LoadMessageInfo() == nil { 616 ms.StoreMessageInfo(mi) 617 } 618 return ms 619 } 620 return mi.MessageOf(x) 621} 622 623// Deprecated: Use StreamingDetectIntentResponse.ProtoReflect.Descriptor instead. 624func (*StreamingDetectIntentResponse) Descriptor() ([]byte, []int) { 625 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{3} 626} 627 628func (m *StreamingDetectIntentResponse) GetResponse() isStreamingDetectIntentResponse_Response { 629 if m != nil { 630 return m.Response 631 } 632 return nil 633} 634 635func (x *StreamingDetectIntentResponse) GetRecognitionResult() *StreamingRecognitionResult { 636 if x, ok := x.GetResponse().(*StreamingDetectIntentResponse_RecognitionResult); ok { 637 return x.RecognitionResult 638 } 639 return nil 640} 641 642func (x *StreamingDetectIntentResponse) GetDetectIntentResponse() *DetectIntentResponse { 643 if x, ok := x.GetResponse().(*StreamingDetectIntentResponse_DetectIntentResponse); ok { 644 return x.DetectIntentResponse 645 } 646 return nil 647} 648 649type isStreamingDetectIntentResponse_Response interface { 650 isStreamingDetectIntentResponse_Response() 651} 652 653type StreamingDetectIntentResponse_RecognitionResult struct { 654 // The result of speech recognition. 655 RecognitionResult *StreamingRecognitionResult `protobuf:"bytes,1,opt,name=recognition_result,json=recognitionResult,proto3,oneof"` 656} 657 658type StreamingDetectIntentResponse_DetectIntentResponse struct { 659 // The response from detect intent. 660 DetectIntentResponse *DetectIntentResponse `protobuf:"bytes,2,opt,name=detect_intent_response,json=detectIntentResponse,proto3,oneof"` 661} 662 663func (*StreamingDetectIntentResponse_RecognitionResult) isStreamingDetectIntentResponse_Response() {} 664 665func (*StreamingDetectIntentResponse_DetectIntentResponse) isStreamingDetectIntentResponse_Response() { 666} 667 668// Contains a speech recognition result corresponding to a portion of the audio 669// that is currently being processed or an indication that this is the end 670// of the single requested utterance. 671// 672// While end-user audio is being processed, Dialogflow sends a series of 673// results. Each result may contain a `transcript` value. A transcript 674// represents a portion of the utterance. While the recognizer is processing 675// audio, transcript values may be interim values or finalized values. 676// Once a transcript is finalized, the `is_final` value is set to true and 677// processing continues for the next transcript. 678// 679// If `StreamingDetectIntentRequest.query_input.audio.config.single_utterance` 680// was true, and the recognizer has completed processing audio, 681// the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the 682// following (last) result contains the last finalized transcript. 683// 684// The complete end-user utterance is determined by concatenating the 685// finalized transcript values received for the series of results. 686// 687// In the following example, single utterance is enabled. In the case where 688// single utterance is not enabled, result 7 would not occur. 689// 690// ``` 691// Num | transcript | message_type | is_final 692// --- | ----------------------- | ----------------------- | -------- 693// 1 | "tube" | TRANSCRIPT | false 694// 2 | "to be a" | TRANSCRIPT | false 695// 3 | "to be" | TRANSCRIPT | false 696// 4 | "to be or not to be" | TRANSCRIPT | true 697// 5 | "that's" | TRANSCRIPT | false 698// 6 | "that is | TRANSCRIPT | false 699// 7 | unset | END_OF_SINGLE_UTTERANCE | unset 700// 8 | " that is the question" | TRANSCRIPT | true 701// ``` 702// 703// Concatenating the finalized transcripts with `is_final` set to true, 704// the complete utterance becomes "to be or not to be that is the question". 705type StreamingRecognitionResult struct { 706 state protoimpl.MessageState 707 sizeCache protoimpl.SizeCache 708 unknownFields protoimpl.UnknownFields 709 710 // Type of the result message. 711 MessageType StreamingRecognitionResult_MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3,enum=google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult_MessageType" json:"message_type,omitempty"` 712 // Transcript text representing the words that the user spoke. 713 // Populated if and only if `message_type` = `TRANSCRIPT`. 714 Transcript string `protobuf:"bytes,2,opt,name=transcript,proto3" json:"transcript,omitempty"` 715 // If `false`, the `StreamingRecognitionResult` represents an 716 // interim result that may change. If `true`, the recognizer will not return 717 // any further hypotheses about this piece of the audio. May only be populated 718 // for `message_type` = `TRANSCRIPT`. 719 IsFinal bool `protobuf:"varint,3,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"` 720 // The Speech confidence between 0.0 and 1.0 for the current portion of audio. 721 // A higher number indicates an estimated greater likelihood that the 722 // recognized words are correct. The default of 0.0 is a sentinel value 723 // indicating that confidence was not set. 724 // 725 // This field is typically only provided if `is_final` is true and you should 726 // not rely on it being accurate or even set. 727 Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"` 728 // An estimate of the likelihood that the speech recognizer will 729 // not change its guess about this interim recognition result: 730 // * If the value is unspecified or 0.0, Dialogflow didn't compute the 731 // stability. In particular, Dialogflow will only provide stability for 732 // `TRANSCRIPT` results with `is_final = false`. 733 // * Otherwise, the value is in (0.0, 1.0] where 0.0 means completely 734 // unstable and 1.0 means completely stable. 735 Stability float32 `protobuf:"fixed32,6,opt,name=stability,proto3" json:"stability,omitempty"` 736 // Word-specific information for the words recognized by Speech in 737 // [transcript][google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.transcript]. Populated if and only if `message_type` = `TRANSCRIPT` and 738 // [InputAudioConfig.enable_word_info] is set. 739 SpeechWordInfo []*SpeechWordInfo `protobuf:"bytes,7,rep,name=speech_word_info,json=speechWordInfo,proto3" json:"speech_word_info,omitempty"` 740 // Time offset of the end of this Speech recognition result relative to the 741 // beginning of the audio. Only populated for `message_type` = 742 // `TRANSCRIPT`. 743 SpeechEndOffset *durationpb.Duration `protobuf:"bytes,8,opt,name=speech_end_offset,json=speechEndOffset,proto3" json:"speech_end_offset,omitempty"` 744 // Detected language code for the transcript. 745 LanguageCode string `protobuf:"bytes,10,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 746} 747 748func (x *StreamingRecognitionResult) Reset() { 749 *x = StreamingRecognitionResult{} 750 if protoimpl.UnsafeEnabled { 751 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[4] 752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 753 ms.StoreMessageInfo(mi) 754 } 755} 756 757func (x *StreamingRecognitionResult) String() string { 758 return protoimpl.X.MessageStringOf(x) 759} 760 761func (*StreamingRecognitionResult) ProtoMessage() {} 762 763func (x *StreamingRecognitionResult) ProtoReflect() protoreflect.Message { 764 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[4] 765 if protoimpl.UnsafeEnabled && x != nil { 766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 767 if ms.LoadMessageInfo() == nil { 768 ms.StoreMessageInfo(mi) 769 } 770 return ms 771 } 772 return mi.MessageOf(x) 773} 774 775// Deprecated: Use StreamingRecognitionResult.ProtoReflect.Descriptor instead. 776func (*StreamingRecognitionResult) Descriptor() ([]byte, []int) { 777 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{4} 778} 779 780func (x *StreamingRecognitionResult) GetMessageType() StreamingRecognitionResult_MessageType { 781 if x != nil { 782 return x.MessageType 783 } 784 return StreamingRecognitionResult_MESSAGE_TYPE_UNSPECIFIED 785} 786 787func (x *StreamingRecognitionResult) GetTranscript() string { 788 if x != nil { 789 return x.Transcript 790 } 791 return "" 792} 793 794func (x *StreamingRecognitionResult) GetIsFinal() bool { 795 if x != nil { 796 return x.IsFinal 797 } 798 return false 799} 800 801func (x *StreamingRecognitionResult) GetConfidence() float32 { 802 if x != nil { 803 return x.Confidence 804 } 805 return 0 806} 807 808func (x *StreamingRecognitionResult) GetStability() float32 { 809 if x != nil { 810 return x.Stability 811 } 812 return 0 813} 814 815func (x *StreamingRecognitionResult) GetSpeechWordInfo() []*SpeechWordInfo { 816 if x != nil { 817 return x.SpeechWordInfo 818 } 819 return nil 820} 821 822func (x *StreamingRecognitionResult) GetSpeechEndOffset() *durationpb.Duration { 823 if x != nil { 824 return x.SpeechEndOffset 825 } 826 return nil 827} 828 829func (x *StreamingRecognitionResult) GetLanguageCode() string { 830 if x != nil { 831 return x.LanguageCode 832 } 833 return "" 834} 835 836// Represents the parameters of a conversational query. 837type QueryParameters struct { 838 state protoimpl.MessageState 839 sizeCache protoimpl.SizeCache 840 unknownFields protoimpl.UnknownFields 841 842 // The time zone of this conversational query from the [time zone 843 // database](https://www.iana.org/time-zones), e.g., America/New_York, 844 // Europe/Paris. If not provided, the time zone specified in the agent is 845 // used. 846 TimeZone string `protobuf:"bytes,1,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` 847 // The geo location of this conversational query. 848 GeoLocation *latlng.LatLng `protobuf:"bytes,2,opt,name=geo_location,json=geoLocation,proto3" json:"geo_location,omitempty"` 849 // Additional session entity types to replace or extend developer entity types 850 // with. The entity synonyms apply to all languages and persist for the 851 // session of this query. 852 SessionEntityTypes []*SessionEntityType `protobuf:"bytes,3,rep,name=session_entity_types,json=sessionEntityTypes,proto3" json:"session_entity_types,omitempty"` 853 // This field can be used to pass custom data into the webhook associated with 854 // the agent. Arbitrary JSON objects are supported. 855 // Some integrations that query a Dialogflow agent may provide additional 856 // information in the payload. 857 // In particular, for the Dialogflow Phone Gateway integration, this field has 858 // the form: 859 // ``` 860 // { 861 // "telephony": { 862 // "caller_id": "+18558363987" 863 // } 864 // } 865 // ``` 866 Payload *structpb.Struct `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` 867 // Additional parameters to be put into [session 868 // parameters][SessionInfo.parameters]. To remove a 869 // parameter from the session, clients should explicitly set the parameter 870 // value to null. 871 // 872 // You can reference the session parameters in the agent with the following 873 // format: $session.params.parameter-id. 874 // 875 // Depending on your protocol or client library language, this is a 876 // map, associative array, symbol table, dictionary, or JSON object 877 // composed of a collection of (MapKey, MapValue) pairs: 878 // 879 // - MapKey type: string 880 // - MapKey value: parameter name 881 // - MapValue type: 882 // - If parameter's entity type is a composite entity: map 883 // - Else: depending on parameter value type, could be one of string, 884 // number, boolean, null, list or map 885 // - MapValue value: 886 // - If parameter's entity type is a composite entity: 887 // map from composite entity property names to property values 888 // - Else: parameter value 889 Parameters *structpb.Struct `protobuf:"bytes,5,opt,name=parameters,proto3" json:"parameters,omitempty"` 890 // The unique identifier of the [page][google.cloud.dialogflow.cx.v3beta1.Page] to override the [current 891 // page][QueryResult.current_page] in the session. 892 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 893 // ID>/flows/<Flow ID>/pages/<Page ID>`. 894 // 895 // If `current_page` is specified, the previous state of the session will be 896 // ignored by Dialogflow, including the [previous 897 // page][QueryResult.current_page] and the [previous session 898 // parameters][QueryResult.parameters]. 899 // In most cases, [current_page][google.cloud.dialogflow.cx.v3beta1.QueryParameters.current_page] and 900 // [parameters][google.cloud.dialogflow.cx.v3beta1.QueryParameters.parameters] should be configured together to 901 // direct a session to a specific state. 902 CurrentPage string `protobuf:"bytes,6,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` 903 // Whether to disable webhook calls for this request. 904 DisableWebhook bool `protobuf:"varint,7,opt,name=disable_webhook,json=disableWebhook,proto3" json:"disable_webhook,omitempty"` 905 // Configures whether sentiment analysis should be performed. If not 906 // provided, sentiment analysis is not performed. 907 AnalyzeQueryTextSentiment bool `protobuf:"varint,8,opt,name=analyze_query_text_sentiment,json=analyzeQueryTextSentiment,proto3" json:"analyze_query_text_sentiment,omitempty"` 908 // This field can be used to pass HTTP headers for a webhook 909 // call. These headers will be sent to webhook along with the headers that 910 // have been configured through Dialogflow web console. The headers defined 911 // within this field will overwrite the headers configured through Dialogflow 912 // console if there is a conflict. Header names are case-insensitive. 913 // Google's specified headers are not allowed. Including: "Host", 914 // "Content-Length", "Connection", "From", "User-Agent", "Accept-Encoding", 915 // "If-Modified-Since", "If-None-Match", "X-Forwarded-For", etc. 916 WebhookHeaders map[string]string `protobuf:"bytes,10,rep,name=webhook_headers,json=webhookHeaders,proto3" json:"webhook_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 917 // A list of flow versions to override for the request. 918 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 919 // ID>/flows/<Flow ID>/versions/<Version ID>`. 920 // 921 // If version 1 of flow X is included in this list, the traffic of 922 // flow X will go through version 1 regardless of the version configuration in 923 // the environment. Each flow can have at most one version specified in this 924 // list. 925 FlowVersions []string `protobuf:"bytes,14,rep,name=flow_versions,json=flowVersions,proto3" json:"flow_versions,omitempty"` 926} 927 928func (x *QueryParameters) Reset() { 929 *x = QueryParameters{} 930 if protoimpl.UnsafeEnabled { 931 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[5] 932 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 933 ms.StoreMessageInfo(mi) 934 } 935} 936 937func (x *QueryParameters) String() string { 938 return protoimpl.X.MessageStringOf(x) 939} 940 941func (*QueryParameters) ProtoMessage() {} 942 943func (x *QueryParameters) ProtoReflect() protoreflect.Message { 944 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[5] 945 if protoimpl.UnsafeEnabled && x != nil { 946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 947 if ms.LoadMessageInfo() == nil { 948 ms.StoreMessageInfo(mi) 949 } 950 return ms 951 } 952 return mi.MessageOf(x) 953} 954 955// Deprecated: Use QueryParameters.ProtoReflect.Descriptor instead. 956func (*QueryParameters) Descriptor() ([]byte, []int) { 957 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{5} 958} 959 960func (x *QueryParameters) GetTimeZone() string { 961 if x != nil { 962 return x.TimeZone 963 } 964 return "" 965} 966 967func (x *QueryParameters) GetGeoLocation() *latlng.LatLng { 968 if x != nil { 969 return x.GeoLocation 970 } 971 return nil 972} 973 974func (x *QueryParameters) GetSessionEntityTypes() []*SessionEntityType { 975 if x != nil { 976 return x.SessionEntityTypes 977 } 978 return nil 979} 980 981func (x *QueryParameters) GetPayload() *structpb.Struct { 982 if x != nil { 983 return x.Payload 984 } 985 return nil 986} 987 988func (x *QueryParameters) GetParameters() *structpb.Struct { 989 if x != nil { 990 return x.Parameters 991 } 992 return nil 993} 994 995func (x *QueryParameters) GetCurrentPage() string { 996 if x != nil { 997 return x.CurrentPage 998 } 999 return "" 1000} 1001 1002func (x *QueryParameters) GetDisableWebhook() bool { 1003 if x != nil { 1004 return x.DisableWebhook 1005 } 1006 return false 1007} 1008 1009func (x *QueryParameters) GetAnalyzeQueryTextSentiment() bool { 1010 if x != nil { 1011 return x.AnalyzeQueryTextSentiment 1012 } 1013 return false 1014} 1015 1016func (x *QueryParameters) GetWebhookHeaders() map[string]string { 1017 if x != nil { 1018 return x.WebhookHeaders 1019 } 1020 return nil 1021} 1022 1023func (x *QueryParameters) GetFlowVersions() []string { 1024 if x != nil { 1025 return x.FlowVersions 1026 } 1027 return nil 1028} 1029 1030// Represents the query input. It can contain one of: 1031// 1032// 1. A conversational query in the form of text. 1033// 1034// 2. An intent query that specifies which intent to trigger. 1035// 1036// 3. Natural language speech audio to be processed. 1037// 1038// 4. An event to be triggered. 1039// 1040type QueryInput struct { 1041 state protoimpl.MessageState 1042 sizeCache protoimpl.SizeCache 1043 unknownFields protoimpl.UnknownFields 1044 1045 // Required. The input specification. 1046 // 1047 // Types that are assignable to Input: 1048 // *QueryInput_Text 1049 // *QueryInput_Intent 1050 // *QueryInput_Audio 1051 // *QueryInput_Event 1052 // *QueryInput_Dtmf 1053 Input isQueryInput_Input `protobuf_oneof:"input"` 1054 // Required. The language of the input. See [Language 1055 // Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) 1056 // for a list of the currently supported language codes. Note that queries in 1057 // the same session do not necessarily need to specify the same language. 1058 LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 1059} 1060 1061func (x *QueryInput) Reset() { 1062 *x = QueryInput{} 1063 if protoimpl.UnsafeEnabled { 1064 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[6] 1065 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1066 ms.StoreMessageInfo(mi) 1067 } 1068} 1069 1070func (x *QueryInput) String() string { 1071 return protoimpl.X.MessageStringOf(x) 1072} 1073 1074func (*QueryInput) ProtoMessage() {} 1075 1076func (x *QueryInput) ProtoReflect() protoreflect.Message { 1077 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[6] 1078 if protoimpl.UnsafeEnabled && x != nil { 1079 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1080 if ms.LoadMessageInfo() == nil { 1081 ms.StoreMessageInfo(mi) 1082 } 1083 return ms 1084 } 1085 return mi.MessageOf(x) 1086} 1087 1088// Deprecated: Use QueryInput.ProtoReflect.Descriptor instead. 1089func (*QueryInput) Descriptor() ([]byte, []int) { 1090 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{6} 1091} 1092 1093func (m *QueryInput) GetInput() isQueryInput_Input { 1094 if m != nil { 1095 return m.Input 1096 } 1097 return nil 1098} 1099 1100func (x *QueryInput) GetText() *TextInput { 1101 if x, ok := x.GetInput().(*QueryInput_Text); ok { 1102 return x.Text 1103 } 1104 return nil 1105} 1106 1107func (x *QueryInput) GetIntent() *IntentInput { 1108 if x, ok := x.GetInput().(*QueryInput_Intent); ok { 1109 return x.Intent 1110 } 1111 return nil 1112} 1113 1114func (x *QueryInput) GetAudio() *AudioInput { 1115 if x, ok := x.GetInput().(*QueryInput_Audio); ok { 1116 return x.Audio 1117 } 1118 return nil 1119} 1120 1121func (x *QueryInput) GetEvent() *EventInput { 1122 if x, ok := x.GetInput().(*QueryInput_Event); ok { 1123 return x.Event 1124 } 1125 return nil 1126} 1127 1128func (x *QueryInput) GetDtmf() *DtmfInput { 1129 if x, ok := x.GetInput().(*QueryInput_Dtmf); ok { 1130 return x.Dtmf 1131 } 1132 return nil 1133} 1134 1135func (x *QueryInput) GetLanguageCode() string { 1136 if x != nil { 1137 return x.LanguageCode 1138 } 1139 return "" 1140} 1141 1142type isQueryInput_Input interface { 1143 isQueryInput_Input() 1144} 1145 1146type QueryInput_Text struct { 1147 // The natural language text to be processed. 1148 Text *TextInput `protobuf:"bytes,2,opt,name=text,proto3,oneof"` 1149} 1150 1151type QueryInput_Intent struct { 1152 // The intent to be triggered. 1153 Intent *IntentInput `protobuf:"bytes,3,opt,name=intent,proto3,oneof"` 1154} 1155 1156type QueryInput_Audio struct { 1157 // The natural language speech audio to be processed. 1158 Audio *AudioInput `protobuf:"bytes,5,opt,name=audio,proto3,oneof"` 1159} 1160 1161type QueryInput_Event struct { 1162 // The event to be triggered. 1163 Event *EventInput `protobuf:"bytes,6,opt,name=event,proto3,oneof"` 1164} 1165 1166type QueryInput_Dtmf struct { 1167 // The DTMF event to be handled. 1168 Dtmf *DtmfInput `protobuf:"bytes,7,opt,name=dtmf,proto3,oneof"` 1169} 1170 1171func (*QueryInput_Text) isQueryInput_Input() {} 1172 1173func (*QueryInput_Intent) isQueryInput_Input() {} 1174 1175func (*QueryInput_Audio) isQueryInput_Input() {} 1176 1177func (*QueryInput_Event) isQueryInput_Input() {} 1178 1179func (*QueryInput_Dtmf) isQueryInput_Input() {} 1180 1181// Represents the result of a conversational query. 1182type QueryResult struct { 1183 state protoimpl.MessageState 1184 sizeCache protoimpl.SizeCache 1185 unknownFields protoimpl.UnknownFields 1186 1187 // The original conversational query. 1188 // 1189 // Types that are assignable to Query: 1190 // *QueryResult_Text 1191 // *QueryResult_TriggerIntent 1192 // *QueryResult_Transcript 1193 // *QueryResult_TriggerEvent 1194 // *QueryResult_Dtmf 1195 Query isQueryResult_Query `protobuf_oneof:"query"` 1196 // The language that was triggered during intent detection. 1197 // See [Language 1198 // Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) 1199 // for a list of the currently supported language codes. 1200 LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 1201 // The collected [session parameters][google.cloud.dialogflow.cx.v3beta1.SessionInfo.parameters]. 1202 // 1203 // Depending on your protocol or client library language, this is a 1204 // map, associative array, symbol table, dictionary, or JSON object 1205 // composed of a collection of (MapKey, MapValue) pairs: 1206 // 1207 // - MapKey type: string 1208 // - MapKey value: parameter name 1209 // - MapValue type: 1210 // - If parameter's entity type is a composite entity: map 1211 // - Else: depending on parameter value type, could be one of string, 1212 // number, boolean, null, list or map 1213 // - MapValue value: 1214 // - If parameter's entity type is a composite entity: 1215 // map from composite entity property names to property values 1216 // - Else: parameter value 1217 Parameters *structpb.Struct `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` 1218 // The list of rich messages returned to the client. Responses vary from 1219 // simple text messages to more sophisticated, structured payloads used 1220 // to drive complex logic. 1221 ResponseMessages []*ResponseMessage `protobuf:"bytes,4,rep,name=response_messages,json=responseMessages,proto3" json:"response_messages,omitempty"` 1222 // The list of webhook call status in the order of call sequence. 1223 WebhookStatuses []*status.Status `protobuf:"bytes,13,rep,name=webhook_statuses,json=webhookStatuses,proto3" json:"webhook_statuses,omitempty"` 1224 // The list of webhook payload in [WebhookResponse.payload][google.cloud.dialogflow.cx.v3beta1.WebhookResponse.payload], in 1225 // the order of call sequence. If some webhook call fails or doesn't return 1226 // any payload, an empty `Struct` would be used instead. 1227 WebhookPayloads []*structpb.Struct `protobuf:"bytes,6,rep,name=webhook_payloads,json=webhookPayloads,proto3" json:"webhook_payloads,omitempty"` 1228 // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message, 1229 // including but not limited to `name` and `display_name`. 1230 CurrentPage *Page `protobuf:"bytes,7,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` 1231 // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the conversational query. Some, not all fields 1232 // are filled in this message, including but not limited to: `name` and 1233 // `display_name`. 1234 // This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead. 1235 // 1236 // Deprecated: Do not use. 1237 Intent *Intent `protobuf:"bytes,8,opt,name=intent,proto3" json:"intent,omitempty"` 1238 // The intent detection confidence. Values range from 0.0 (completely 1239 // uncertain) to 1.0 (completely certain). 1240 // This value is for informational purpose only and is only used to 1241 // help match the best intent within the classification threshold. 1242 // This value may change for the same end-user expression at any time due to a 1243 // model retraining or change in implementation. 1244 // This field is deprecated, please use [QueryResult.match][google.cloud.dialogflow.cx.v3beta1.QueryResult.match] instead. 1245 // 1246 // Deprecated: Do not use. 1247 IntentDetectionConfidence float32 `protobuf:"fixed32,9,opt,name=intent_detection_confidence,json=intentDetectionConfidence,proto3" json:"intent_detection_confidence,omitempty"` 1248 // Intent match result, could be an intent or an event. 1249 Match *Match `protobuf:"bytes,15,opt,name=match,proto3" json:"match,omitempty"` 1250 // The free-form diagnostic info. For example, this field could contain 1251 // webhook call latency. The string keys of the Struct's fields map can change 1252 // without notice. 1253 DiagnosticInfo *structpb.Struct `protobuf:"bytes,10,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"` 1254 // The sentiment analyss result, which depends on 1255 // [`analyze_query_text_sentiment`] 1256 // [google.cloud.dialogflow.cx.v3beta1.QueryParameters.analyze_query_text_sentiment], specified in the request. 1257 SentimentAnalysisResult *SentimentAnalysisResult `protobuf:"bytes,17,opt,name=sentiment_analysis_result,json=sentimentAnalysisResult,proto3" json:"sentiment_analysis_result,omitempty"` 1258} 1259 1260func (x *QueryResult) Reset() { 1261 *x = QueryResult{} 1262 if protoimpl.UnsafeEnabled { 1263 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[7] 1264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1265 ms.StoreMessageInfo(mi) 1266 } 1267} 1268 1269func (x *QueryResult) String() string { 1270 return protoimpl.X.MessageStringOf(x) 1271} 1272 1273func (*QueryResult) ProtoMessage() {} 1274 1275func (x *QueryResult) ProtoReflect() protoreflect.Message { 1276 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[7] 1277 if protoimpl.UnsafeEnabled && x != nil { 1278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1279 if ms.LoadMessageInfo() == nil { 1280 ms.StoreMessageInfo(mi) 1281 } 1282 return ms 1283 } 1284 return mi.MessageOf(x) 1285} 1286 1287// Deprecated: Use QueryResult.ProtoReflect.Descriptor instead. 1288func (*QueryResult) Descriptor() ([]byte, []int) { 1289 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{7} 1290} 1291 1292func (m *QueryResult) GetQuery() isQueryResult_Query { 1293 if m != nil { 1294 return m.Query 1295 } 1296 return nil 1297} 1298 1299func (x *QueryResult) GetText() string { 1300 if x, ok := x.GetQuery().(*QueryResult_Text); ok { 1301 return x.Text 1302 } 1303 return "" 1304} 1305 1306func (x *QueryResult) GetTriggerIntent() string { 1307 if x, ok := x.GetQuery().(*QueryResult_TriggerIntent); ok { 1308 return x.TriggerIntent 1309 } 1310 return "" 1311} 1312 1313func (x *QueryResult) GetTranscript() string { 1314 if x, ok := x.GetQuery().(*QueryResult_Transcript); ok { 1315 return x.Transcript 1316 } 1317 return "" 1318} 1319 1320func (x *QueryResult) GetTriggerEvent() string { 1321 if x, ok := x.GetQuery().(*QueryResult_TriggerEvent); ok { 1322 return x.TriggerEvent 1323 } 1324 return "" 1325} 1326 1327func (x *QueryResult) GetDtmf() *DtmfInput { 1328 if x, ok := x.GetQuery().(*QueryResult_Dtmf); ok { 1329 return x.Dtmf 1330 } 1331 return nil 1332} 1333 1334func (x *QueryResult) GetLanguageCode() string { 1335 if x != nil { 1336 return x.LanguageCode 1337 } 1338 return "" 1339} 1340 1341func (x *QueryResult) GetParameters() *structpb.Struct { 1342 if x != nil { 1343 return x.Parameters 1344 } 1345 return nil 1346} 1347 1348func (x *QueryResult) GetResponseMessages() []*ResponseMessage { 1349 if x != nil { 1350 return x.ResponseMessages 1351 } 1352 return nil 1353} 1354 1355func (x *QueryResult) GetWebhookStatuses() []*status.Status { 1356 if x != nil { 1357 return x.WebhookStatuses 1358 } 1359 return nil 1360} 1361 1362func (x *QueryResult) GetWebhookPayloads() []*structpb.Struct { 1363 if x != nil { 1364 return x.WebhookPayloads 1365 } 1366 return nil 1367} 1368 1369func (x *QueryResult) GetCurrentPage() *Page { 1370 if x != nil { 1371 return x.CurrentPage 1372 } 1373 return nil 1374} 1375 1376// Deprecated: Do not use. 1377func (x *QueryResult) GetIntent() *Intent { 1378 if x != nil { 1379 return x.Intent 1380 } 1381 return nil 1382} 1383 1384// Deprecated: Do not use. 1385func (x *QueryResult) GetIntentDetectionConfidence() float32 { 1386 if x != nil { 1387 return x.IntentDetectionConfidence 1388 } 1389 return 0 1390} 1391 1392func (x *QueryResult) GetMatch() *Match { 1393 if x != nil { 1394 return x.Match 1395 } 1396 return nil 1397} 1398 1399func (x *QueryResult) GetDiagnosticInfo() *structpb.Struct { 1400 if x != nil { 1401 return x.DiagnosticInfo 1402 } 1403 return nil 1404} 1405 1406func (x *QueryResult) GetSentimentAnalysisResult() *SentimentAnalysisResult { 1407 if x != nil { 1408 return x.SentimentAnalysisResult 1409 } 1410 return nil 1411} 1412 1413type isQueryResult_Query interface { 1414 isQueryResult_Query() 1415} 1416 1417type QueryResult_Text struct { 1418 // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field 1419 // will contain a copy of the text. 1420 Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` 1421} 1422 1423type QueryResult_TriggerIntent struct { 1424 // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will 1425 // contain a copy of the intent identifier. 1426 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1427 // ID>/intents/<Intent ID>`. 1428 TriggerIntent string `protobuf:"bytes,11,opt,name=trigger_intent,json=triggerIntent,proto3,oneof"` 1429} 1430 1431type QueryResult_Transcript struct { 1432 // If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input, 1433 // this field will contain the transcript for the audio. 1434 Transcript string `protobuf:"bytes,12,opt,name=transcript,proto3,oneof"` 1435} 1436 1437type QueryResult_TriggerEvent struct { 1438 // If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will contain 1439 // the name of the event. 1440 TriggerEvent string `protobuf:"bytes,14,opt,name=trigger_event,json=triggerEvent,proto3,oneof"` 1441} 1442 1443type QueryResult_Dtmf struct { 1444 // If a [DTMF][DTMFInput] was provided as input, this field will contain 1445 // a copy of the [DTMFInput][]. 1446 Dtmf *DtmfInput `protobuf:"bytes,23,opt,name=dtmf,proto3,oneof"` 1447} 1448 1449func (*QueryResult_Text) isQueryResult_Query() {} 1450 1451func (*QueryResult_TriggerIntent) isQueryResult_Query() {} 1452 1453func (*QueryResult_Transcript) isQueryResult_Query() {} 1454 1455func (*QueryResult_TriggerEvent) isQueryResult_Query() {} 1456 1457func (*QueryResult_Dtmf) isQueryResult_Query() {} 1458 1459// Represents the natural language text to be processed. 1460type TextInput struct { 1461 state protoimpl.MessageState 1462 sizeCache protoimpl.SizeCache 1463 unknownFields protoimpl.UnknownFields 1464 1465 // Required. The UTF-8 encoded natural language text to be processed. Text length must 1466 // not exceed 256 characters. 1467 Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` 1468} 1469 1470func (x *TextInput) Reset() { 1471 *x = TextInput{} 1472 if protoimpl.UnsafeEnabled { 1473 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[8] 1474 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1475 ms.StoreMessageInfo(mi) 1476 } 1477} 1478 1479func (x *TextInput) String() string { 1480 return protoimpl.X.MessageStringOf(x) 1481} 1482 1483func (*TextInput) ProtoMessage() {} 1484 1485func (x *TextInput) ProtoReflect() protoreflect.Message { 1486 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[8] 1487 if protoimpl.UnsafeEnabled && x != nil { 1488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1489 if ms.LoadMessageInfo() == nil { 1490 ms.StoreMessageInfo(mi) 1491 } 1492 return ms 1493 } 1494 return mi.MessageOf(x) 1495} 1496 1497// Deprecated: Use TextInput.ProtoReflect.Descriptor instead. 1498func (*TextInput) Descriptor() ([]byte, []int) { 1499 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{8} 1500} 1501 1502func (x *TextInput) GetText() string { 1503 if x != nil { 1504 return x.Text 1505 } 1506 return "" 1507} 1508 1509// Represents the intent to trigger programmatically rather than as a result of 1510// natural language processing. 1511type IntentInput struct { 1512 state protoimpl.MessageState 1513 sizeCache protoimpl.SizeCache 1514 unknownFields protoimpl.UnknownFields 1515 1516 // Required. The unique identifier of the intent. 1517 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1518 // ID>/intents/<Intent ID>`. 1519 Intent string `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"` 1520} 1521 1522func (x *IntentInput) Reset() { 1523 *x = IntentInput{} 1524 if protoimpl.UnsafeEnabled { 1525 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[9] 1526 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1527 ms.StoreMessageInfo(mi) 1528 } 1529} 1530 1531func (x *IntentInput) String() string { 1532 return protoimpl.X.MessageStringOf(x) 1533} 1534 1535func (*IntentInput) ProtoMessage() {} 1536 1537func (x *IntentInput) ProtoReflect() protoreflect.Message { 1538 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[9] 1539 if protoimpl.UnsafeEnabled && x != nil { 1540 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1541 if ms.LoadMessageInfo() == nil { 1542 ms.StoreMessageInfo(mi) 1543 } 1544 return ms 1545 } 1546 return mi.MessageOf(x) 1547} 1548 1549// Deprecated: Use IntentInput.ProtoReflect.Descriptor instead. 1550func (*IntentInput) Descriptor() ([]byte, []int) { 1551 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{9} 1552} 1553 1554func (x *IntentInput) GetIntent() string { 1555 if x != nil { 1556 return x.Intent 1557 } 1558 return "" 1559} 1560 1561// Represents the natural speech audio to be processed. 1562type AudioInput struct { 1563 state protoimpl.MessageState 1564 sizeCache protoimpl.SizeCache 1565 unknownFields protoimpl.UnknownFields 1566 1567 // Required. Instructs the speech recognizer how to process the speech audio. 1568 Config *InputAudioConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 1569 // The natural language speech audio to be processed. 1570 // A single request can contain up to 1 minute of speech audio data. 1571 // The [transcribed text][google.cloud.dialogflow.cx.v3beta1.QueryResult.transcript] cannot contain more than 256 1572 // bytes. 1573 // 1574 // For non-streaming audio detect intent, both `config` and `audio` must be 1575 // provided. 1576 // For streaming audio detect intent, `config` must be provided in 1577 // the first request and `audio` must be provided in all following requests. 1578 Audio []byte `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"` 1579} 1580 1581func (x *AudioInput) Reset() { 1582 *x = AudioInput{} 1583 if protoimpl.UnsafeEnabled { 1584 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[10] 1585 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1586 ms.StoreMessageInfo(mi) 1587 } 1588} 1589 1590func (x *AudioInput) String() string { 1591 return protoimpl.X.MessageStringOf(x) 1592} 1593 1594func (*AudioInput) ProtoMessage() {} 1595 1596func (x *AudioInput) ProtoReflect() protoreflect.Message { 1597 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[10] 1598 if protoimpl.UnsafeEnabled && x != nil { 1599 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1600 if ms.LoadMessageInfo() == nil { 1601 ms.StoreMessageInfo(mi) 1602 } 1603 return ms 1604 } 1605 return mi.MessageOf(x) 1606} 1607 1608// Deprecated: Use AudioInput.ProtoReflect.Descriptor instead. 1609func (*AudioInput) Descriptor() ([]byte, []int) { 1610 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{10} 1611} 1612 1613func (x *AudioInput) GetConfig() *InputAudioConfig { 1614 if x != nil { 1615 return x.Config 1616 } 1617 return nil 1618} 1619 1620func (x *AudioInput) GetAudio() []byte { 1621 if x != nil { 1622 return x.Audio 1623 } 1624 return nil 1625} 1626 1627// Represents the event to trigger. 1628type EventInput struct { 1629 state protoimpl.MessageState 1630 sizeCache protoimpl.SizeCache 1631 unknownFields protoimpl.UnknownFields 1632 1633 // Name of the event. 1634 Event string `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"` 1635} 1636 1637func (x *EventInput) Reset() { 1638 *x = EventInput{} 1639 if protoimpl.UnsafeEnabled { 1640 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[11] 1641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1642 ms.StoreMessageInfo(mi) 1643 } 1644} 1645 1646func (x *EventInput) String() string { 1647 return protoimpl.X.MessageStringOf(x) 1648} 1649 1650func (*EventInput) ProtoMessage() {} 1651 1652func (x *EventInput) ProtoReflect() protoreflect.Message { 1653 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[11] 1654 if protoimpl.UnsafeEnabled && x != nil { 1655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1656 if ms.LoadMessageInfo() == nil { 1657 ms.StoreMessageInfo(mi) 1658 } 1659 return ms 1660 } 1661 return mi.MessageOf(x) 1662} 1663 1664// Deprecated: Use EventInput.ProtoReflect.Descriptor instead. 1665func (*EventInput) Descriptor() ([]byte, []int) { 1666 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{11} 1667} 1668 1669func (x *EventInput) GetEvent() string { 1670 if x != nil { 1671 return x.Event 1672 } 1673 return "" 1674} 1675 1676// Represents the input for dtmf event. 1677type DtmfInput struct { 1678 state protoimpl.MessageState 1679 sizeCache protoimpl.SizeCache 1680 unknownFields protoimpl.UnknownFields 1681 1682 // The dtmf digits. 1683 Digits string `protobuf:"bytes,1,opt,name=digits,proto3" json:"digits,omitempty"` 1684 // The finish digit (if any). 1685 FinishDigit string `protobuf:"bytes,2,opt,name=finish_digit,json=finishDigit,proto3" json:"finish_digit,omitempty"` 1686} 1687 1688func (x *DtmfInput) Reset() { 1689 *x = DtmfInput{} 1690 if protoimpl.UnsafeEnabled { 1691 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[12] 1692 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1693 ms.StoreMessageInfo(mi) 1694 } 1695} 1696 1697func (x *DtmfInput) String() string { 1698 return protoimpl.X.MessageStringOf(x) 1699} 1700 1701func (*DtmfInput) ProtoMessage() {} 1702 1703func (x *DtmfInput) ProtoReflect() protoreflect.Message { 1704 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[12] 1705 if protoimpl.UnsafeEnabled && x != nil { 1706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1707 if ms.LoadMessageInfo() == nil { 1708 ms.StoreMessageInfo(mi) 1709 } 1710 return ms 1711 } 1712 return mi.MessageOf(x) 1713} 1714 1715// Deprecated: Use DtmfInput.ProtoReflect.Descriptor instead. 1716func (*DtmfInput) Descriptor() ([]byte, []int) { 1717 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{12} 1718} 1719 1720func (x *DtmfInput) GetDigits() string { 1721 if x != nil { 1722 return x.Digits 1723 } 1724 return "" 1725} 1726 1727func (x *DtmfInput) GetFinishDigit() string { 1728 if x != nil { 1729 return x.FinishDigit 1730 } 1731 return "" 1732} 1733 1734// Represents one match result of [MatchIntent][]. 1735type Match struct { 1736 state protoimpl.MessageState 1737 sizeCache protoimpl.SizeCache 1738 unknownFields protoimpl.UnknownFields 1739 1740 // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that matched the query. Some, not all fields are filled in 1741 // this message, including but not limited to: `name` and `display_name`. Only 1742 // filled for [`INTENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type. 1743 Intent *Intent `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"` 1744 // The event that matched the query. Only filled for 1745 // [`EVENT`][google.cloud.dialogflow.cx.v3beta1.Match.MatchType] match type. 1746 Event string `protobuf:"bytes,6,opt,name=event,proto3" json:"event,omitempty"` 1747 // The collection of parameters extracted from the query. 1748 // 1749 // Depending on your protocol or client library language, this is a 1750 // map, associative array, symbol table, dictionary, or JSON object 1751 // composed of a collection of (MapKey, MapValue) pairs: 1752 // 1753 // - MapKey type: string 1754 // - MapKey value: parameter name 1755 // - MapValue type: 1756 // - If parameter's entity type is a composite entity: map 1757 // - Else: depending on parameter value type, could be one of string, 1758 // number, boolean, null, list or map 1759 // - MapValue value: 1760 // - If parameter's entity type is a composite entity: 1761 // map from composite entity property names to property values 1762 // - Else: parameter value 1763 Parameters *structpb.Struct `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` 1764 // Final text input which was matched during MatchIntent. This value can be 1765 // different from original input sent in request because of spelling 1766 // correction or other processing. 1767 ResolvedInput string `protobuf:"bytes,3,opt,name=resolved_input,json=resolvedInput,proto3" json:"resolved_input,omitempty"` 1768 // Type of this [Match][google.cloud.dialogflow.cx.v3beta1.Match]. 1769 MatchType Match_MatchType `protobuf:"varint,4,opt,name=match_type,json=matchType,proto3,enum=google.cloud.dialogflow.cx.v3beta1.Match_MatchType" json:"match_type,omitempty"` 1770 // The confidence of this match. Values range from 0.0 (completely uncertain) 1771 // to 1.0 (completely certain). 1772 // This value is for informational purpose only and is only used to help match 1773 // the best intent within the classification threshold. This value may change 1774 // for the same end-user expression at any time due to a model retraining or 1775 // change in implementation. 1776 Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"` 1777} 1778 1779func (x *Match) Reset() { 1780 *x = Match{} 1781 if protoimpl.UnsafeEnabled { 1782 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[13] 1783 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1784 ms.StoreMessageInfo(mi) 1785 } 1786} 1787 1788func (x *Match) String() string { 1789 return protoimpl.X.MessageStringOf(x) 1790} 1791 1792func (*Match) ProtoMessage() {} 1793 1794func (x *Match) ProtoReflect() protoreflect.Message { 1795 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[13] 1796 if protoimpl.UnsafeEnabled && x != nil { 1797 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1798 if ms.LoadMessageInfo() == nil { 1799 ms.StoreMessageInfo(mi) 1800 } 1801 return ms 1802 } 1803 return mi.MessageOf(x) 1804} 1805 1806// Deprecated: Use Match.ProtoReflect.Descriptor instead. 1807func (*Match) Descriptor() ([]byte, []int) { 1808 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{13} 1809} 1810 1811func (x *Match) GetIntent() *Intent { 1812 if x != nil { 1813 return x.Intent 1814 } 1815 return nil 1816} 1817 1818func (x *Match) GetEvent() string { 1819 if x != nil { 1820 return x.Event 1821 } 1822 return "" 1823} 1824 1825func (x *Match) GetParameters() *structpb.Struct { 1826 if x != nil { 1827 return x.Parameters 1828 } 1829 return nil 1830} 1831 1832func (x *Match) GetResolvedInput() string { 1833 if x != nil { 1834 return x.ResolvedInput 1835 } 1836 return "" 1837} 1838 1839func (x *Match) GetMatchType() Match_MatchType { 1840 if x != nil { 1841 return x.MatchType 1842 } 1843 return Match_MATCH_TYPE_UNSPECIFIED 1844} 1845 1846func (x *Match) GetConfidence() float32 { 1847 if x != nil { 1848 return x.Confidence 1849 } 1850 return 0 1851} 1852 1853// Request of [MatchIntent][]. 1854type MatchIntentRequest struct { 1855 state protoimpl.MessageState 1856 sizeCache protoimpl.SizeCache 1857 unknownFields protoimpl.UnknownFields 1858 1859 // Required. The name of the session this query is sent to. 1860 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1861 // ID>/sessions/<Session ID>` or `projects/<Project ID>/locations/<Location 1862 // ID>/agents/<Agent ID>/environments/<Environment ID>/sessions/<Session ID>`. 1863 // If `Environment ID` is not specified, we assume default 'draft' 1864 // environment. 1865 // It's up to the API caller to choose an appropriate `Session ID`. It can be 1866 // a random number or some type of session identifiers (preferably hashed). 1867 // The length of the `Session ID` must not exceed 36 characters. 1868 // 1869 // For more information, see the [sessions 1870 // guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). 1871 Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` 1872 // The parameters of this query. 1873 QueryParams *QueryParameters `protobuf:"bytes,2,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"` 1874 // Required. The input specification. 1875 QueryInput *QueryInput `protobuf:"bytes,3,opt,name=query_input,json=queryInput,proto3" json:"query_input,omitempty"` 1876} 1877 1878func (x *MatchIntentRequest) Reset() { 1879 *x = MatchIntentRequest{} 1880 if protoimpl.UnsafeEnabled { 1881 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[14] 1882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1883 ms.StoreMessageInfo(mi) 1884 } 1885} 1886 1887func (x *MatchIntentRequest) String() string { 1888 return protoimpl.X.MessageStringOf(x) 1889} 1890 1891func (*MatchIntentRequest) ProtoMessage() {} 1892 1893func (x *MatchIntentRequest) ProtoReflect() protoreflect.Message { 1894 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[14] 1895 if protoimpl.UnsafeEnabled && x != nil { 1896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1897 if ms.LoadMessageInfo() == nil { 1898 ms.StoreMessageInfo(mi) 1899 } 1900 return ms 1901 } 1902 return mi.MessageOf(x) 1903} 1904 1905// Deprecated: Use MatchIntentRequest.ProtoReflect.Descriptor instead. 1906func (*MatchIntentRequest) Descriptor() ([]byte, []int) { 1907 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{14} 1908} 1909 1910func (x *MatchIntentRequest) GetSession() string { 1911 if x != nil { 1912 return x.Session 1913 } 1914 return "" 1915} 1916 1917func (x *MatchIntentRequest) GetQueryParams() *QueryParameters { 1918 if x != nil { 1919 return x.QueryParams 1920 } 1921 return nil 1922} 1923 1924func (x *MatchIntentRequest) GetQueryInput() *QueryInput { 1925 if x != nil { 1926 return x.QueryInput 1927 } 1928 return nil 1929} 1930 1931// Response of [MatchIntent][]. 1932type MatchIntentResponse struct { 1933 state protoimpl.MessageState 1934 sizeCache protoimpl.SizeCache 1935 unknownFields protoimpl.UnknownFields 1936 1937 // The original conversational query. 1938 // 1939 // Types that are assignable to Query: 1940 // *MatchIntentResponse_Text 1941 // *MatchIntentResponse_TriggerIntent 1942 // *MatchIntentResponse_Transcript 1943 // *MatchIntentResponse_TriggerEvent 1944 Query isMatchIntentResponse_Query `protobuf_oneof:"query"` 1945 // Match results, if more than one, ordered descendingly by the confidence 1946 // we have that the particular intent matches the query. 1947 Matches []*Match `protobuf:"bytes,4,rep,name=matches,proto3" json:"matches,omitempty"` 1948 // The current [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Some, not all fields are filled in this message, 1949 // including but not limited to `name` and `display_name`. 1950 CurrentPage *Page `protobuf:"bytes,5,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` 1951} 1952 1953func (x *MatchIntentResponse) Reset() { 1954 *x = MatchIntentResponse{} 1955 if protoimpl.UnsafeEnabled { 1956 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[15] 1957 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1958 ms.StoreMessageInfo(mi) 1959 } 1960} 1961 1962func (x *MatchIntentResponse) String() string { 1963 return protoimpl.X.MessageStringOf(x) 1964} 1965 1966func (*MatchIntentResponse) ProtoMessage() {} 1967 1968func (x *MatchIntentResponse) ProtoReflect() protoreflect.Message { 1969 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[15] 1970 if protoimpl.UnsafeEnabled && x != nil { 1971 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1972 if ms.LoadMessageInfo() == nil { 1973 ms.StoreMessageInfo(mi) 1974 } 1975 return ms 1976 } 1977 return mi.MessageOf(x) 1978} 1979 1980// Deprecated: Use MatchIntentResponse.ProtoReflect.Descriptor instead. 1981func (*MatchIntentResponse) Descriptor() ([]byte, []int) { 1982 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{15} 1983} 1984 1985func (m *MatchIntentResponse) GetQuery() isMatchIntentResponse_Query { 1986 if m != nil { 1987 return m.Query 1988 } 1989 return nil 1990} 1991 1992func (x *MatchIntentResponse) GetText() string { 1993 if x, ok := x.GetQuery().(*MatchIntentResponse_Text); ok { 1994 return x.Text 1995 } 1996 return "" 1997} 1998 1999func (x *MatchIntentResponse) GetTriggerIntent() string { 2000 if x, ok := x.GetQuery().(*MatchIntentResponse_TriggerIntent); ok { 2001 return x.TriggerIntent 2002 } 2003 return "" 2004} 2005 2006func (x *MatchIntentResponse) GetTranscript() string { 2007 if x, ok := x.GetQuery().(*MatchIntentResponse_Transcript); ok { 2008 return x.Transcript 2009 } 2010 return "" 2011} 2012 2013func (x *MatchIntentResponse) GetTriggerEvent() string { 2014 if x, ok := x.GetQuery().(*MatchIntentResponse_TriggerEvent); ok { 2015 return x.TriggerEvent 2016 } 2017 return "" 2018} 2019 2020func (x *MatchIntentResponse) GetMatches() []*Match { 2021 if x != nil { 2022 return x.Matches 2023 } 2024 return nil 2025} 2026 2027func (x *MatchIntentResponse) GetCurrentPage() *Page { 2028 if x != nil { 2029 return x.CurrentPage 2030 } 2031 return nil 2032} 2033 2034type isMatchIntentResponse_Query interface { 2035 isMatchIntentResponse_Query() 2036} 2037 2038type MatchIntentResponse_Text struct { 2039 // If [natural language text][google.cloud.dialogflow.cx.v3beta1.TextInput] was provided as input, this field 2040 // will contain a copy of the text. 2041 Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` 2042} 2043 2044type MatchIntentResponse_TriggerIntent struct { 2045 // If an [intent][google.cloud.dialogflow.cx.v3beta1.IntentInput] was provided as input, this field will 2046 // contain a copy of the intent identifier. 2047 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 2048 // ID>/intents/<Intent ID>`. 2049 TriggerIntent string `protobuf:"bytes,2,opt,name=trigger_intent,json=triggerIntent,proto3,oneof"` 2050} 2051 2052type MatchIntentResponse_Transcript struct { 2053 // If [natural language speech audio][google.cloud.dialogflow.cx.v3beta1.AudioInput] was provided as input, 2054 // this field will contain the transcript for the audio. 2055 Transcript string `protobuf:"bytes,3,opt,name=transcript,proto3,oneof"` 2056} 2057 2058type MatchIntentResponse_TriggerEvent struct { 2059 // If an [event][google.cloud.dialogflow.cx.v3beta1.EventInput] was provided as input, this field will 2060 // contain a copy of the event name. 2061 TriggerEvent string `protobuf:"bytes,6,opt,name=trigger_event,json=triggerEvent,proto3,oneof"` 2062} 2063 2064func (*MatchIntentResponse_Text) isMatchIntentResponse_Query() {} 2065 2066func (*MatchIntentResponse_TriggerIntent) isMatchIntentResponse_Query() {} 2067 2068func (*MatchIntentResponse_Transcript) isMatchIntentResponse_Query() {} 2069 2070func (*MatchIntentResponse_TriggerEvent) isMatchIntentResponse_Query() {} 2071 2072// Request of [FulfillIntent][] 2073type FulfillIntentRequest struct { 2074 state protoimpl.MessageState 2075 sizeCache protoimpl.SizeCache 2076 unknownFields protoimpl.UnknownFields 2077 2078 // Must be same as the corresponding MatchIntent request, otherwise the 2079 // behavior is undefined. 2080 MatchIntentRequest *MatchIntentRequest `protobuf:"bytes,1,opt,name=match_intent_request,json=matchIntentRequest,proto3" json:"match_intent_request,omitempty"` 2081 // The matched intent/event to fulfill. 2082 Match *Match `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"` 2083 // Instructs the speech synthesizer how to generate output audio. 2084 OutputAudioConfig *OutputAudioConfig `protobuf:"bytes,3,opt,name=output_audio_config,json=outputAudioConfig,proto3" json:"output_audio_config,omitempty"` 2085} 2086 2087func (x *FulfillIntentRequest) Reset() { 2088 *x = FulfillIntentRequest{} 2089 if protoimpl.UnsafeEnabled { 2090 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[16] 2091 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2092 ms.StoreMessageInfo(mi) 2093 } 2094} 2095 2096func (x *FulfillIntentRequest) String() string { 2097 return protoimpl.X.MessageStringOf(x) 2098} 2099 2100func (*FulfillIntentRequest) ProtoMessage() {} 2101 2102func (x *FulfillIntentRequest) ProtoReflect() protoreflect.Message { 2103 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[16] 2104 if protoimpl.UnsafeEnabled && x != nil { 2105 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2106 if ms.LoadMessageInfo() == nil { 2107 ms.StoreMessageInfo(mi) 2108 } 2109 return ms 2110 } 2111 return mi.MessageOf(x) 2112} 2113 2114// Deprecated: Use FulfillIntentRequest.ProtoReflect.Descriptor instead. 2115func (*FulfillIntentRequest) Descriptor() ([]byte, []int) { 2116 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{16} 2117} 2118 2119func (x *FulfillIntentRequest) GetMatchIntentRequest() *MatchIntentRequest { 2120 if x != nil { 2121 return x.MatchIntentRequest 2122 } 2123 return nil 2124} 2125 2126func (x *FulfillIntentRequest) GetMatch() *Match { 2127 if x != nil { 2128 return x.Match 2129 } 2130 return nil 2131} 2132 2133func (x *FulfillIntentRequest) GetOutputAudioConfig() *OutputAudioConfig { 2134 if x != nil { 2135 return x.OutputAudioConfig 2136 } 2137 return nil 2138} 2139 2140// Response of [FulfillIntent][] 2141type FulfillIntentResponse struct { 2142 state protoimpl.MessageState 2143 sizeCache protoimpl.SizeCache 2144 unknownFields protoimpl.UnknownFields 2145 2146 // Output only. The unique identifier of the response. It can be used to 2147 // locate a response in the training example set or for reporting issues. 2148 ResponseId string `protobuf:"bytes,1,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"` 2149 // The result of the conversational query. 2150 QueryResult *QueryResult `protobuf:"bytes,2,opt,name=query_result,json=queryResult,proto3" json:"query_result,omitempty"` 2151 // The audio data bytes encoded as specified in the request. 2152 // Note: The output audio is generated based on the values of default platform 2153 // text responses found in the 2154 // [`query_result.response_messages`][google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages] field. If 2155 // multiple default text responses exist, they will be concatenated when 2156 // generating audio. If no default platform text responses exist, the 2157 // generated audio content will be empty. 2158 // 2159 // In some scenarios, multiple output audio fields may be present in the 2160 // response structure. In these cases, only the top-most-level audio output 2161 // has content. 2162 OutputAudio []byte `protobuf:"bytes,3,opt,name=output_audio,json=outputAudio,proto3" json:"output_audio,omitempty"` 2163 // The config used by the speech synthesizer to generate the output audio. 2164 OutputAudioConfig *OutputAudioConfig `protobuf:"bytes,4,opt,name=output_audio_config,json=outputAudioConfig,proto3" json:"output_audio_config,omitempty"` 2165} 2166 2167func (x *FulfillIntentResponse) Reset() { 2168 *x = FulfillIntentResponse{} 2169 if protoimpl.UnsafeEnabled { 2170 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[17] 2171 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2172 ms.StoreMessageInfo(mi) 2173 } 2174} 2175 2176func (x *FulfillIntentResponse) String() string { 2177 return protoimpl.X.MessageStringOf(x) 2178} 2179 2180func (*FulfillIntentResponse) ProtoMessage() {} 2181 2182func (x *FulfillIntentResponse) ProtoReflect() protoreflect.Message { 2183 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[17] 2184 if protoimpl.UnsafeEnabled && x != nil { 2185 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2186 if ms.LoadMessageInfo() == nil { 2187 ms.StoreMessageInfo(mi) 2188 } 2189 return ms 2190 } 2191 return mi.MessageOf(x) 2192} 2193 2194// Deprecated: Use FulfillIntentResponse.ProtoReflect.Descriptor instead. 2195func (*FulfillIntentResponse) Descriptor() ([]byte, []int) { 2196 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{17} 2197} 2198 2199func (x *FulfillIntentResponse) GetResponseId() string { 2200 if x != nil { 2201 return x.ResponseId 2202 } 2203 return "" 2204} 2205 2206func (x *FulfillIntentResponse) GetQueryResult() *QueryResult { 2207 if x != nil { 2208 return x.QueryResult 2209 } 2210 return nil 2211} 2212 2213func (x *FulfillIntentResponse) GetOutputAudio() []byte { 2214 if x != nil { 2215 return x.OutputAudio 2216 } 2217 return nil 2218} 2219 2220func (x *FulfillIntentResponse) GetOutputAudioConfig() *OutputAudioConfig { 2221 if x != nil { 2222 return x.OutputAudioConfig 2223 } 2224 return nil 2225} 2226 2227// The result of sentiment analysis. Sentiment analysis inspects user input 2228// and identifies the prevailing subjective opinion, especially to determine a 2229// user's attitude as positive, negative, or neutral. 2230type SentimentAnalysisResult struct { 2231 state protoimpl.MessageState 2232 sizeCache protoimpl.SizeCache 2233 unknownFields protoimpl.UnknownFields 2234 2235 // Sentiment score between -1.0 (negative sentiment) and 1.0 (positive 2236 // sentiment). 2237 Score float32 `protobuf:"fixed32,1,opt,name=score,proto3" json:"score,omitempty"` 2238 // A non-negative number in the [0, +inf) range, which represents the absolute 2239 // magnitude of sentiment, regardless of score (positive or negative). 2240 Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude,proto3" json:"magnitude,omitempty"` 2241} 2242 2243func (x *SentimentAnalysisResult) Reset() { 2244 *x = SentimentAnalysisResult{} 2245 if protoimpl.UnsafeEnabled { 2246 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[18] 2247 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2248 ms.StoreMessageInfo(mi) 2249 } 2250} 2251 2252func (x *SentimentAnalysisResult) String() string { 2253 return protoimpl.X.MessageStringOf(x) 2254} 2255 2256func (*SentimentAnalysisResult) ProtoMessage() {} 2257 2258func (x *SentimentAnalysisResult) ProtoReflect() protoreflect.Message { 2259 mi := &file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[18] 2260 if protoimpl.UnsafeEnabled && x != nil { 2261 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2262 if ms.LoadMessageInfo() == nil { 2263 ms.StoreMessageInfo(mi) 2264 } 2265 return ms 2266 } 2267 return mi.MessageOf(x) 2268} 2269 2270// Deprecated: Use SentimentAnalysisResult.ProtoReflect.Descriptor instead. 2271func (*SentimentAnalysisResult) Descriptor() ([]byte, []int) { 2272 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP(), []int{18} 2273} 2274 2275func (x *SentimentAnalysisResult) GetScore() float32 { 2276 if x != nil { 2277 return x.Score 2278 } 2279 return 0 2280} 2281 2282func (x *SentimentAnalysisResult) GetMagnitude() float32 { 2283 if x != nil { 2284 return x.Magnitude 2285 } 2286 return 0 2287} 2288 2289var File_google_cloud_dialogflow_cx_v3beta1_session_proto protoreflect.FileDescriptor 2290 2291var file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDesc = []byte{ 2292 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 2293 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 2294 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 2295 0x74, 0x6f, 0x12, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2296 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 2297 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 2298 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 2299 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 2300 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 2301 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 2302 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2303 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 2304 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 2305 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x73, 0x65, 2306 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 2307 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2308 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 2309 0x2f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 2310 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 2311 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 2312 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 2313 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2314 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 2315 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 2316 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 2317 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 2318 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2319 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2320 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 2321 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 2322 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c, 0x67, 2323 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 2324 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2325 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 2326 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 2327 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 2328 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 2329 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 2330 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2331 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 2332 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 2333 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 2334 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 2335 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xef, 0x02, 0x0a, 0x13, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 2336 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 2337 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 2338 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 2339 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 2340 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 2341 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 2342 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2343 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 2344 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 2345 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x71, 2346 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x71, 0x75, 2347 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 2348 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2349 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 2350 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 2351 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 2352 0x12, 0x65, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 2353 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 2354 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2355 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 2356 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 2357 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 2358 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf7, 0x03, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x65, 2359 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2360 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 2361 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 2362 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 2363 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2364 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2365 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 2366 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 2367 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 2368 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6f, 0x75, 0x74, 2369 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x65, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 2370 0x75, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 2371 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2372 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2373 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 2374 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x6f, 0x75, 2375 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 2376 0x6a, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 2377 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2378 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2379 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 2380 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2381 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 2382 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x61, 2383 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2384 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x61, 2385 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x0c, 0x52, 0x65, 2386 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 2387 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 2388 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 2389 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x10, 2390 0x02, 0x22, 0xad, 0x03, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x44, 2391 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 2392 0x73, 0x74, 0x12, 0x40, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 2393 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2394 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 2395 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 2396 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 2397 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 2398 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2399 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2400 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 2401 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x0b, 2402 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 2403 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2404 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 2405 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 2406 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 2407 0x75, 0x74, 0x12, 0x65, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x75, 0x64, 2408 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 2409 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2410 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 2411 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 2412 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 2413 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 2414 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x70, 2415 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 2416 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2417 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x44, 2418 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 2419 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 2420 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2421 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2422 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 2423 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 2424 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 2425 0x00, 0x52, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 2426 0x73, 0x75, 0x6c, 0x74, 0x12, 0x70, 0x0a, 0x16, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x5f, 0x69, 2427 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 2428 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2429 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 2430 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 2431 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 2432 0x52, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 2433 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2434 0x73, 0x65, 0x22, 0xa8, 0x04, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 2435 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 2436 0x74, 0x12, 0x6d, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 2437 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2438 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2439 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 2440 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 2441 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 2442 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 2443 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 2444 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 2445 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 2446 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 2447 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 2448 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 2449 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 2450 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x10, 0x73, 0x70, 0x65, 2451 0x65, 0x63, 0x68, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 2452 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2453 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2454 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x57, 2455 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x57, 2456 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x63, 2457 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 2458 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2459 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 2460 0x70, 0x65, 0x65, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x23, 2461 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 2462 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 2463 0x6f, 0x64, 0x65, 0x22, 0x58, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 2464 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 2465 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 2466 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x01, 2467 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 2468 0x45, 0x5f, 0x55, 0x54, 0x54, 0x45, 0x52, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x22, 0xef, 0x05, 2469 0x0a, 0x0f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 2470 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 2471 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x36, 2472 0x0a, 0x0c, 0x67, 0x65, 0x6f, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 2473 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 2474 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x0b, 0x67, 0x65, 0x6f, 0x4c, 0x6f, 2475 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x14, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 2476 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 2477 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2478 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 2479 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 2480 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x65, 0x73, 2481 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 2482 0x31, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 2483 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2484 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 2485 0x61, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 2486 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2487 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 2488 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 2489 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 2490 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 2491 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 2492 0x6d, 0x2f, 0x50, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 2493 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 2494 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 2495 0x73, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x3f, 0x0a, 0x1c, 2496 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 2497 0x78, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 2498 0x28, 0x08, 0x52, 0x19, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 2499 0x54, 0x65, 0x78, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 2500 0x0f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 2501 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2502 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2503 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 2504 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x68, 2505 0x6f, 0x6f, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 2506 0x0e, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 2507 0x4b, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2508 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 2509 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2510 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 2511 0x66, 0x6c, 0x6f, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x41, 0x0a, 0x13, 2512 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 2513 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2514 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 2515 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 2516 0xa4, 0x03, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x43, 2517 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 2518 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2519 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2520 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x74, 2521 0x65, 0x78, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 2522 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2523 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2524 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 2525 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x46, 2526 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 2527 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2528 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 2529 0x61, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 2530 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x46, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 2531 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2532 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2533 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 2534 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x43, 2535 0x0a, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 2536 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2537 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2538 0x31, 0x2e, 0x44, 0x74, 0x6d, 0x66, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x64, 2539 0x74, 0x6d, 0x66, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 2540 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 2541 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 2542 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xa2, 0x08, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 2543 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 2544 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4e, 0x0a, 0x0e, 2545 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0b, 2546 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2547 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 2548 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x74, 2549 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0a, 2550 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 2551 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x25, 2552 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 2553 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 2554 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x17, 0x20, 2555 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2556 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2557 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x74, 0x6d, 0x66, 0x49, 0x6e, 0x70, 2558 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 2559 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 2560 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 2561 0x37, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 2562 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2563 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x61, 2564 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x60, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x70, 2565 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 2566 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2567 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2568 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2569 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2570 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x10, 0x77, 0x65, 2571 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x0d, 2572 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 2573 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 2574 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x77, 0x65, 0x62, 2575 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 2576 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2577 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0f, 0x77, 0x65, 2578 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x4b, 0x0a, 2579 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 2580 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2581 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2582 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 2583 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x69, 0x6e, 2584 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 2585 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2586 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2587 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 2588 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 2589 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 2590 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x69, 0x6e, 0x74, 2591 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 2592 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 2593 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2594 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2595 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 2596 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x0f, 0x64, 0x69, 0x61, 0x67, 0x6e, 2597 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 2598 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2599 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0e, 0x64, 0x69, 0x61, 0x67, 0x6e, 2600 0x6f, 0x73, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x77, 0x0a, 0x19, 0x73, 0x65, 0x6e, 2601 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 2602 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 2603 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2604 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2605 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 2606 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x17, 0x73, 0x65, 0x6e, 0x74, 0x69, 2607 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 2608 0x6c, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x24, 0x0a, 0x09, 0x54, 2609 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 2610 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x65, 0x78, 2611 0x74, 0x22, 0x4f, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 2612 0x12, 0x40, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2613 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2614 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 2615 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 2616 0x6e, 0x74, 0x22, 0x75, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x49, 0x6e, 0x70, 0x75, 0x74, 2617 0x12, 0x51, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2618 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2619 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 2620 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 2621 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x6e, 2622 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 2623 0x28, 0x0c, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x22, 0x22, 0x0a, 0x0a, 0x45, 0x76, 0x65, 2624 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 2625 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x46, 0x0a, 2626 0x09, 0x44, 0x74, 0x6d, 0x66, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 2627 0x67, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x69, 2628 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x64, 0x69, 0x67, 2629 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 2630 0x44, 0x69, 0x67, 0x69, 0x74, 0x22, 0xbc, 0x03, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 2631 0x42, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2632 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2633 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 2634 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x74, 2635 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 2636 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x61, 0x72, 2637 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 2638 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2639 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 2640 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x69, 2641 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 2642 0x6c, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 2643 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 2644 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2645 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 2646 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 2647 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 2648 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 2649 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x84, 0x01, 2650 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 2651 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 2652 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 2653 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 2654 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 2655 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 2656 0x08, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 2657 0x4f, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 2658 0x4e, 0x54, 0x10, 0x06, 0x22, 0x87, 0x02, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 2659 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x73, 2660 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 2661 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2662 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 2663 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 2664 0x12, 0x56, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 2665 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2666 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2667 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 2668 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0b, 0x71, 0x75, 0x65, 2669 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x72, 2670 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 2671 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2672 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 2673 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 2674 0x41, 0x02, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xdf, 2675 0x02, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 2676 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 2677 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4e, 0x0a, 0x0e, 2678 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 2679 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2680 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 2681 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x74, 2682 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0a, 2683 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 2684 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x25, 2685 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 2686 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 2687 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 2688 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2689 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2690 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 2691 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x75, 2692 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 2693 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2694 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 2695 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 2696 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 2697 0x22, 0xa8, 0x02, 0x0a, 0x14, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 2698 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x68, 0x0a, 0x14, 0x6d, 0x61, 0x74, 2699 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 2700 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2701 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2702 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 2703 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 2704 0x12, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 2705 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 2706 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2707 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 2708 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 2709 0x61, 0x74, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 2710 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 2711 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2712 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 2713 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 2714 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 2715 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x96, 0x02, 0x0a, 0x15, 2716 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 2717 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2718 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x70, 2719 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 2720 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 2721 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2722 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2723 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x71, 2724 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 2725 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 2726 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x65, 0x0a, 2727 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 2728 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 2729 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2730 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2731 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 2732 0x67, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 2733 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 2734 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 2735 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 2736 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 2737 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 2738 0x75, 0x64, 0x65, 0x32, 0x8a, 0x0a, 0x0a, 0x08, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 2739 0x12, 0xba, 0x02, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 2740 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2741 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 2742 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 2743 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 2744 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2745 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2746 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 2747 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xaf, 0x01, 0x22, 0x4a, 2748 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 2749 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 2750 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 2751 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 2752 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x5e, 0x22, 2753 0x59, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 2754 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 2755 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 2756 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 2757 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 2758 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xa2, 0x01, 2759 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x65, 0x63, 2760 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2761 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2762 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 2763 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 2764 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2765 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 2766 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 2767 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6e, 2768 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 2769 0x30, 0x01, 0x12, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 2770 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2771 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 2772 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x74, 2773 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 2774 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 2775 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2776 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 2777 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xad, 0x01, 0x22, 0x49, 0x2f, 2778 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 2779 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2780 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 2781 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x61, 0x74, 2782 0x63, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x5a, 0x5d, 0x22, 0x58, 0x2f, 2783 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 2784 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2785 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 2786 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 2787 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x61, 0x74, 0x63, 2788 0x68, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xe9, 0x02, 0x0a, 0x0d, 0x46, 2789 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x67, 2790 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2791 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2792 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 2793 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2794 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2795 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 2796 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2797 0x65, 0x22, 0xe2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xdb, 0x01, 0x22, 0x60, 0x2f, 0x76, 0x33, 2798 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x74, 2799 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x73, 0x65, 0x73, 0x73, 2800 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 2801 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 2802 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 2803 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 2804 0x5a, 0x74, 0x22, 0x6f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x61, 2805 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 2806 0x73, 0x74, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2807 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2808 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 2809 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 2810 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 2811 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2812 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 2813 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 2814 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 2815 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 2816 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 2817 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2818 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2819 0x42, 0xac, 0x03, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2820 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2821 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x73, 2822 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 2823 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 2824 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2825 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 2826 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 2827 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 2828 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 2829 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 2830 0x26, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 2831 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x3a, 0x43, 0x58, 0x3a, 0x3a, 2832 0x56, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x41, 0xd4, 0x01, 0x0a, 0x21, 0x64, 0x69, 0x61, 2833 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2834 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 2835 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2836 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 2837 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 2838 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2839 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0x64, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2840 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 2841 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 2842 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 2843 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 2844 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x73, 2845 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x62, 2846 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2847} 2848 2849var ( 2850 file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescOnce sync.Once 2851 file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescData = file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDesc 2852) 2853 2854func file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescGZIP() []byte { 2855 file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescOnce.Do(func() { 2856 file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescData) 2857 }) 2858 return file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDescData 2859} 2860 2861var file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2862var file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes = make([]protoimpl.MessageInfo, 20) 2863var file_google_cloud_dialogflow_cx_v3beta1_session_proto_goTypes = []interface{}{ 2864 (DetectIntentResponse_ResponseType)(0), // 0: google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.ResponseType 2865 (StreamingRecognitionResult_MessageType)(0), // 1: google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.MessageType 2866 (Match_MatchType)(0), // 2: google.cloud.dialogflow.cx.v3beta1.Match.MatchType 2867 (*DetectIntentRequest)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest 2868 (*DetectIntentResponse)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse 2869 (*StreamingDetectIntentRequest)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest 2870 (*StreamingDetectIntentResponse)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentResponse 2871 (*StreamingRecognitionResult)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult 2872 (*QueryParameters)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.QueryParameters 2873 (*QueryInput)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.QueryInput 2874 (*QueryResult)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.QueryResult 2875 (*TextInput)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.TextInput 2876 (*IntentInput)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.IntentInput 2877 (*AudioInput)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.AudioInput 2878 (*EventInput)(nil), // 14: google.cloud.dialogflow.cx.v3beta1.EventInput 2879 (*DtmfInput)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.DtmfInput 2880 (*Match)(nil), // 16: google.cloud.dialogflow.cx.v3beta1.Match 2881 (*MatchIntentRequest)(nil), // 17: google.cloud.dialogflow.cx.v3beta1.MatchIntentRequest 2882 (*MatchIntentResponse)(nil), // 18: google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse 2883 (*FulfillIntentRequest)(nil), // 19: google.cloud.dialogflow.cx.v3beta1.FulfillIntentRequest 2884 (*FulfillIntentResponse)(nil), // 20: google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse 2885 (*SentimentAnalysisResult)(nil), // 21: google.cloud.dialogflow.cx.v3beta1.SentimentAnalysisResult 2886 nil, // 22: google.cloud.dialogflow.cx.v3beta1.QueryParameters.WebhookHeadersEntry 2887 (*OutputAudioConfig)(nil), // 23: google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2888 (*SpeechWordInfo)(nil), // 24: google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo 2889 (*durationpb.Duration)(nil), // 25: google.protobuf.Duration 2890 (*latlng.LatLng)(nil), // 26: google.type.LatLng 2891 (*SessionEntityType)(nil), // 27: google.cloud.dialogflow.cx.v3beta1.SessionEntityType 2892 (*structpb.Struct)(nil), // 28: google.protobuf.Struct 2893 (*ResponseMessage)(nil), // 29: google.cloud.dialogflow.cx.v3beta1.ResponseMessage 2894 (*status.Status)(nil), // 30: google.rpc.Status 2895 (*Page)(nil), // 31: google.cloud.dialogflow.cx.v3beta1.Page 2896 (*Intent)(nil), // 32: google.cloud.dialogflow.cx.v3beta1.Intent 2897 (*InputAudioConfig)(nil), // 33: google.cloud.dialogflow.cx.v3beta1.InputAudioConfig 2898} 2899var file_google_cloud_dialogflow_cx_v3beta1_session_proto_depIdxs = []int32{ 2900 8, // 0: google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.query_params:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryParameters 2901 9, // 1: google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.query_input:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryInput 2902 23, // 2: google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.output_audio_config:type_name -> google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2903 10, // 3: google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.query_result:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryResult 2904 23, // 4: google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.output_audio_config:type_name -> google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2905 0, // 5: google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.response_type:type_name -> google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse.ResponseType 2906 8, // 6: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_params:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryParameters 2907 9, // 7: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.query_input:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryInput 2908 23, // 8: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest.output_audio_config:type_name -> google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2909 7, // 9: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentResponse.recognition_result:type_name -> google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult 2910 4, // 10: google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentResponse.detect_intent_response:type_name -> google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse 2911 1, // 11: google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.message_type:type_name -> google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.MessageType 2912 24, // 12: google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.speech_word_info:type_name -> google.cloud.dialogflow.cx.v3beta1.SpeechWordInfo 2913 25, // 13: google.cloud.dialogflow.cx.v3beta1.StreamingRecognitionResult.speech_end_offset:type_name -> google.protobuf.Duration 2914 26, // 14: google.cloud.dialogflow.cx.v3beta1.QueryParameters.geo_location:type_name -> google.type.LatLng 2915 27, // 15: google.cloud.dialogflow.cx.v3beta1.QueryParameters.session_entity_types:type_name -> google.cloud.dialogflow.cx.v3beta1.SessionEntityType 2916 28, // 16: google.cloud.dialogflow.cx.v3beta1.QueryParameters.payload:type_name -> google.protobuf.Struct 2917 28, // 17: google.cloud.dialogflow.cx.v3beta1.QueryParameters.parameters:type_name -> google.protobuf.Struct 2918 22, // 18: google.cloud.dialogflow.cx.v3beta1.QueryParameters.webhook_headers:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryParameters.WebhookHeadersEntry 2919 11, // 19: google.cloud.dialogflow.cx.v3beta1.QueryInput.text:type_name -> google.cloud.dialogflow.cx.v3beta1.TextInput 2920 12, // 20: google.cloud.dialogflow.cx.v3beta1.QueryInput.intent:type_name -> google.cloud.dialogflow.cx.v3beta1.IntentInput 2921 13, // 21: google.cloud.dialogflow.cx.v3beta1.QueryInput.audio:type_name -> google.cloud.dialogflow.cx.v3beta1.AudioInput 2922 14, // 22: google.cloud.dialogflow.cx.v3beta1.QueryInput.event:type_name -> google.cloud.dialogflow.cx.v3beta1.EventInput 2923 15, // 23: google.cloud.dialogflow.cx.v3beta1.QueryInput.dtmf:type_name -> google.cloud.dialogflow.cx.v3beta1.DtmfInput 2924 15, // 24: google.cloud.dialogflow.cx.v3beta1.QueryResult.dtmf:type_name -> google.cloud.dialogflow.cx.v3beta1.DtmfInput 2925 28, // 25: google.cloud.dialogflow.cx.v3beta1.QueryResult.parameters:type_name -> google.protobuf.Struct 2926 29, // 26: google.cloud.dialogflow.cx.v3beta1.QueryResult.response_messages:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage 2927 30, // 27: google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_statuses:type_name -> google.rpc.Status 2928 28, // 28: google.cloud.dialogflow.cx.v3beta1.QueryResult.webhook_payloads:type_name -> google.protobuf.Struct 2929 31, // 29: google.cloud.dialogflow.cx.v3beta1.QueryResult.current_page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page 2930 32, // 30: google.cloud.dialogflow.cx.v3beta1.QueryResult.intent:type_name -> google.cloud.dialogflow.cx.v3beta1.Intent 2931 16, // 31: google.cloud.dialogflow.cx.v3beta1.QueryResult.match:type_name -> google.cloud.dialogflow.cx.v3beta1.Match 2932 28, // 32: google.cloud.dialogflow.cx.v3beta1.QueryResult.diagnostic_info:type_name -> google.protobuf.Struct 2933 21, // 33: google.cloud.dialogflow.cx.v3beta1.QueryResult.sentiment_analysis_result:type_name -> google.cloud.dialogflow.cx.v3beta1.SentimentAnalysisResult 2934 33, // 34: google.cloud.dialogflow.cx.v3beta1.AudioInput.config:type_name -> google.cloud.dialogflow.cx.v3beta1.InputAudioConfig 2935 32, // 35: google.cloud.dialogflow.cx.v3beta1.Match.intent:type_name -> google.cloud.dialogflow.cx.v3beta1.Intent 2936 28, // 36: google.cloud.dialogflow.cx.v3beta1.Match.parameters:type_name -> google.protobuf.Struct 2937 2, // 37: google.cloud.dialogflow.cx.v3beta1.Match.match_type:type_name -> google.cloud.dialogflow.cx.v3beta1.Match.MatchType 2938 8, // 38: google.cloud.dialogflow.cx.v3beta1.MatchIntentRequest.query_params:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryParameters 2939 9, // 39: google.cloud.dialogflow.cx.v3beta1.MatchIntentRequest.query_input:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryInput 2940 16, // 40: google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse.matches:type_name -> google.cloud.dialogflow.cx.v3beta1.Match 2941 31, // 41: google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse.current_page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page 2942 17, // 42: google.cloud.dialogflow.cx.v3beta1.FulfillIntentRequest.match_intent_request:type_name -> google.cloud.dialogflow.cx.v3beta1.MatchIntentRequest 2943 16, // 43: google.cloud.dialogflow.cx.v3beta1.FulfillIntentRequest.match:type_name -> google.cloud.dialogflow.cx.v3beta1.Match 2944 23, // 44: google.cloud.dialogflow.cx.v3beta1.FulfillIntentRequest.output_audio_config:type_name -> google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2945 10, // 45: google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse.query_result:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryResult 2946 23, // 46: google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse.output_audio_config:type_name -> google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig 2947 3, // 47: google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent:input_type -> google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest 2948 5, // 48: google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent:input_type -> google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest 2949 17, // 49: google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent:input_type -> google.cloud.dialogflow.cx.v3beta1.MatchIntentRequest 2950 19, // 50: google.cloud.dialogflow.cx.v3beta1.Sessions.FulfillIntent:input_type -> google.cloud.dialogflow.cx.v3beta1.FulfillIntentRequest 2951 4, // 51: google.cloud.dialogflow.cx.v3beta1.Sessions.DetectIntent:output_type -> google.cloud.dialogflow.cx.v3beta1.DetectIntentResponse 2952 6, // 52: google.cloud.dialogflow.cx.v3beta1.Sessions.StreamingDetectIntent:output_type -> google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentResponse 2953 18, // 53: google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent:output_type -> google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse 2954 20, // 54: google.cloud.dialogflow.cx.v3beta1.Sessions.FulfillIntent:output_type -> google.cloud.dialogflow.cx.v3beta1.FulfillIntentResponse 2955 51, // [51:55] is the sub-list for method output_type 2956 47, // [47:51] is the sub-list for method input_type 2957 47, // [47:47] is the sub-list for extension type_name 2958 47, // [47:47] is the sub-list for extension extendee 2959 0, // [0:47] is the sub-list for field type_name 2960} 2961 2962func init() { file_google_cloud_dialogflow_cx_v3beta1_session_proto_init() } 2963func file_google_cloud_dialogflow_cx_v3beta1_session_proto_init() { 2964 if File_google_cloud_dialogflow_cx_v3beta1_session_proto != nil { 2965 return 2966 } 2967 file_google_cloud_dialogflow_cx_v3beta1_advanced_settings_proto_init() 2968 file_google_cloud_dialogflow_cx_v3beta1_audio_config_proto_init() 2969 file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() 2970 file_google_cloud_dialogflow_cx_v3beta1_intent_proto_init() 2971 file_google_cloud_dialogflow_cx_v3beta1_page_proto_init() 2972 file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() 2973 file_google_cloud_dialogflow_cx_v3beta1_session_entity_type_proto_init() 2974 if !protoimpl.UnsafeEnabled { 2975 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2976 switch v := v.(*DetectIntentRequest); i { 2977 case 0: 2978 return &v.state 2979 case 1: 2980 return &v.sizeCache 2981 case 2: 2982 return &v.unknownFields 2983 default: 2984 return nil 2985 } 2986 } 2987 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2988 switch v := v.(*DetectIntentResponse); i { 2989 case 0: 2990 return &v.state 2991 case 1: 2992 return &v.sizeCache 2993 case 2: 2994 return &v.unknownFields 2995 default: 2996 return nil 2997 } 2998 } 2999 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3000 switch v := v.(*StreamingDetectIntentRequest); i { 3001 case 0: 3002 return &v.state 3003 case 1: 3004 return &v.sizeCache 3005 case 2: 3006 return &v.unknownFields 3007 default: 3008 return nil 3009 } 3010 } 3011 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3012 switch v := v.(*StreamingDetectIntentResponse); i { 3013 case 0: 3014 return &v.state 3015 case 1: 3016 return &v.sizeCache 3017 case 2: 3018 return &v.unknownFields 3019 default: 3020 return nil 3021 } 3022 } 3023 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3024 switch v := v.(*StreamingRecognitionResult); i { 3025 case 0: 3026 return &v.state 3027 case 1: 3028 return &v.sizeCache 3029 case 2: 3030 return &v.unknownFields 3031 default: 3032 return nil 3033 } 3034 } 3035 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3036 switch v := v.(*QueryParameters); i { 3037 case 0: 3038 return &v.state 3039 case 1: 3040 return &v.sizeCache 3041 case 2: 3042 return &v.unknownFields 3043 default: 3044 return nil 3045 } 3046 } 3047 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3048 switch v := v.(*QueryInput); i { 3049 case 0: 3050 return &v.state 3051 case 1: 3052 return &v.sizeCache 3053 case 2: 3054 return &v.unknownFields 3055 default: 3056 return nil 3057 } 3058 } 3059 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3060 switch v := v.(*QueryResult); i { 3061 case 0: 3062 return &v.state 3063 case 1: 3064 return &v.sizeCache 3065 case 2: 3066 return &v.unknownFields 3067 default: 3068 return nil 3069 } 3070 } 3071 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3072 switch v := v.(*TextInput); i { 3073 case 0: 3074 return &v.state 3075 case 1: 3076 return &v.sizeCache 3077 case 2: 3078 return &v.unknownFields 3079 default: 3080 return nil 3081 } 3082 } 3083 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3084 switch v := v.(*IntentInput); i { 3085 case 0: 3086 return &v.state 3087 case 1: 3088 return &v.sizeCache 3089 case 2: 3090 return &v.unknownFields 3091 default: 3092 return nil 3093 } 3094 } 3095 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3096 switch v := v.(*AudioInput); i { 3097 case 0: 3098 return &v.state 3099 case 1: 3100 return &v.sizeCache 3101 case 2: 3102 return &v.unknownFields 3103 default: 3104 return nil 3105 } 3106 } 3107 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3108 switch v := v.(*EventInput); i { 3109 case 0: 3110 return &v.state 3111 case 1: 3112 return &v.sizeCache 3113 case 2: 3114 return &v.unknownFields 3115 default: 3116 return nil 3117 } 3118 } 3119 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3120 switch v := v.(*DtmfInput); i { 3121 case 0: 3122 return &v.state 3123 case 1: 3124 return &v.sizeCache 3125 case 2: 3126 return &v.unknownFields 3127 default: 3128 return nil 3129 } 3130 } 3131 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3132 switch v := v.(*Match); i { 3133 case 0: 3134 return &v.state 3135 case 1: 3136 return &v.sizeCache 3137 case 2: 3138 return &v.unknownFields 3139 default: 3140 return nil 3141 } 3142 } 3143 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3144 switch v := v.(*MatchIntentRequest); i { 3145 case 0: 3146 return &v.state 3147 case 1: 3148 return &v.sizeCache 3149 case 2: 3150 return &v.unknownFields 3151 default: 3152 return nil 3153 } 3154 } 3155 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3156 switch v := v.(*MatchIntentResponse); i { 3157 case 0: 3158 return &v.state 3159 case 1: 3160 return &v.sizeCache 3161 case 2: 3162 return &v.unknownFields 3163 default: 3164 return nil 3165 } 3166 } 3167 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3168 switch v := v.(*FulfillIntentRequest); i { 3169 case 0: 3170 return &v.state 3171 case 1: 3172 return &v.sizeCache 3173 case 2: 3174 return &v.unknownFields 3175 default: 3176 return nil 3177 } 3178 } 3179 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 3180 switch v := v.(*FulfillIntentResponse); i { 3181 case 0: 3182 return &v.state 3183 case 1: 3184 return &v.sizeCache 3185 case 2: 3186 return &v.unknownFields 3187 default: 3188 return nil 3189 } 3190 } 3191 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3192 switch v := v.(*SentimentAnalysisResult); i { 3193 case 0: 3194 return &v.state 3195 case 1: 3196 return &v.sizeCache 3197 case 2: 3198 return &v.unknownFields 3199 default: 3200 return nil 3201 } 3202 } 3203 } 3204 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[3].OneofWrappers = []interface{}{ 3205 (*StreamingDetectIntentResponse_RecognitionResult)(nil), 3206 (*StreamingDetectIntentResponse_DetectIntentResponse)(nil), 3207 } 3208 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[6].OneofWrappers = []interface{}{ 3209 (*QueryInput_Text)(nil), 3210 (*QueryInput_Intent)(nil), 3211 (*QueryInput_Audio)(nil), 3212 (*QueryInput_Event)(nil), 3213 (*QueryInput_Dtmf)(nil), 3214 } 3215 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[7].OneofWrappers = []interface{}{ 3216 (*QueryResult_Text)(nil), 3217 (*QueryResult_TriggerIntent)(nil), 3218 (*QueryResult_Transcript)(nil), 3219 (*QueryResult_TriggerEvent)(nil), 3220 (*QueryResult_Dtmf)(nil), 3221 } 3222 file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes[15].OneofWrappers = []interface{}{ 3223 (*MatchIntentResponse_Text)(nil), 3224 (*MatchIntentResponse_TriggerIntent)(nil), 3225 (*MatchIntentResponse_Transcript)(nil), 3226 (*MatchIntentResponse_TriggerEvent)(nil), 3227 } 3228 type x struct{} 3229 out := protoimpl.TypeBuilder{ 3230 File: protoimpl.DescBuilder{ 3231 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3232 RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDesc, 3233 NumEnums: 3, 3234 NumMessages: 20, 3235 NumExtensions: 0, 3236 NumServices: 1, 3237 }, 3238 GoTypes: file_google_cloud_dialogflow_cx_v3beta1_session_proto_goTypes, 3239 DependencyIndexes: file_google_cloud_dialogflow_cx_v3beta1_session_proto_depIdxs, 3240 EnumInfos: file_google_cloud_dialogflow_cx_v3beta1_session_proto_enumTypes, 3241 MessageInfos: file_google_cloud_dialogflow_cx_v3beta1_session_proto_msgTypes, 3242 }.Build() 3243 File_google_cloud_dialogflow_cx_v3beta1_session_proto = out.File 3244 file_google_cloud_dialogflow_cx_v3beta1_session_proto_rawDesc = nil 3245 file_google_cloud_dialogflow_cx_v3beta1_session_proto_goTypes = nil 3246 file_google_cloud_dialogflow_cx_v3beta1_session_proto_depIdxs = nil 3247} 3248 3249// Reference imports to suppress errors if they are not otherwise used. 3250var _ context.Context 3251var _ grpc.ClientConnInterface 3252 3253// This is a compile-time assertion to ensure that this generated file 3254// is compatible with the grpc package it is being compiled against. 3255const _ = grpc.SupportPackageIsVersion6 3256 3257// SessionsClient is the client API for Sessions service. 3258// 3259// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 3260type SessionsClient interface { 3261 // Processes a natural language query and returns structured, actionable data 3262 // as a result. This method is not idempotent, because it may cause session 3263 // entity types to be updated, which in turn might affect results of future 3264 // queries. 3265 // 3266 // Note: Always use agent versions for production traffic. 3267 // See [Versions and 3268 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 3269 DetectIntent(ctx context.Context, in *DetectIntentRequest, opts ...grpc.CallOption) (*DetectIntentResponse, error) 3270 // Processes a natural language query in audio format in a streaming fashion 3271 // and returns structured, actionable data as a result. This method is only 3272 // available via the gRPC API (not REST). 3273 // 3274 // Note: Always use agent versions for production traffic. 3275 // See [Versions and 3276 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 3277 StreamingDetectIntent(ctx context.Context, opts ...grpc.CallOption) (Sessions_StreamingDetectIntentClient, error) 3278 // Returns preliminary intent match results, doesn't change the session 3279 // status. 3280 MatchIntent(ctx context.Context, in *MatchIntentRequest, opts ...grpc.CallOption) (*MatchIntentResponse, error) 3281 // Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent]. 3282 // Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from 3283 // [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined. 3284 FulfillIntent(ctx context.Context, in *FulfillIntentRequest, opts ...grpc.CallOption) (*FulfillIntentResponse, error) 3285} 3286 3287type sessionsClient struct { 3288 cc grpc.ClientConnInterface 3289} 3290 3291func NewSessionsClient(cc grpc.ClientConnInterface) SessionsClient { 3292 return &sessionsClient{cc} 3293} 3294 3295func (c *sessionsClient) DetectIntent(ctx context.Context, in *DetectIntentRequest, opts ...grpc.CallOption) (*DetectIntentResponse, error) { 3296 out := new(DetectIntentResponse) 3297 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Sessions/DetectIntent", in, out, opts...) 3298 if err != nil { 3299 return nil, err 3300 } 3301 return out, nil 3302} 3303 3304func (c *sessionsClient) StreamingDetectIntent(ctx context.Context, opts ...grpc.CallOption) (Sessions_StreamingDetectIntentClient, error) { 3305 stream, err := c.cc.NewStream(ctx, &_Sessions_serviceDesc.Streams[0], "/google.cloud.dialogflow.cx.v3beta1.Sessions/StreamingDetectIntent", opts...) 3306 if err != nil { 3307 return nil, err 3308 } 3309 x := &sessionsStreamingDetectIntentClient{stream} 3310 return x, nil 3311} 3312 3313type Sessions_StreamingDetectIntentClient interface { 3314 Send(*StreamingDetectIntentRequest) error 3315 Recv() (*StreamingDetectIntentResponse, error) 3316 grpc.ClientStream 3317} 3318 3319type sessionsStreamingDetectIntentClient struct { 3320 grpc.ClientStream 3321} 3322 3323func (x *sessionsStreamingDetectIntentClient) Send(m *StreamingDetectIntentRequest) error { 3324 return x.ClientStream.SendMsg(m) 3325} 3326 3327func (x *sessionsStreamingDetectIntentClient) Recv() (*StreamingDetectIntentResponse, error) { 3328 m := new(StreamingDetectIntentResponse) 3329 if err := x.ClientStream.RecvMsg(m); err != nil { 3330 return nil, err 3331 } 3332 return m, nil 3333} 3334 3335func (c *sessionsClient) MatchIntent(ctx context.Context, in *MatchIntentRequest, opts ...grpc.CallOption) (*MatchIntentResponse, error) { 3336 out := new(MatchIntentResponse) 3337 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Sessions/MatchIntent", in, out, opts...) 3338 if err != nil { 3339 return nil, err 3340 } 3341 return out, nil 3342} 3343 3344func (c *sessionsClient) FulfillIntent(ctx context.Context, in *FulfillIntentRequest, opts ...grpc.CallOption) (*FulfillIntentResponse, error) { 3345 out := new(FulfillIntentResponse) 3346 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Sessions/FulfillIntent", in, out, opts...) 3347 if err != nil { 3348 return nil, err 3349 } 3350 return out, nil 3351} 3352 3353// SessionsServer is the server API for Sessions service. 3354type SessionsServer interface { 3355 // Processes a natural language query and returns structured, actionable data 3356 // as a result. This method is not idempotent, because it may cause session 3357 // entity types to be updated, which in turn might affect results of future 3358 // queries. 3359 // 3360 // Note: Always use agent versions for production traffic. 3361 // See [Versions and 3362 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 3363 DetectIntent(context.Context, *DetectIntentRequest) (*DetectIntentResponse, error) 3364 // Processes a natural language query in audio format in a streaming fashion 3365 // and returns structured, actionable data as a result. This method is only 3366 // available via the gRPC API (not REST). 3367 // 3368 // Note: Always use agent versions for production traffic. 3369 // See [Versions and 3370 // environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). 3371 StreamingDetectIntent(Sessions_StreamingDetectIntentServer) error 3372 // Returns preliminary intent match results, doesn't change the session 3373 // status. 3374 MatchIntent(context.Context, *MatchIntentRequest) (*MatchIntentResponse, error) 3375 // Fulfills a matched intent returned by [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent]. 3376 // Must be called after [MatchIntent][google.cloud.dialogflow.cx.v3beta1.Sessions.MatchIntent], with input from 3377 // [MatchIntentResponse][google.cloud.dialogflow.cx.v3beta1.MatchIntentResponse]. Otherwise, the behavior is undefined. 3378 FulfillIntent(context.Context, *FulfillIntentRequest) (*FulfillIntentResponse, error) 3379} 3380 3381// UnimplementedSessionsServer can be embedded to have forward compatible implementations. 3382type UnimplementedSessionsServer struct { 3383} 3384 3385func (*UnimplementedSessionsServer) DetectIntent(context.Context, *DetectIntentRequest) (*DetectIntentResponse, error) { 3386 return nil, status1.Errorf(codes.Unimplemented, "method DetectIntent not implemented") 3387} 3388func (*UnimplementedSessionsServer) StreamingDetectIntent(Sessions_StreamingDetectIntentServer) error { 3389 return status1.Errorf(codes.Unimplemented, "method StreamingDetectIntent not implemented") 3390} 3391func (*UnimplementedSessionsServer) MatchIntent(context.Context, *MatchIntentRequest) (*MatchIntentResponse, error) { 3392 return nil, status1.Errorf(codes.Unimplemented, "method MatchIntent not implemented") 3393} 3394func (*UnimplementedSessionsServer) FulfillIntent(context.Context, *FulfillIntentRequest) (*FulfillIntentResponse, error) { 3395 return nil, status1.Errorf(codes.Unimplemented, "method FulfillIntent not implemented") 3396} 3397 3398func RegisterSessionsServer(s *grpc.Server, srv SessionsServer) { 3399 s.RegisterService(&_Sessions_serviceDesc, srv) 3400} 3401 3402func _Sessions_DetectIntent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3403 in := new(DetectIntentRequest) 3404 if err := dec(in); err != nil { 3405 return nil, err 3406 } 3407 if interceptor == nil { 3408 return srv.(SessionsServer).DetectIntent(ctx, in) 3409 } 3410 info := &grpc.UnaryServerInfo{ 3411 Server: srv, 3412 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Sessions/DetectIntent", 3413 } 3414 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3415 return srv.(SessionsServer).DetectIntent(ctx, req.(*DetectIntentRequest)) 3416 } 3417 return interceptor(ctx, in, info, handler) 3418} 3419 3420func _Sessions_StreamingDetectIntent_Handler(srv interface{}, stream grpc.ServerStream) error { 3421 return srv.(SessionsServer).StreamingDetectIntent(&sessionsStreamingDetectIntentServer{stream}) 3422} 3423 3424type Sessions_StreamingDetectIntentServer interface { 3425 Send(*StreamingDetectIntentResponse) error 3426 Recv() (*StreamingDetectIntentRequest, error) 3427 grpc.ServerStream 3428} 3429 3430type sessionsStreamingDetectIntentServer struct { 3431 grpc.ServerStream 3432} 3433 3434func (x *sessionsStreamingDetectIntentServer) Send(m *StreamingDetectIntentResponse) error { 3435 return x.ServerStream.SendMsg(m) 3436} 3437 3438func (x *sessionsStreamingDetectIntentServer) Recv() (*StreamingDetectIntentRequest, error) { 3439 m := new(StreamingDetectIntentRequest) 3440 if err := x.ServerStream.RecvMsg(m); err != nil { 3441 return nil, err 3442 } 3443 return m, nil 3444} 3445 3446func _Sessions_MatchIntent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3447 in := new(MatchIntentRequest) 3448 if err := dec(in); err != nil { 3449 return nil, err 3450 } 3451 if interceptor == nil { 3452 return srv.(SessionsServer).MatchIntent(ctx, in) 3453 } 3454 info := &grpc.UnaryServerInfo{ 3455 Server: srv, 3456 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Sessions/MatchIntent", 3457 } 3458 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3459 return srv.(SessionsServer).MatchIntent(ctx, req.(*MatchIntentRequest)) 3460 } 3461 return interceptor(ctx, in, info, handler) 3462} 3463 3464func _Sessions_FulfillIntent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3465 in := new(FulfillIntentRequest) 3466 if err := dec(in); err != nil { 3467 return nil, err 3468 } 3469 if interceptor == nil { 3470 return srv.(SessionsServer).FulfillIntent(ctx, in) 3471 } 3472 info := &grpc.UnaryServerInfo{ 3473 Server: srv, 3474 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Sessions/FulfillIntent", 3475 } 3476 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3477 return srv.(SessionsServer).FulfillIntent(ctx, req.(*FulfillIntentRequest)) 3478 } 3479 return interceptor(ctx, in, info, handler) 3480} 3481 3482var _Sessions_serviceDesc = grpc.ServiceDesc{ 3483 ServiceName: "google.cloud.dialogflow.cx.v3beta1.Sessions", 3484 HandlerType: (*SessionsServer)(nil), 3485 Methods: []grpc.MethodDesc{ 3486 { 3487 MethodName: "DetectIntent", 3488 Handler: _Sessions_DetectIntent_Handler, 3489 }, 3490 { 3491 MethodName: "MatchIntent", 3492 Handler: _Sessions_MatchIntent_Handler, 3493 }, 3494 { 3495 MethodName: "FulfillIntent", 3496 Handler: _Sessions_FulfillIntent_Handler, 3497 }, 3498 }, 3499 Streams: []grpc.StreamDesc{ 3500 { 3501 StreamName: "StreamingDetectIntent", 3502 Handler: _Sessions_StreamingDetectIntent_Handler, 3503 ServerStreams: true, 3504 ClientStreams: true, 3505 }, 3506 }, 3507 Metadata: "google/cloud/dialogflow/cx/v3beta1/session.proto", 3508} 3509