// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.22.0 // protoc v3.12.2 // source: google/cloud/mediatranslation/v1beta1/media_translation.proto package mediatranslation import ( context "context" reflect "reflect" sync "sync" proto "github.com/golang/protobuf/proto" _ "google.golang.org/genproto/googleapis/api/annotations" status "google.golang.org/genproto/googleapis/rpc/status" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status1 "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 // Indicates the type of speech event. type StreamingTranslateSpeechResponse_SpeechEventType int32 const ( // No speech event specified. StreamingTranslateSpeechResponse_SPEECH_EVENT_TYPE_UNSPECIFIED StreamingTranslateSpeechResponse_SpeechEventType = 0 // This event indicates that the server has detected the end of the user's // speech utterance and expects no additional speech. Therefore, the server // will not process additional audio (although it may subsequently return // additional results). When the client receives 'END_OF_SINGLE_UTTERANCE' // event, the client should stop sending the requests. However, clients // should keep receiving remaining responses until the stream is terminated. // To construct the complete sentence in a streaming way, one should // override (if 'is_final' of previous response is false), or append (if // 'is_final' of previous response is true). This event is only sent if // `single_utterance` was set to `true`, and is not used otherwise. StreamingTranslateSpeechResponse_END_OF_SINGLE_UTTERANCE StreamingTranslateSpeechResponse_SpeechEventType = 1 ) // Enum value maps for StreamingTranslateSpeechResponse_SpeechEventType. var ( StreamingTranslateSpeechResponse_SpeechEventType_name = map[int32]string{ 0: "SPEECH_EVENT_TYPE_UNSPECIFIED", 1: "END_OF_SINGLE_UTTERANCE", } StreamingTranslateSpeechResponse_SpeechEventType_value = map[string]int32{ "SPEECH_EVENT_TYPE_UNSPECIFIED": 0, "END_OF_SINGLE_UTTERANCE": 1, } ) func (x StreamingTranslateSpeechResponse_SpeechEventType) Enum() *StreamingTranslateSpeechResponse_SpeechEventType { p := new(StreamingTranslateSpeechResponse_SpeechEventType) *p = x return p } func (x StreamingTranslateSpeechResponse_SpeechEventType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (StreamingTranslateSpeechResponse_SpeechEventType) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_enumTypes[0].Descriptor() } func (StreamingTranslateSpeechResponse_SpeechEventType) Type() protoreflect.EnumType { return &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_enumTypes[0] } func (x StreamingTranslateSpeechResponse_SpeechEventType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use StreamingTranslateSpeechResponse_SpeechEventType.Descriptor instead. func (StreamingTranslateSpeechResponse_SpeechEventType) EnumDescriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{4, 0} } // Provides information to the speech translation that specifies how to process // the request. type TranslateSpeechConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Encoding of audio data. // Supported formats: // // - `linear16` // // Uncompressed 16-bit signed little-endian samples (Linear PCM). // // AudioEncoding string `protobuf:"bytes,1,opt,name=audio_encoding,json=audioEncoding,proto3" json:"audio_encoding,omitempty"` // Required. Source language code (BCP-47) of the input audio. SourceLanguageCode string `protobuf:"bytes,2,opt,name=source_language_code,json=sourceLanguageCode,proto3" json:"source_language_code,omitempty"` // Optional. A list of up to 3 additional language codes (BCP-47), listing possible // alternative languages of the supplied audio. If alternative source // languages are listed, speech translation result will translate in the most // likely language detected including the main source_language_code. The // translated result will include the language code of the language detected // in the audio. AlternativeSourceLanguageCodes []string `protobuf:"bytes,6,rep,name=alternative_source_language_codes,json=alternativeSourceLanguageCodes,proto3" json:"alternative_source_language_codes,omitempty"` // Required. Target language code (BCP-47) of the output. TargetLanguageCode string `protobuf:"bytes,3,opt,name=target_language_code,json=targetLanguageCode,proto3" json:"target_language_code,omitempty"` // Optional. Sample rate in Hertz of the audio data. Valid values are: // 8000-48000. 16000 is optimal. For best results, set the sampling rate of // the audio source to 16000 Hz. If that's not possible, use the native sample // rate of the audio source (instead of re-sampling). This field can only be // omitted for `FLAC` and `WAV` audio files. SampleRateHertz int32 `protobuf:"varint,4,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"` // Optional. Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"` } func (x *TranslateSpeechConfig) Reset() { *x = TranslateSpeechConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TranslateSpeechConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*TranslateSpeechConfig) ProtoMessage() {} func (x *TranslateSpeechConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TranslateSpeechConfig.ProtoReflect.Descriptor instead. func (*TranslateSpeechConfig) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{0} } func (x *TranslateSpeechConfig) GetAudioEncoding() string { if x != nil { return x.AudioEncoding } return "" } func (x *TranslateSpeechConfig) GetSourceLanguageCode() string { if x != nil { return x.SourceLanguageCode } return "" } func (x *TranslateSpeechConfig) GetAlternativeSourceLanguageCodes() []string { if x != nil { return x.AlternativeSourceLanguageCodes } return nil } func (x *TranslateSpeechConfig) GetTargetLanguageCode() string { if x != nil { return x.TargetLanguageCode } return "" } func (x *TranslateSpeechConfig) GetSampleRateHertz() int32 { if x != nil { return x.SampleRateHertz } return 0 } func (x *TranslateSpeechConfig) GetModel() string { if x != nil { return x.Model } return "" } // Config used for streaming translation. type StreamingTranslateSpeechConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The common config for all the following audio contents. AudioConfig *TranslateSpeechConfig `protobuf:"bytes,1,opt,name=audio_config,json=audioConfig,proto3" json:"audio_config,omitempty"` // Optional. If `false` or omitted, the system performs // continuous translation (continuing to wait for and process audio even if // the user pauses speaking) until the client closes the input stream (gRPC // API) or until the maximum time limit has been reached. May return multiple // `StreamingTranslateSpeechResult`s with the `is_final` flag set to `true`. // // If `true`, the speech translator will detect a single spoken utterance. // When it detects that the user has paused or stopped speaking, it will // return an `END_OF_SINGLE_UTTERANCE` event and cease translation. // When the client receives 'END_OF_SINGLE_UTTERANCE' event, the client should // stop sending the requests. However, clients should keep receiving remaining // responses until the stream is terminated. To construct the complete // sentence in a streaming way, one should override (if 'is_final' of previous // response is false), or append (if 'is_final' of previous response is true). SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"` } func (x *StreamingTranslateSpeechConfig) Reset() { *x = StreamingTranslateSpeechConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamingTranslateSpeechConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamingTranslateSpeechConfig) ProtoMessage() {} func (x *StreamingTranslateSpeechConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamingTranslateSpeechConfig.ProtoReflect.Descriptor instead. func (*StreamingTranslateSpeechConfig) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{1} } func (x *StreamingTranslateSpeechConfig) GetAudioConfig() *TranslateSpeechConfig { if x != nil { return x.AudioConfig } return nil } func (x *StreamingTranslateSpeechConfig) GetSingleUtterance() bool { if x != nil { return x.SingleUtterance } return false } // The top-level message sent by the client for the `StreamingTranslateSpeech` // method. Multiple `StreamingTranslateSpeechRequest` messages are sent. The // first message must contain a `streaming_config` message and must not contain // `audio_content` data. All subsequent messages must contain `audio_content` // data and must not contain a `streaming_config` message. type StreamingTranslateSpeechRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The streaming request, which is either a streaming config or content. // // Types that are assignable to StreamingRequest: // *StreamingTranslateSpeechRequest_StreamingConfig // *StreamingTranslateSpeechRequest_AudioContent StreamingRequest isStreamingTranslateSpeechRequest_StreamingRequest `protobuf_oneof:"streaming_request"` } func (x *StreamingTranslateSpeechRequest) Reset() { *x = StreamingTranslateSpeechRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamingTranslateSpeechRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamingTranslateSpeechRequest) ProtoMessage() {} func (x *StreamingTranslateSpeechRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamingTranslateSpeechRequest.ProtoReflect.Descriptor instead. func (*StreamingTranslateSpeechRequest) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{2} } func (m *StreamingTranslateSpeechRequest) GetStreamingRequest() isStreamingTranslateSpeechRequest_StreamingRequest { if m != nil { return m.StreamingRequest } return nil } func (x *StreamingTranslateSpeechRequest) GetStreamingConfig() *StreamingTranslateSpeechConfig { if x, ok := x.GetStreamingRequest().(*StreamingTranslateSpeechRequest_StreamingConfig); ok { return x.StreamingConfig } return nil } func (x *StreamingTranslateSpeechRequest) GetAudioContent() []byte { if x, ok := x.GetStreamingRequest().(*StreamingTranslateSpeechRequest_AudioContent); ok { return x.AudioContent } return nil } type isStreamingTranslateSpeechRequest_StreamingRequest interface { isStreamingTranslateSpeechRequest_StreamingRequest() } type StreamingTranslateSpeechRequest_StreamingConfig struct { // Provides information to the recognizer that specifies how to process the // request. The first `StreamingTranslateSpeechRequest` message must contain // a `streaming_config` message. StreamingConfig *StreamingTranslateSpeechConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,proto3,oneof"` } type StreamingTranslateSpeechRequest_AudioContent struct { // The audio data to be translated. Sequential chunks of audio data are sent // in sequential `StreamingTranslateSpeechRequest` messages. The first // `StreamingTranslateSpeechRequest` message must not contain // `audio_content` data and all subsequent `StreamingTranslateSpeechRequest` // messages must contain `audio_content` data. The audio bytes must be // encoded as specified in `StreamingTranslateSpeechConfig`. Note: as with // all bytes fields, protobuffers use a pure binary representation (not // base64). AudioContent []byte `protobuf:"bytes,2,opt,name=audio_content,json=audioContent,proto3,oneof"` } func (*StreamingTranslateSpeechRequest_StreamingConfig) isStreamingTranslateSpeechRequest_StreamingRequest() { } func (*StreamingTranslateSpeechRequest_AudioContent) isStreamingTranslateSpeechRequest_StreamingRequest() { } // A streaming speech translation result corresponding to a portion of the audio // that is currently being processed. type StreamingTranslateSpeechResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Translation result. // // Use oneof field to reserve for future tts result. // // Types that are assignable to Result: // *StreamingTranslateSpeechResult_TextTranslationResult_ Result isStreamingTranslateSpeechResult_Result `protobuf_oneof:"result"` // Output only. The debug only recognition result in original language. This field is debug // only and will be set to empty string if not available. // This is implementation detail and will not be backward compatible. // // Still need to decide whether to expose this field by default. RecognitionResult string `protobuf:"bytes,3,opt,name=recognition_result,json=recognitionResult,proto3" json:"recognition_result,omitempty"` } func (x *StreamingTranslateSpeechResult) Reset() { *x = StreamingTranslateSpeechResult{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamingTranslateSpeechResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamingTranslateSpeechResult) ProtoMessage() {} func (x *StreamingTranslateSpeechResult) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamingTranslateSpeechResult.ProtoReflect.Descriptor instead. func (*StreamingTranslateSpeechResult) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{3} } func (m *StreamingTranslateSpeechResult) GetResult() isStreamingTranslateSpeechResult_Result { if m != nil { return m.Result } return nil } func (x *StreamingTranslateSpeechResult) GetTextTranslationResult() *StreamingTranslateSpeechResult_TextTranslationResult { if x, ok := x.GetResult().(*StreamingTranslateSpeechResult_TextTranslationResult_); ok { return x.TextTranslationResult } return nil } func (x *StreamingTranslateSpeechResult) GetRecognitionResult() string { if x != nil { return x.RecognitionResult } return "" } type isStreamingTranslateSpeechResult_Result interface { isStreamingTranslateSpeechResult_Result() } type StreamingTranslateSpeechResult_TextTranslationResult_ struct { // Text translation result. TextTranslationResult *StreamingTranslateSpeechResult_TextTranslationResult `protobuf:"bytes,1,opt,name=text_translation_result,json=textTranslationResult,proto3,oneof"` } func (*StreamingTranslateSpeechResult_TextTranslationResult_) isStreamingTranslateSpeechResult_Result() { } // A streaming speech translation response corresponding to a portion of // the audio currently processed. type StreamingTranslateSpeechResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that // specifies the error for the operation. Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` // Output only. The translation result that is currently being processed (is_final could be // true or false). Result *StreamingTranslateSpeechResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` // Output only. Indicates the type of speech event. SpeechEventType StreamingTranslateSpeechResponse_SpeechEventType `protobuf:"varint,3,opt,name=speech_event_type,json=speechEventType,proto3,enum=google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse_SpeechEventType" json:"speech_event_type,omitempty"` } func (x *StreamingTranslateSpeechResponse) Reset() { *x = StreamingTranslateSpeechResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamingTranslateSpeechResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamingTranslateSpeechResponse) ProtoMessage() {} func (x *StreamingTranslateSpeechResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamingTranslateSpeechResponse.ProtoReflect.Descriptor instead. func (*StreamingTranslateSpeechResponse) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{4} } func (x *StreamingTranslateSpeechResponse) GetError() *status.Status { if x != nil { return x.Error } return nil } func (x *StreamingTranslateSpeechResponse) GetResult() *StreamingTranslateSpeechResult { if x != nil { return x.Result } return nil } func (x *StreamingTranslateSpeechResponse) GetSpeechEventType() StreamingTranslateSpeechResponse_SpeechEventType { if x != nil { return x.SpeechEventType } return StreamingTranslateSpeechResponse_SPEECH_EVENT_TYPE_UNSPECIFIED } // Text translation result. type StreamingTranslateSpeechResult_TextTranslationResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The translated sentence. Translation string `protobuf:"bytes,1,opt,name=translation,proto3" json:"translation,omitempty"` // Output only. If `false`, this `StreamingTranslateSpeechResult` represents // an interim result that may change. If `true`, this is the final time the // translation service will return this particular // `StreamingTranslateSpeechResult`, the streaming translator will not // return any further hypotheses for this portion of the transcript and // corresponding audio. IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"` // Output only. The source language code (BCP-47) detected in the audio. Speech // translation result will translate in the most likely language detected // including the alternative source languages and main source_language_code. DetectedSourceLanguageCode string `protobuf:"bytes,3,opt,name=detected_source_language_code,json=detectedSourceLanguageCode,proto3" json:"detected_source_language_code,omitempty"` } func (x *StreamingTranslateSpeechResult_TextTranslationResult) Reset() { *x = StreamingTranslateSpeechResult_TextTranslationResult{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamingTranslateSpeechResult_TextTranslationResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamingTranslateSpeechResult_TextTranslationResult) ProtoMessage() {} func (x *StreamingTranslateSpeechResult_TextTranslationResult) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamingTranslateSpeechResult_TextTranslationResult.ProtoReflect.Descriptor instead. func (*StreamingTranslateSpeechResult_TextTranslationResult) Descriptor() ([]byte, []int) { return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP(), []int{3, 0} } func (x *StreamingTranslateSpeechResult_TextTranslationResult) GetTranslation() string { if x != nil { return x.Translation } return "" } func (x *StreamingTranslateSpeechResult_TextTranslationResult) GetIsFinal() bool { if x != nil { return x.IsFinal } return false } func (x *StreamingTranslateSpeechResult_TextTranslationResult) GetDetectedSourceLanguageCode() string { if x != nil { return x.DetectedSourceLanguageCode } return "" } var File_google_cloud_mediatranslation_v1beta1_media_translation_proto protoreflect.FileDescriptor var file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDesc = []byte{ 0x0a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x02, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x21, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x74, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x65, 0x72, 0x74, 0x7a, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0xb6, 0x01, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x64, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x72, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9f, 0x03, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x17, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x15, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xa6, 0x01, 0x0a, 0x15, 0x54, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x1d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x93, 0x03, 0x0a, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x62, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x55, 0x54, 0x54, 0x45, 0x52, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x32, 0xa3, 0x02, 0x0a, 0x18, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb1, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x1a, 0x53, 0xca, 0x41, 0x1f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x99, 0x02, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x15, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x55, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescOnce sync.Once file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescData = file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDesc ) func file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescGZIP() []byte { file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescOnce.Do(func() { file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescData) }) return file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDescData } var file_google_cloud_mediatranslation_v1beta1_media_translation_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_google_cloud_mediatranslation_v1beta1_media_translation_proto_goTypes = []interface{}{ (StreamingTranslateSpeechResponse_SpeechEventType)(0), // 0: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType (*TranslateSpeechConfig)(nil), // 1: google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig (*StreamingTranslateSpeechConfig)(nil), // 2: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig (*StreamingTranslateSpeechRequest)(nil), // 3: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechRequest (*StreamingTranslateSpeechResult)(nil), // 4: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult (*StreamingTranslateSpeechResponse)(nil), // 5: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse (*StreamingTranslateSpeechResult_TextTranslationResult)(nil), // 6: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.TextTranslationResult (*status.Status)(nil), // 7: google.rpc.Status } var file_google_cloud_mediatranslation_v1beta1_media_translation_proto_depIdxs = []int32{ 1, // 0: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig.audio_config:type_name -> google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig 2, // 1: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechRequest.streaming_config:type_name -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig 6, // 2: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.text_translation_result:type_name -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.TextTranslationResult 7, // 3: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.error:type_name -> google.rpc.Status 4, // 4: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.result:type_name -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult 0, // 5: google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.speech_event_type:type_name -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType 3, // 6: google.cloud.mediatranslation.v1beta1.SpeechTranslationService.StreamingTranslateSpeech:input_type -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechRequest 5, // 7: google.cloud.mediatranslation.v1beta1.SpeechTranslationService.StreamingTranslateSpeech:output_type -> google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse 7, // [7:8] is the sub-list for method output_type 6, // [6:7] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name } func init() { file_google_cloud_mediatranslation_v1beta1_media_translation_proto_init() } func file_google_cloud_mediatranslation_v1beta1_media_translation_proto_init() { if File_google_cloud_mediatranslation_v1beta1_media_translation_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TranslateSpeechConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamingTranslateSpeechConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamingTranslateSpeechRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamingTranslateSpeechResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamingTranslateSpeechResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamingTranslateSpeechResult_TextTranslationResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[2].OneofWrappers = []interface{}{ (*StreamingTranslateSpeechRequest_StreamingConfig)(nil), (*StreamingTranslateSpeechRequest_AudioContent)(nil), } file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes[3].OneofWrappers = []interface{}{ (*StreamingTranslateSpeechResult_TextTranslationResult_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDesc, NumEnums: 1, NumMessages: 6, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_mediatranslation_v1beta1_media_translation_proto_goTypes, DependencyIndexes: file_google_cloud_mediatranslation_v1beta1_media_translation_proto_depIdxs, EnumInfos: file_google_cloud_mediatranslation_v1beta1_media_translation_proto_enumTypes, MessageInfos: file_google_cloud_mediatranslation_v1beta1_media_translation_proto_msgTypes, }.Build() File_google_cloud_mediatranslation_v1beta1_media_translation_proto = out.File file_google_cloud_mediatranslation_v1beta1_media_translation_proto_rawDesc = nil file_google_cloud_mediatranslation_v1beta1_media_translation_proto_goTypes = nil file_google_cloud_mediatranslation_v1beta1_media_translation_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // SpeechTranslationServiceClient is the client API for SpeechTranslationService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type SpeechTranslationServiceClient interface { // Performs bidirectional streaming speech translation: receive results while // sending audio. This method is only available via the gRPC API (not REST). StreamingTranslateSpeech(ctx context.Context, opts ...grpc.CallOption) (SpeechTranslationService_StreamingTranslateSpeechClient, error) } type speechTranslationServiceClient struct { cc grpc.ClientConnInterface } func NewSpeechTranslationServiceClient(cc grpc.ClientConnInterface) SpeechTranslationServiceClient { return &speechTranslationServiceClient{cc} } func (c *speechTranslationServiceClient) StreamingTranslateSpeech(ctx context.Context, opts ...grpc.CallOption) (SpeechTranslationService_StreamingTranslateSpeechClient, error) { stream, err := c.cc.NewStream(ctx, &_SpeechTranslationService_serviceDesc.Streams[0], "/google.cloud.mediatranslation.v1beta1.SpeechTranslationService/StreamingTranslateSpeech", opts...) if err != nil { return nil, err } x := &speechTranslationServiceStreamingTranslateSpeechClient{stream} return x, nil } type SpeechTranslationService_StreamingTranslateSpeechClient interface { Send(*StreamingTranslateSpeechRequest) error Recv() (*StreamingTranslateSpeechResponse, error) grpc.ClientStream } type speechTranslationServiceStreamingTranslateSpeechClient struct { grpc.ClientStream } func (x *speechTranslationServiceStreamingTranslateSpeechClient) Send(m *StreamingTranslateSpeechRequest) error { return x.ClientStream.SendMsg(m) } func (x *speechTranslationServiceStreamingTranslateSpeechClient) Recv() (*StreamingTranslateSpeechResponse, error) { m := new(StreamingTranslateSpeechResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } // SpeechTranslationServiceServer is the server API for SpeechTranslationService service. type SpeechTranslationServiceServer interface { // Performs bidirectional streaming speech translation: receive results while // sending audio. This method is only available via the gRPC API (not REST). StreamingTranslateSpeech(SpeechTranslationService_StreamingTranslateSpeechServer) error } // UnimplementedSpeechTranslationServiceServer can be embedded to have forward compatible implementations. type UnimplementedSpeechTranslationServiceServer struct { } func (*UnimplementedSpeechTranslationServiceServer) StreamingTranslateSpeech(SpeechTranslationService_StreamingTranslateSpeechServer) error { return status1.Errorf(codes.Unimplemented, "method StreamingTranslateSpeech not implemented") } func RegisterSpeechTranslationServiceServer(s *grpc.Server, srv SpeechTranslationServiceServer) { s.RegisterService(&_SpeechTranslationService_serviceDesc, srv) } func _SpeechTranslationService_StreamingTranslateSpeech_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(SpeechTranslationServiceServer).StreamingTranslateSpeech(&speechTranslationServiceStreamingTranslateSpeechServer{stream}) } type SpeechTranslationService_StreamingTranslateSpeechServer interface { Send(*StreamingTranslateSpeechResponse) error Recv() (*StreamingTranslateSpeechRequest, error) grpc.ServerStream } type speechTranslationServiceStreamingTranslateSpeechServer struct { grpc.ServerStream } func (x *speechTranslationServiceStreamingTranslateSpeechServer) Send(m *StreamingTranslateSpeechResponse) error { return x.ServerStream.SendMsg(m) } func (x *speechTranslationServiceStreamingTranslateSpeechServer) Recv() (*StreamingTranslateSpeechRequest, error) { m := new(StreamingTranslateSpeechRequest) if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } return m, nil } var _SpeechTranslationService_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.mediatranslation.v1beta1.SpeechTranslationService", HandlerType: (*SpeechTranslationServiceServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "StreamingTranslateSpeech", Handler: _SpeechTranslationService_StreamingTranslateSpeech_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "google/cloud/mediatranslation/v1beta1/media_translation.proto", }