diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/agent.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/agent.pb.go index eead660cd..e9c719fae 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/agent.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/agent.proto @@ -102,23 +102,16 @@ func (x *SpeechToTextSettings) GetEnableSpeechAdaptation() bool { // in your app, product, or service to determine user intent and respond to the // user in a natural way. // -// After you create an agent, you can add -// [Intents][google.cloud.dialogflow.cx.v3beta1.Intent], [Entity -// Types][google.cloud.dialogflow.cx.v3beta1.EntityType], -// [Flows][google.cloud.dialogflow.cx.v3beta1.Flow], -// [Fulfillments][google.cloud.dialogflow.cx.v3beta1.Fulfillment], -// [Webhooks][google.cloud.dialogflow.cx.v3beta1.Webhook], and so on to manage -// the conversation flows.. +// After you create an agent, you can add [Intents][google.cloud.dialogflow.cx.v3beta1.Intent], +// [Entity Types][google.cloud.dialogflow.cx.v3beta1.EntityType], [Flows][google.cloud.dialogflow.cx.v3beta1.Flow], [Fulfillments][google.cloud.dialogflow.cx.v3beta1.Fulfillment], +// [Webhooks][google.cloud.dialogflow.cx.v3beta1.Webhook], and so on to manage the conversation flows.. type Agent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique identifier of the agent. - // Required for the - // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent] - // method. - // [Agents.CreateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent] + // Required for the [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent] method. [Agents.CreateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent] // populates the name automatically. // Format: `projects//locations//agents/`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -128,9 +121,7 @@ type Agent struct { // See [Language // Support](https://cloud.google.com/dialogflow/docs/reference/language) // for a list of the currently supported language codes. - // This field cannot be set by the - // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent] - // method. + // This field cannot be set by the [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent] method. DefaultLanguageCode string `protobuf:"bytes,3,opt,name=default_language_code,json=defaultLanguageCode,proto3" json:"default_language_code,omitempty"` // Required. The time zone of the agent from the [time zone // database](https://www.iana.org/time-zones), e.g., America/New_York, @@ -146,11 +137,16 @@ type Agent struct { AvatarUri string `protobuf:"bytes,7,opt,name=avatar_uri,json=avatarUri,proto3" json:"avatar_uri,omitempty"` // Speech recognition related settings. SpeechToTextSettings *SpeechToTextSettings `protobuf:"bytes,13,opt,name=speech_to_text_settings,json=speechToTextSettings,proto3" json:"speech_to_text_settings,omitempty"` - // Immutable. Name of the start flow in this agent. A start flow will be - // automatically created when the agent is created, and can only be deleted by - // deleting the agent. Format: `projects//locations//agents//flows/`. + // Immutable. Name of the start flow in this agent. A start flow will be automatically + // created when the agent is created, and can only be deleted by deleting the + // agent. + // Format: `projects//locations//agents//flows/`. StartFlow string `protobuf:"bytes,16,opt,name=start_flow,json=startFlow,proto3" json:"start_flow,omitempty"` + // Name of the [SecuritySettings][google.cloud.dialogflow.cx.v3beta1.SecuritySettings] reference for the agent. + // Format: `projects//locations//securitySettings/`. + SecuritySettings string `protobuf:"bytes,17,opt,name=security_settings,json=securitySettings,proto3" json:"security_settings,omitempty"` // Indicates if stackdriver logging is enabled for the agent. EnableStackdriverLogging bool `protobuf:"varint,18,opt,name=enable_stackdriver_logging,json=enableStackdriverLogging,proto3" json:"enable_stackdriver_logging,omitempty"` // Indicates if automatic spell correction is enabled in detect intent @@ -246,6 +242,13 @@ func (x *Agent) GetStartFlow() string { return "" } +func (x *Agent) GetSecuritySettings() string { + if x != nil { + return x.SecuritySettings + } + return "" +} + func (x *Agent) GetEnableStackdriverLogging() bool { if x != nil { return x.EnableStackdriverLogging @@ -260,8 +263,7 @@ func (x *Agent) GetEnableSpellCorrection() bool { return false } -// The request message for -// [Agents.ListAgents][google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents]. +// The request message for [Agents.ListAgents][google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents]. type ListAgentsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -330,8 +332,7 @@ func (x *ListAgentsRequest) GetPageToken() string { return "" } -// The response message for -// [Agents.ListAgents][google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents]. +// The response message for [Agents.ListAgents][google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents]. type ListAgentsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -391,8 +392,7 @@ func (x *ListAgentsResponse) GetNextPageToken() string { return "" } -// The request message for -// [Agents.GetAgent][google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent]. +// The request message for [Agents.GetAgent][google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent]. type GetAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -442,8 +442,7 @@ func (x *GetAgentRequest) GetName() string { return "" } -// The request message for -// [Agents.CreateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent]. +// The request message for [Agents.CreateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent]. type CreateAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -502,8 +501,7 @@ func (x *CreateAgentRequest) GetAgent() *Agent { return nil } -// The request message for -// [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent]. +// The request message for [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent]. type UpdateAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -562,8 +560,7 @@ func (x *UpdateAgentRequest) GetUpdateMask() *fieldmaskpb.FieldMask { return nil } -// The request message for -// [Agents.DeleteAgent][google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent]. +// The request message for [Agents.DeleteAgent][google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent]. type DeleteAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -613,8 +610,7 @@ func (x *DeleteAgentRequest) GetName() string { return "" } -// The request message for -// [Agents.ExportAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent]. +// The request message for [Agents.ExportAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent]. type ExportAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -623,10 +619,10 @@ type ExportAgentRequest struct { // Required. The name of the agent to export. // Format: `projects//locations//agents/`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Optional. The [Google Cloud - // Storage](https://cloud.google.com/storage/docs/) URI to export the agent - // to. The format of this URI must be `gs:///`. If - // left unspecified, the serialized agent is returned inline. + // Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to + // export the agent to. The format of this URI must be + // `gs:///`. + // If left unspecified, the serialized agent is returned inline. AgentUri string `protobuf:"bytes,2,opt,name=agent_uri,json=agentUri,proto3" json:"agent_uri,omitempty"` } @@ -676,8 +672,7 @@ func (x *ExportAgentRequest) GetAgentUri() string { return "" } -// The response message for -// [Agents.ExportAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent]. +// The response message for [Agents.ExportAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent]. type ExportAgentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -750,8 +745,7 @@ type isExportAgentResponse_Agent interface { type ExportAgentResponse_AgentUri struct { // The URI to a file containing the exported agent. This field is populated - // only if `agent_uri` is specified in - // [ExportAgentRequest][google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest]. + // only if `agent_uri` is specified in [ExportAgentRequest][google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest]. AgentUri string `protobuf:"bytes,1,opt,name=agent_uri,json=agentUri,proto3,oneof"` } @@ -764,8 +758,7 @@ func (*ExportAgentResponse_AgentUri) isExportAgentResponse_Agent() {} func (*ExportAgentResponse_AgentContent) isExportAgentResponse_Agent() {} -// The request message for -// [Agents.RestoreAgent][google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent]. +// The request message for [Agents.RestoreAgent][google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent]. type RestoreAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -862,6 +855,185 @@ func (*RestoreAgentRequest_AgentUri) isRestoreAgentRequest_Agent() {} func (*RestoreAgentRequest_AgentContent) isRestoreAgentRequest_Agent() {} +// The request message for [Agents.ValidateAgent][google.cloud.dialogflow.cx.v3beta1.Agents.ValidateAgent]. +type ValidateAgentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to validate. + // Format: `projects//locations//agents/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If not specified, the agent's default language is used. + LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` +} + +func (x *ValidateAgentRequest) Reset() { + *x = ValidateAgentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateAgentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateAgentRequest) ProtoMessage() {} + +func (x *ValidateAgentRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateAgentRequest.ProtoReflect.Descriptor instead. +func (*ValidateAgentRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDescGZIP(), []int{11} +} + +func (x *ValidateAgentRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ValidateAgentRequest) GetLanguageCode() string { + if x != nil { + return x.LanguageCode + } + return "" +} + +// The request message for [Agents.GetAgentValidationResult][google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult]. +type GetAgentValidationResultRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent name. + // Format: `projects//locations//agents//validationResult`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If not specified, the agent's default language is used. + LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` +} + +func (x *GetAgentValidationResultRequest) Reset() { + *x = GetAgentValidationResultRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAgentValidationResultRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAgentValidationResultRequest) ProtoMessage() {} + +func (x *GetAgentValidationResultRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAgentValidationResultRequest.ProtoReflect.Descriptor instead. +func (*GetAgentValidationResultRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDescGZIP(), []int{12} +} + +func (x *GetAgentValidationResultRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetAgentValidationResultRequest) GetLanguageCode() string { + if x != nil { + return x.LanguageCode + } + return "" +} + +// The response message for [Agents.GetAgentValidationResult][google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult]. +type AgentValidationResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier of the agent validation result. + // Format: `projects//locations//agents//validationResult`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Contains all flow validation results. + FlowValidationResults []*FlowValidationResult `protobuf:"bytes,2,rep,name=flow_validation_results,json=flowValidationResults,proto3" json:"flow_validation_results,omitempty"` +} + +func (x *AgentValidationResult) Reset() { + *x = AgentValidationResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AgentValidationResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgentValidationResult) ProtoMessage() {} + +func (x *AgentValidationResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AgentValidationResult.ProtoReflect.Descriptor instead. +func (*AgentValidationResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDescGZIP(), []int{13} +} + +func (x *AgentValidationResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AgentValidationResult) GetFlowValidationResults() []*FlowValidationResult { + if x != nil { + return x.FlowValidationResults + } + return nil +} + var File_google_cloud_dialogflow_cx_v3beta1_agent_proto protoreflect.FileDescriptor var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDesc = []byte{ @@ -895,7 +1067,7 @@ var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDesc = []byte{ 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xeb, 0x04, 0x0a, 0x05, 0x41, 0x67, 0x65, + 0x61, 0x70, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x05, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, @@ -921,196 +1093,264 @@ var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDesc = []byte{ 0x26, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6c, - 0x6f, 0x77, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x6c, 0x6c, - 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x6f, - 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x1f, 0x64, - 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x90, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, - 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7f, 0x0a, 0x12, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x41, 0x0a, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, - 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4e, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, - 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, - 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x44, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, - 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, + 0x6f, 0x77, 0x12, 0x5c, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xfa, + 0x41, 0x2c, 0x0a, 0x2a, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x10, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x36, + 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x5f, 0x63, + 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x72, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x1f, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x7d, 0x22, 0x90, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x21, 0x12, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7f, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, + 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x69, 0x22, 0x64, 0x0a, 0x13, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x69, - 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, - 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x75, - 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x55, 0x72, 0x69, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x32, 0xd7, 0x0b, 0x0a, 0x06, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0xbd, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0xaa, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x67, + 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x44, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, + 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x22, 0x51, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, + 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x69, 0x22, 0x64, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1d, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x69, 0x12, 0x25, + 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xa1, + 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x55, + 0x72, 0x69, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, + 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x01, 0x0a, + 0x1f, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x4b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x31, 0x0a, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x15, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x70, 0x0a, 0x17, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, - 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbf, 0x01, 0x0a, - 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, - 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, - 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, - 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x22, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0xda, - 0x41, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0xca, - 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x15, 0x66, 0x6c, 0x6f, + 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x3a, 0x7d, 0xea, 0x41, 0x7a, 0x0a, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, + 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x32, 0x91, 0x0f, 0x0a, 0x06, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xbd, 0x01, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, + 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xaa, 0x01, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x32, 0x35, 0x2f, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x3a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x11, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x9d, 0x01, 0x0a, 0x0b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, + 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x38, 0x22, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x0c, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0xca, 0x01, 0x0a, 0x0b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x58, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x32, 0x35, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x05, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x11, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x2a, 0x2f, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd7, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, + 0x01, 0x2a, 0xca, 0x41, 0x2d, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0xdc, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3c, 0x22, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd7, 0x01, 0x0a, 0x0b, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0xca, + 0x41, 0x2f, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x12, 0xc9, 0x01, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, + 0x22, 0x38, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0xeb, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x42, 0x12, 0x40, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 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, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xa9, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, - 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x33, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x2d, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0xdc, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x22, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, - 0x01, 0x2a, 0xca, 0x41, 0x2f, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x16, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0xd2, 0x41, 0x59, 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, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xa9, - 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, - 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, - 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, - 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x42, 0x0a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, + 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, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1125,48 +1365,57 @@ func file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDescGZIP() []byte { return file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDescData } -var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_goTypes = []interface{}{ - (*SpeechToTextSettings)(nil), // 0: google.cloud.dialogflow.cx.v3beta1.SpeechToTextSettings - (*Agent)(nil), // 1: google.cloud.dialogflow.cx.v3beta1.Agent - (*ListAgentsRequest)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.ListAgentsRequest - (*ListAgentsResponse)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.ListAgentsResponse - (*GetAgentRequest)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.GetAgentRequest - (*CreateAgentRequest)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.CreateAgentRequest - (*UpdateAgentRequest)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest - (*DeleteAgentRequest)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.DeleteAgentRequest - (*ExportAgentRequest)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest - (*ExportAgentResponse)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.ExportAgentResponse - (*RestoreAgentRequest)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.RestoreAgentRequest - (*fieldmaskpb.FieldMask)(nil), // 11: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 12: google.protobuf.Empty - (*longrunning.Operation)(nil), // 13: google.longrunning.Operation + (*SpeechToTextSettings)(nil), // 0: google.cloud.dialogflow.cx.v3beta1.SpeechToTextSettings + (*Agent)(nil), // 1: google.cloud.dialogflow.cx.v3beta1.Agent + (*ListAgentsRequest)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.ListAgentsRequest + (*ListAgentsResponse)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.ListAgentsResponse + (*GetAgentRequest)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.GetAgentRequest + (*CreateAgentRequest)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.CreateAgentRequest + (*UpdateAgentRequest)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest + (*DeleteAgentRequest)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.DeleteAgentRequest + (*ExportAgentRequest)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest + (*ExportAgentResponse)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.ExportAgentResponse + (*RestoreAgentRequest)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.RestoreAgentRequest + (*ValidateAgentRequest)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.ValidateAgentRequest + (*GetAgentValidationResultRequest)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.GetAgentValidationResultRequest + (*AgentValidationResult)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.AgentValidationResult + (*fieldmaskpb.FieldMask)(nil), // 14: google.protobuf.FieldMask + (*FlowValidationResult)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.FlowValidationResult + (*emptypb.Empty)(nil), // 16: google.protobuf.Empty + (*longrunning.Operation)(nil), // 17: google.longrunning.Operation } var file_google_cloud_dialogflow_cx_v3beta1_agent_proto_depIdxs = []int32{ 0, // 0: google.cloud.dialogflow.cx.v3beta1.Agent.speech_to_text_settings:type_name -> google.cloud.dialogflow.cx.v3beta1.SpeechToTextSettings 1, // 1: google.cloud.dialogflow.cx.v3beta1.ListAgentsResponse.agents:type_name -> google.cloud.dialogflow.cx.v3beta1.Agent 1, // 2: google.cloud.dialogflow.cx.v3beta1.CreateAgentRequest.agent:type_name -> google.cloud.dialogflow.cx.v3beta1.Agent 1, // 3: google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest.agent:type_name -> google.cloud.dialogflow.cx.v3beta1.Agent - 11, // 4: google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest.update_mask:type_name -> google.protobuf.FieldMask - 2, // 5: google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents:input_type -> google.cloud.dialogflow.cx.v3beta1.ListAgentsRequest - 4, // 6: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.GetAgentRequest - 5, // 7: google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateAgentRequest - 6, // 8: google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest - 7, // 9: google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.DeleteAgentRequest - 8, // 10: google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest - 10, // 11: google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.RestoreAgentRequest - 3, // 12: google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents:output_type -> google.cloud.dialogflow.cx.v3beta1.ListAgentsResponse - 1, // 13: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent - 1, // 14: google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent - 1, // 15: google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent - 12, // 16: google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent:output_type -> google.protobuf.Empty - 13, // 17: google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent:output_type -> google.longrunning.Operation - 13, // 18: google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent:output_type -> google.longrunning.Operation - 12, // [12:19] is the sub-list for method output_type - 5, // [5:12] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 14, // 4: google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest.update_mask:type_name -> google.protobuf.FieldMask + 15, // 5: google.cloud.dialogflow.cx.v3beta1.AgentValidationResult.flow_validation_results:type_name -> google.cloud.dialogflow.cx.v3beta1.FlowValidationResult + 2, // 6: google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents:input_type -> google.cloud.dialogflow.cx.v3beta1.ListAgentsRequest + 4, // 7: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.GetAgentRequest + 5, // 8: google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateAgentRequest + 6, // 9: google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateAgentRequest + 7, // 10: google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.DeleteAgentRequest + 8, // 11: google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.ExportAgentRequest + 10, // 12: google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.RestoreAgentRequest + 11, // 13: google.cloud.dialogflow.cx.v3beta1.Agents.ValidateAgent:input_type -> google.cloud.dialogflow.cx.v3beta1.ValidateAgentRequest + 12, // 14: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult:input_type -> google.cloud.dialogflow.cx.v3beta1.GetAgentValidationResultRequest + 3, // 15: google.cloud.dialogflow.cx.v3beta1.Agents.ListAgents:output_type -> google.cloud.dialogflow.cx.v3beta1.ListAgentsResponse + 1, // 16: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent + 1, // 17: google.cloud.dialogflow.cx.v3beta1.Agents.CreateAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent + 1, // 18: google.cloud.dialogflow.cx.v3beta1.Agents.UpdateAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.Agent + 16, // 19: google.cloud.dialogflow.cx.v3beta1.Agents.DeleteAgent:output_type -> google.protobuf.Empty + 17, // 20: google.cloud.dialogflow.cx.v3beta1.Agents.ExportAgent:output_type -> google.longrunning.Operation + 17, // 21: google.cloud.dialogflow.cx.v3beta1.Agents.RestoreAgent:output_type -> google.longrunning.Operation + 13, // 22: google.cloud.dialogflow.cx.v3beta1.Agents.ValidateAgent:output_type -> google.cloud.dialogflow.cx.v3beta1.AgentValidationResult + 13, // 23: google.cloud.dialogflow.cx.v3beta1.Agents.GetAgentValidationResult:output_type -> google.cloud.dialogflow.cx.v3beta1.AgentValidationResult + 15, // [15:24] is the sub-list for method output_type + 6, // [6:15] 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_dialogflow_cx_v3beta1_agent_proto_init() } @@ -1309,6 +1558,42 @@ func file_google_cloud_dialogflow_cx_v3beta1_agent_proto_init() { return nil } } + file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateAgentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAgentValidationResultRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgentValidationResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_google_cloud_dialogflow_cx_v3beta1_agent_proto_msgTypes[9].OneofWrappers = []interface{}{ (*ExportAgentResponse_AgentUri)(nil), @@ -1324,7 +1609,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_agent_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_agent_proto_rawDesc, NumEnums: 0, - NumMessages: 11, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, @@ -1367,6 +1652,13 @@ type AgentsClient interface { // Replaces the current agent with a new one. Note that all existing resources // in agent (e.g. intents, entity types, flows) will be removed. RestoreAgent(ctx context.Context, in *RestoreAgentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Validates the specified agent and creates or updates validation results. + // The agent in draft version is validated. Please call this API after the + // training is completed to get the complete validation results. + ValidateAgent(ctx context.Context, in *ValidateAgentRequest, opts ...grpc.CallOption) (*AgentValidationResult, error) + // Gets the latest agent validation result. Agent validation is performed + // when ValidateAgent is called. + GetAgentValidationResult(ctx context.Context, in *GetAgentValidationResultRequest, opts ...grpc.CallOption) (*AgentValidationResult, error) } type agentsClient struct { @@ -1440,6 +1732,24 @@ func (c *agentsClient) RestoreAgent(ctx context.Context, in *RestoreAgentRequest return out, nil } +func (c *agentsClient) ValidateAgent(ctx context.Context, in *ValidateAgentRequest, opts ...grpc.CallOption) (*AgentValidationResult, error) { + out := new(AgentValidationResult) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Agents/ValidateAgent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *agentsClient) GetAgentValidationResult(ctx context.Context, in *GetAgentValidationResultRequest, opts ...grpc.CallOption) (*AgentValidationResult, error) { + out := new(AgentValidationResult) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Agents/GetAgentValidationResult", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // AgentsServer is the server API for Agents service. type AgentsServer interface { // Returns the list of all agents in the specified location. @@ -1459,6 +1769,13 @@ type AgentsServer interface { // Replaces the current agent with a new one. Note that all existing resources // in agent (e.g. intents, entity types, flows) will be removed. RestoreAgent(context.Context, *RestoreAgentRequest) (*longrunning.Operation, error) + // Validates the specified agent and creates or updates validation results. + // The agent in draft version is validated. Please call this API after the + // training is completed to get the complete validation results. + ValidateAgent(context.Context, *ValidateAgentRequest) (*AgentValidationResult, error) + // Gets the latest agent validation result. Agent validation is performed + // when ValidateAgent is called. + GetAgentValidationResult(context.Context, *GetAgentValidationResultRequest) (*AgentValidationResult, error) } // UnimplementedAgentsServer can be embedded to have forward compatible implementations. @@ -1486,6 +1803,12 @@ func (*UnimplementedAgentsServer) ExportAgent(context.Context, *ExportAgentReque func (*UnimplementedAgentsServer) RestoreAgent(context.Context, *RestoreAgentRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method RestoreAgent not implemented") } +func (*UnimplementedAgentsServer) ValidateAgent(context.Context, *ValidateAgentRequest) (*AgentValidationResult, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateAgent not implemented") +} +func (*UnimplementedAgentsServer) GetAgentValidationResult(context.Context, *GetAgentValidationResultRequest) (*AgentValidationResult, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAgentValidationResult not implemented") +} func RegisterAgentsServer(s *grpc.Server, srv AgentsServer) { s.RegisterService(&_Agents_serviceDesc, srv) @@ -1617,6 +1940,42 @@ func _Agents_RestoreAgent_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Agents_ValidateAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateAgentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AgentsServer).ValidateAgent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Agents/ValidateAgent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AgentsServer).ValidateAgent(ctx, req.(*ValidateAgentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Agents_GetAgentValidationResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAgentValidationResultRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AgentsServer).GetAgentValidationResult(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Agents/GetAgentValidationResult", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AgentsServer).GetAgentValidationResult(ctx, req.(*GetAgentValidationResultRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Agents_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.dialogflow.cx.v3beta1.Agents", HandlerType: (*AgentsServer)(nil), @@ -1649,6 +2008,14 @@ var _Agents_serviceDesc = grpc.ServiceDesc{ MethodName: "RestoreAgent", Handler: _Agents_RestoreAgent_Handler, }, + { + MethodName: "ValidateAgent", + Handler: _Agents_ValidateAgent_Handler, + }, + { + MethodName: "GetAgentValidationResult", + Handler: _Agents_GetAgentValidationResult_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/dialogflow/cx/v3beta1/agent.proto", diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/audio_config.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/audio_config.pb.go index ac53c6281..c7f4223ed 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/audio_config.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/audio_config.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/audio_config.proto @@ -577,6 +577,9 @@ type VoiceSelectionParams struct { // Optional. The name of the voice. If not set, the service will choose a // voice based on the other parameters such as language_code and // [ssml_gender][google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams.ssml_gender]. + // + // For the list of available voices, please refer to [Supported voices and + // languages](https://cloud.google.com/text-to-speech/docs/voices). Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Optional. The preferred gender of the voice. If not set, the service will // choose a voice based on the other parameters such as language_code and diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/entity_type.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/entity_type.pb.go index 206ecce68..18d48e1fd 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/entity_type.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/entity_type.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/entity_type.proto @@ -741,7 +741,6 @@ func (x *DeleteEntityTypeRequest) GetForce() bool { } // An **entity entry** for an associated entity type. -// Next Id = 8 type EntityType_Entity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/flow.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/flow.pb.go index ac0050388..1a31221d6 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/flow.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/flow.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/flow.proto @@ -35,7 +35,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" - _ "google.golang.org/protobuf/types/known/timestamppb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) const ( @@ -857,6 +857,195 @@ func (x *TrainFlowRequest) GetName() string { return "" } +// The request message for [Flows.ValidateFlow][google.cloud.dialogflow.cx.v3beta1.Flows.ValidateFlow]. +type ValidateFlowRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The flow to validate. + // Format: `projects//locations//agents//flows/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If not specified, the agent's default language is used. + LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` +} + +func (x *ValidateFlowRequest) Reset() { + *x = ValidateFlowRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateFlowRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateFlowRequest) ProtoMessage() {} + +func (x *ValidateFlowRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateFlowRequest.ProtoReflect.Descriptor instead. +func (*ValidateFlowRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDescGZIP(), []int{9} +} + +func (x *ValidateFlowRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ValidateFlowRequest) GetLanguageCode() string { + if x != nil { + return x.LanguageCode + } + return "" +} + +// The request message for [Flows.GetFlowValidationResult][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult]. +type GetFlowValidationResultRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The flow name. + // Format: `projects//locations//agents//flows//validationResult`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If not specified, the agent's default language is used. + LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` +} + +func (x *GetFlowValidationResultRequest) Reset() { + *x = GetFlowValidationResultRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlowValidationResultRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlowValidationResultRequest) ProtoMessage() {} + +func (x *GetFlowValidationResultRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFlowValidationResultRequest.ProtoReflect.Descriptor instead. +func (*GetFlowValidationResultRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDescGZIP(), []int{10} +} + +func (x *GetFlowValidationResultRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetFlowValidationResultRequest) GetLanguageCode() string { + if x != nil { + return x.LanguageCode + } + return "" +} + +// The response message for [Flows.GetFlowValidationResult][google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult]. +type FlowValidationResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier of the flow validation result. + // Format: `projects//locations//agents//flows//validationResult`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Contains all validation messages. + ValidationMessages []*ValidationMessage `protobuf:"bytes,2,rep,name=validation_messages,json=validationMessages,proto3" json:"validation_messages,omitempty"` + // Last time the flow was validated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *FlowValidationResult) Reset() { + *x = FlowValidationResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowValidationResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowValidationResult) ProtoMessage() {} + +func (x *FlowValidationResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlowValidationResult.ProtoReflect.Descriptor instead. +func (*FlowValidationResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDescGZIP(), []int{11} +} + +func (x *FlowValidationResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FlowValidationResult) GetValidationMessages() []*ValidationMessage { + if x != nil { + return x.ValidationMessages + } + return nil +} + +func (x *FlowValidationResult) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + var File_google_cloud_dialogflow_cx_v3beta1_flow_proto protoreflect.FileDescriptor var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDesc = []byte{ @@ -875,231 +1064,301 @@ var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x03, 0x0a, 0x0b, 0x4e, - 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x18, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x71, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, - 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x22, 0x59, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4d, - 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, - 0x52, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x03, 0x22, 0x7b, 0x0a, - 0x11, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x49, - 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, - 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, - 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, - 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x22, 0xdd, 0x03, 0x0a, 0x04, 0x46, - 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x60, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, - 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, + 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x03, 0x0a, 0x0b, 0x4e, 0x6c, 0x75, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x0d, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x0c, - 0x6e, 0x6c, 0x75, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, - 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x0b, 0x6e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x68, 0xea, 0x41, 0x65, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x43, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x66, 0x6c, - 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x22, 0xbb, 0x01, 0x0a, 0x11, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, - 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x65, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, - 0xb3, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x7b, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, - 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x66, 0x6c, - 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x2e, 0x4e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x39, 0x0a, 0x18, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x17, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x71, 0x0a, 0x13, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x71, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, - 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, + 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x22, + 0x59, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, + 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x4f, 0x44, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, + 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x44, 0x56, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x03, 0x22, 0x7b, 0x0a, 0x11, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x23, 0x0a, 0x1f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x52, + 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, + 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, + 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x22, 0xdd, 0x03, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, + 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x40, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x10, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x57, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x6e, 0x6c, 0x75, + 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x0b, 0x6e, 0x6c, 0x75, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x68, 0xea, + 0x41, 0x65, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, + 0x6f, 0x77, 0x12, 0x43, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x2f, 0x7b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x22, 0xbb, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, + 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4e, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x46, 0x6c, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x65, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xb3, 0x01, 0x0a, + 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0x7b, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x71, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x0a, + 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0x4e, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x76, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x99, 0x0a, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, - 0xc2, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x35, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x22, - 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x3a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0xda, 0x41, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, - 0x66, 0x6c, 0x6f, 0x77, 0x12, 0xa3, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, - 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x33, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x09, 0x4c, - 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xdc, + 0x02, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, - 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0xaf, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x67, 0x6f, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x3a, 0x8a, 0x01, 0xea, 0x41, 0x86, 0x01, 0x0a, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x54, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, + 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x7b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x2f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xdd, 0x0d, + 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, + 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x3a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0xda, 0x41, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0xa3, 0x01, 0x0a, + 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x39, 0x12, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, - 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, + 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xaf, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, + 0x6c, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x32, 0x3c, 0x2f, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, - 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0xda, 0x41, 0x10, - 0x66, 0x6c, 0x6f, 0x77, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x34, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, - 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, - 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2f, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, - 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 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, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x42, 0xa8, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, - 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, + 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x44, 0x32, 0x3c, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x04, 0x66, 0x6c, 0x6f, 0x77, 0xda, 0x41, 0x10, 0x66, 0x6c, 0x6f, 0x77, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2f, + 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, + 0xce, 0x01, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, + 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x22, 0x40, 0x2f, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, + 0x12, 0xf0, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x42, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x7d, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0xd2, 0x41, 0x59, 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, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xa8, 0x01, + 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, + 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, + 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, + 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1115,52 +1374,63 @@ func file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDescGZIP() []byte { } var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_goTypes = []interface{}{ - (NluSettings_ModelType)(0), // 0: google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelType - (NluSettings_ModelTrainingMode)(0), // 1: google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelTrainingMode - (*NluSettings)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.NluSettings - (*Flow)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.Flow - (*CreateFlowRequest)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest - (*DeleteFlowRequest)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest - (*ListFlowsRequest)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest - (*ListFlowsResponse)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse - (*GetFlowRequest)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.GetFlowRequest - (*UpdateFlowRequest)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest - (*TrainFlowRequest)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest - (*TransitionRoute)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.TransitionRoute - (*EventHandler)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.EventHandler - (*fieldmaskpb.FieldMask)(nil), // 13: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 14: google.protobuf.Empty - (*longrunning.Operation)(nil), // 15: google.longrunning.Operation + (NluSettings_ModelType)(0), // 0: google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelType + (NluSettings_ModelTrainingMode)(0), // 1: google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelTrainingMode + (*NluSettings)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.NluSettings + (*Flow)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.Flow + (*CreateFlowRequest)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest + (*DeleteFlowRequest)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest + (*ListFlowsRequest)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest + (*ListFlowsResponse)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse + (*GetFlowRequest)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.GetFlowRequest + (*UpdateFlowRequest)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest + (*TrainFlowRequest)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest + (*ValidateFlowRequest)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.ValidateFlowRequest + (*GetFlowValidationResultRequest)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.GetFlowValidationResultRequest + (*FlowValidationResult)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.FlowValidationResult + (*TransitionRoute)(nil), // 14: google.cloud.dialogflow.cx.v3beta1.TransitionRoute + (*EventHandler)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.EventHandler + (*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask + (*ValidationMessage)(nil), // 17: google.cloud.dialogflow.cx.v3beta1.ValidationMessage + (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 19: google.protobuf.Empty + (*longrunning.Operation)(nil), // 20: google.longrunning.Operation } var file_google_cloud_dialogflow_cx_v3beta1_flow_proto_depIdxs = []int32{ 0, // 0: google.cloud.dialogflow.cx.v3beta1.NluSettings.model_type:type_name -> google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelType 1, // 1: google.cloud.dialogflow.cx.v3beta1.NluSettings.model_training_mode:type_name -> google.cloud.dialogflow.cx.v3beta1.NluSettings.ModelTrainingMode - 11, // 2: google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRoute - 12, // 3: google.cloud.dialogflow.cx.v3beta1.Flow.event_handlers:type_name -> google.cloud.dialogflow.cx.v3beta1.EventHandler + 14, // 2: google.cloud.dialogflow.cx.v3beta1.Flow.transition_routes:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRoute + 15, // 3: google.cloud.dialogflow.cx.v3beta1.Flow.event_handlers:type_name -> google.cloud.dialogflow.cx.v3beta1.EventHandler 2, // 4: google.cloud.dialogflow.cx.v3beta1.Flow.nlu_settings:type_name -> google.cloud.dialogflow.cx.v3beta1.NluSettings 3, // 5: google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest.flow:type_name -> google.cloud.dialogflow.cx.v3beta1.Flow 3, // 6: google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse.flows:type_name -> google.cloud.dialogflow.cx.v3beta1.Flow 3, // 7: google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest.flow:type_name -> google.cloud.dialogflow.cx.v3beta1.Flow - 13, // 8: google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest.update_mask:type_name -> google.protobuf.FieldMask - 4, // 9: google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest - 5, // 10: google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest - 6, // 11: google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows:input_type -> google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest - 8, // 12: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.GetFlowRequest - 9, // 13: google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest - 10, // 14: google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest - 3, // 15: google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow - 14, // 16: google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow:output_type -> google.protobuf.Empty - 7, // 17: google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows:output_type -> google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse - 3, // 18: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow - 3, // 19: google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow - 15, // 20: google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow:output_type -> google.longrunning.Operation - 15, // [15:21] is the sub-list for method output_type - 9, // [9:15] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 16, // 8: google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest.update_mask:type_name -> google.protobuf.FieldMask + 17, // 9: google.cloud.dialogflow.cx.v3beta1.FlowValidationResult.validation_messages:type_name -> google.cloud.dialogflow.cx.v3beta1.ValidationMessage + 18, // 10: google.cloud.dialogflow.cx.v3beta1.FlowValidationResult.update_time:type_name -> google.protobuf.Timestamp + 4, // 11: google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest + 5, // 12: google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.DeleteFlowRequest + 6, // 13: google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows:input_type -> google.cloud.dialogflow.cx.v3beta1.ListFlowsRequest + 8, // 14: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.GetFlowRequest + 9, // 15: google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateFlowRequest + 10, // 16: google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.TrainFlowRequest + 11, // 17: google.cloud.dialogflow.cx.v3beta1.Flows.ValidateFlow:input_type -> google.cloud.dialogflow.cx.v3beta1.ValidateFlowRequest + 12, // 18: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult:input_type -> google.cloud.dialogflow.cx.v3beta1.GetFlowValidationResultRequest + 3, // 19: google.cloud.dialogflow.cx.v3beta1.Flows.CreateFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow + 19, // 20: google.cloud.dialogflow.cx.v3beta1.Flows.DeleteFlow:output_type -> google.protobuf.Empty + 7, // 21: google.cloud.dialogflow.cx.v3beta1.Flows.ListFlows:output_type -> google.cloud.dialogflow.cx.v3beta1.ListFlowsResponse + 3, // 22: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow + 3, // 23: google.cloud.dialogflow.cx.v3beta1.Flows.UpdateFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.Flow + 20, // 24: google.cloud.dialogflow.cx.v3beta1.Flows.TrainFlow:output_type -> google.longrunning.Operation + 13, // 25: google.cloud.dialogflow.cx.v3beta1.Flows.ValidateFlow:output_type -> google.cloud.dialogflow.cx.v3beta1.FlowValidationResult + 13, // 26: google.cloud.dialogflow.cx.v3beta1.Flows.GetFlowValidationResult:output_type -> google.cloud.dialogflow.cx.v3beta1.FlowValidationResult + 19, // [19:27] is the sub-list for method output_type + 11, // [11:19] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() } @@ -1169,6 +1439,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() { return } file_google_cloud_dialogflow_cx_v3beta1_page_proto_init() + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_init() if !protoimpl.UnsafeEnabled { file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NluSettings); i { @@ -1278,6 +1549,42 @@ func file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() { return nil } } + file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateFlowRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFlowValidationResultRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_flow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowValidationResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1285,7 +1592,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_flow_proto_rawDesc, NumEnums: 2, - NumMessages: 9, + NumMessages: 12, NumExtensions: 0, NumServices: 1, }, @@ -1325,6 +1632,13 @@ type FlowsClient interface { // Trains the specified flow. Note that only the flow in 'draft' environment // is trained. TrainFlow(ctx context.Context, in *TrainFlowRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Validates the specified flow and creates or updates validation results. + // Please call this API after the training is completed to get the complete + // validation results. + ValidateFlow(ctx context.Context, in *ValidateFlowRequest, opts ...grpc.CallOption) (*FlowValidationResult, error) + // Gets the latest flow validation result. Flow validation is performed + // when ValidateFlow is called. + GetFlowValidationResult(ctx context.Context, in *GetFlowValidationResultRequest, opts ...grpc.CallOption) (*FlowValidationResult, error) } type flowsClient struct { @@ -1389,6 +1703,24 @@ func (c *flowsClient) TrainFlow(ctx context.Context, in *TrainFlowRequest, opts return out, nil } +func (c *flowsClient) ValidateFlow(ctx context.Context, in *ValidateFlowRequest, opts ...grpc.CallOption) (*FlowValidationResult, error) { + out := new(FlowValidationResult) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Flows/ValidateFlow", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *flowsClient) GetFlowValidationResult(ctx context.Context, in *GetFlowValidationResultRequest, opts ...grpc.CallOption) (*FlowValidationResult, error) { + out := new(FlowValidationResult) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Flows/GetFlowValidationResult", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FlowsServer is the server API for Flows service. type FlowsServer interface { // Creates a flow in the specified agent. @@ -1404,6 +1736,13 @@ type FlowsServer interface { // Trains the specified flow. Note that only the flow in 'draft' environment // is trained. TrainFlow(context.Context, *TrainFlowRequest) (*longrunning.Operation, error) + // Validates the specified flow and creates or updates validation results. + // Please call this API after the training is completed to get the complete + // validation results. + ValidateFlow(context.Context, *ValidateFlowRequest) (*FlowValidationResult, error) + // Gets the latest flow validation result. Flow validation is performed + // when ValidateFlow is called. + GetFlowValidationResult(context.Context, *GetFlowValidationResultRequest) (*FlowValidationResult, error) } // UnimplementedFlowsServer can be embedded to have forward compatible implementations. @@ -1428,6 +1767,12 @@ func (*UnimplementedFlowsServer) UpdateFlow(context.Context, *UpdateFlowRequest) func (*UnimplementedFlowsServer) TrainFlow(context.Context, *TrainFlowRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method TrainFlow not implemented") } +func (*UnimplementedFlowsServer) ValidateFlow(context.Context, *ValidateFlowRequest) (*FlowValidationResult, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateFlow not implemented") +} +func (*UnimplementedFlowsServer) GetFlowValidationResult(context.Context, *GetFlowValidationResultRequest) (*FlowValidationResult, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFlowValidationResult not implemented") +} func RegisterFlowsServer(s *grpc.Server, srv FlowsServer) { s.RegisterService(&_Flows_serviceDesc, srv) @@ -1541,6 +1886,42 @@ func _Flows_TrainFlow_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Flows_ValidateFlow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateFlowRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FlowsServer).ValidateFlow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Flows/ValidateFlow", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FlowsServer).ValidateFlow(ctx, req.(*ValidateFlowRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Flows_GetFlowValidationResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFlowValidationResultRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FlowsServer).GetFlowValidationResult(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Flows/GetFlowValidationResult", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FlowsServer).GetFlowValidationResult(ctx, req.(*GetFlowValidationResultRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Flows_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.dialogflow.cx.v3beta1.Flows", HandlerType: (*FlowsServer)(nil), @@ -1569,6 +1950,14 @@ var _Flows_serviceDesc = grpc.ServiceDesc{ MethodName: "TrainFlow", Handler: _Flows_TrainFlow_Handler, }, + { + MethodName: "ValidateFlow", + Handler: _Flows_ValidateFlow_Handler, + }, + { + MethodName: "GetFlowValidationResult", + Handler: _Flows_GetFlowValidationResult_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/dialogflow/cx/v3beta1/flow.proto", diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/intent.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/intent.pb.go index 5a09449b7..b9e5eeafb 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/intent.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/intent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/intent.proto @@ -778,9 +778,12 @@ type Intent_Parameter struct { EntityType string `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` // Indicates whether the parameter represents a list of values. IsList bool `protobuf:"varint,3,opt,name=is_list,json=isList,proto3" json:"is_list,omitempty"` - // Indicates whether the parameter content is logged in text and audio. If - // it is set to true, the parameter content will be replaced to parameter - // id in both request and response. The default value is false. + // Indicates whether the parameter content should be redacted in text and + // audio. If the flag is set to true, the parameter content will be replaced + // by parameter name in both request and response. + // Note: the parameter content is subject to redaction if either parameter + // level redaction or [entity type level redaction][google.cloud.dialogflow.cx.v3beta1.EntityType.redact] is + // enabled. Redact bool `protobuf:"varint,4,opt,name=redact,proto3" json:"redact,omitempty"` } diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/page.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/page.pb.go index cdbacca30..df2af6017 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/page.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/page.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/page.proto @@ -104,9 +104,13 @@ type Page struct { // // * TransitionRoutes defined in the page with intent specified. // * TransitionRoutes defined in the - // [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups]. + // [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups] with intent + // specified. // * TransitionRoutes defined in flow with intent specified. // * TransitionRoutes defined in the page with only condition specified. + // * TransitionRoutes defined in the + // [transition route groups][google.cloud.dialogflow.cx.v3beta1.Page.transition_route_groups] with only + // condition specified. TransitionRoutes []*TransitionRoute `protobuf:"bytes,9,rep,name=transition_routes,json=transitionRoutes,proto3" json:"transition_routes,omitempty"` // Handlers associated with the page to handle events such as webhook errors, // no match or no input. @@ -1015,9 +1019,12 @@ type Form_Parameter struct { // The default value of an optional parameter. If the parameter is required, // the default value will be ignored. DefaultValue *structpb.Value `protobuf:"bytes,9,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` - // Indicates whether the parameter content is logged in text and audio. If - // it is set to true, the parameter content will be replaced to parameter - // name in both request and response. The default value is false. + // Indicates whether the parameter content should be redacted in text and + // audio. If the flag is set to true, the parameter content will be replaced + // by parameter name in both request and response. + // Note: the parameter content is subject to redaction if either parameter + // level redaction or [entity type level redaction][google.cloud.dialogflow.cx.v3beta1.EntityType.redact] is + // enabled. Redact bool `protobuf:"varint,11,opt,name=redact,proto3" json:"redact,omitempty"` } diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/response_message.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/response_message.pb.go index f9db13a82..497583022 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/response_message.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/response_message.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/response_message.proto @@ -527,24 +527,17 @@ func (*ResponseMessage_OutputAudioText_Text) isResponseMessage_OutputAudioText_S func (*ResponseMessage_OutputAudioText_Ssml) isResponseMessage_OutputAudioText_Source() {} -// Represents an audio message that is composed of both segments -// synthesized from the Dialogflow agent prompts and ones hosted externally -// at the specified URIs. -// The external URIs are specified via -// [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio]. +// Indicates that interaction with the Dialogflow agent has ended. // This message is generated by Dialogflow only and not supposed to be // defined by the user. -type ResponseMessage_MixedAudio struct { +type ResponseMessage_EndInteraction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Segments this audio response is composed of. - Segments []*ResponseMessage_MixedAudio_Segment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *ResponseMessage_MixedAudio) Reset() { - *x = ResponseMessage_MixedAudio{} +func (x *ResponseMessage_EndInteraction) Reset() { + *x = ResponseMessage_EndInteraction{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -552,13 +545,13 @@ func (x *ResponseMessage_MixedAudio) Reset() { } } -func (x *ResponseMessage_MixedAudio) String() string { +func (x *ResponseMessage_EndInteraction) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResponseMessage_MixedAudio) ProtoMessage() {} +func (*ResponseMessage_EndInteraction) ProtoMessage() {} -func (x *ResponseMessage_MixedAudio) ProtoReflect() protoreflect.Message { +func (x *ResponseMessage_EndInteraction) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -570,29 +563,28 @@ func (x *ResponseMessage_MixedAudio) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResponseMessage_MixedAudio.ProtoReflect.Descriptor instead. -func (*ResponseMessage_MixedAudio) Descriptor() ([]byte, []int) { +// Deprecated: Use ResponseMessage_EndInteraction.ProtoReflect.Descriptor instead. +func (*ResponseMessage_EndInteraction) Descriptor() ([]byte, []int) { return file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDescGZIP(), []int{0, 4} } -func (x *ResponseMessage_MixedAudio) GetSegments() []*ResponseMessage_MixedAudio_Segment { - if x != nil { - return x.Segments - } - return nil -} - -// Indicates that interaction with the Dialogflow agent has ended. -// This message is generated by Dialogflow only and not supposed to be -// defined by the user. -type ResponseMessage_EndInteraction struct { +// Specifies an audio clip to be played by the client as part of the response. +type ResponseMessage_PlayAudio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Required. URI of the audio clip. Dialogflow does not impose any validation on this + // value. It is specific to the client that reads it. + AudioUri string `protobuf:"bytes,1,opt,name=audio_uri,json=audioUri,proto3" json:"audio_uri,omitempty"` + // Output only. Whether the playback of this message can be interrupted by the end + // user's speech and the client can then starts the next Dialogflow + // request. + AllowPlaybackInterruption bool `protobuf:"varint,2,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"` } -func (x *ResponseMessage_EndInteraction) Reset() { - *x = ResponseMessage_EndInteraction{} +func (x *ResponseMessage_PlayAudio) Reset() { + *x = ResponseMessage_PlayAudio{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -600,13 +592,13 @@ func (x *ResponseMessage_EndInteraction) Reset() { } } -func (x *ResponseMessage_EndInteraction) String() string { +func (x *ResponseMessage_PlayAudio) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResponseMessage_EndInteraction) ProtoMessage() {} +func (*ResponseMessage_PlayAudio) ProtoMessage() {} -func (x *ResponseMessage_EndInteraction) ProtoReflect() protoreflect.Message { +func (x *ResponseMessage_PlayAudio) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -618,28 +610,43 @@ func (x *ResponseMessage_EndInteraction) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResponseMessage_EndInteraction.ProtoReflect.Descriptor instead. -func (*ResponseMessage_EndInteraction) Descriptor() ([]byte, []int) { +// Deprecated: Use ResponseMessage_PlayAudio.ProtoReflect.Descriptor instead. +func (*ResponseMessage_PlayAudio) Descriptor() ([]byte, []int) { return file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDescGZIP(), []int{0, 5} } -// Specifies an audio clip to be played by the client as part of the response. -type ResponseMessage_PlayAudio struct { +func (x *ResponseMessage_PlayAudio) GetAudioUri() string { + if x != nil { + return x.AudioUri + } + return "" +} + +func (x *ResponseMessage_PlayAudio) GetAllowPlaybackInterruption() bool { + if x != nil { + return x.AllowPlaybackInterruption + } + return false +} + +// Represents an audio message that is composed of both segments +// synthesized from the Dialogflow agent prompts and ones hosted externally +// at the specified URIs. +// The external URIs are specified via +// [play_audio][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio]. +// This message is generated by Dialogflow only and not supposed to be +// defined by the user. +type ResponseMessage_MixedAudio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. URI of the audio clip. Dialogflow does not impose any validation on this - // value. It is specific to the client that reads it. - AudioUri string `protobuf:"bytes,1,opt,name=audio_uri,json=audioUri,proto3" json:"audio_uri,omitempty"` - // Output only. Whether the playback of this message can be interrupted by the end - // user's speech and the client can then starts the next Dialogflow - // request. - AllowPlaybackInterruption bool `protobuf:"varint,2,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"` + // Segments this audio response is composed of. + Segments []*ResponseMessage_MixedAudio_Segment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *ResponseMessage_PlayAudio) Reset() { - *x = ResponseMessage_PlayAudio{} +func (x *ResponseMessage_MixedAudio) Reset() { + *x = ResponseMessage_MixedAudio{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -647,13 +654,13 @@ func (x *ResponseMessage_PlayAudio) Reset() { } } -func (x *ResponseMessage_PlayAudio) String() string { +func (x *ResponseMessage_MixedAudio) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResponseMessage_PlayAudio) ProtoMessage() {} +func (*ResponseMessage_MixedAudio) ProtoMessage() {} -func (x *ResponseMessage_PlayAudio) ProtoReflect() protoreflect.Message { +func (x *ResponseMessage_MixedAudio) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -665,23 +672,16 @@ func (x *ResponseMessage_PlayAudio) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResponseMessage_PlayAudio.ProtoReflect.Descriptor instead. -func (*ResponseMessage_PlayAudio) Descriptor() ([]byte, []int) { +// Deprecated: Use ResponseMessage_MixedAudio.ProtoReflect.Descriptor instead. +func (*ResponseMessage_MixedAudio) Descriptor() ([]byte, []int) { return file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDescGZIP(), []int{0, 6} } -func (x *ResponseMessage_PlayAudio) GetAudioUri() string { - if x != nil { - return x.AudioUri - } - return "" -} - -func (x *ResponseMessage_PlayAudio) GetAllowPlaybackInterruption() bool { +func (x *ResponseMessage_MixedAudio) GetSegments() []*ResponseMessage_MixedAudio_Segment { if x != nil { - return x.AllowPlaybackInterruption + return x.Segments } - return false + return nil } // Represents one segment of audio. @@ -731,7 +731,7 @@ func (x *ResponseMessage_MixedAudio_Segment) ProtoReflect() protoreflect.Message // Deprecated: Use ResponseMessage_MixedAudio_Segment.ProtoReflect.Descriptor instead. func (*ResponseMessage_MixedAudio_Segment) Descriptor() ([]byte, []int) { - return file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDescGZIP(), []int{0, 4, 0} + return file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDescGZIP(), []int{0, 6, 0} } func (m *ResponseMessage_MixedAudio_Segment) GetContent() isResponseMessage_MixedAudio_Segment_Content { @@ -873,31 +873,31 @@ var file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_rawDesc = []b 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x1a, 0xf8, 0x01, 0x0a, 0x0a, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x12, 0x62, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, - 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x16, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x43, 0x0a, - 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6c, - 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x10, 0x0a, - 0x0e, 0x45, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0x72, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x20, 0x0a, 0x09, - 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x55, 0x72, 0x69, 0x12, 0x43, - 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, - 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0xb3, + 0x63, 0x65, 0x1a, 0x10, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x72, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x55, 0x72, 0x69, 0x12, 0x43, 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6c, 0x61, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xf8, 0x01, 0x0a, 0x0a, 0x4d, 0x69, 0x78, + 0x65, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x62, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, + 0x69, 0x78, 0x65, 0x64, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x07, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, + 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, + 0x75, 0x72, 0x69, 0x12, 0x43, 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6c, 0x61, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0xb3, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, @@ -931,9 +931,9 @@ var file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_goTypes = []i (*ResponseMessage_LiveAgentHandoff)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff (*ResponseMessage_ConversationSuccess)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess (*ResponseMessage_OutputAudioText)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText - (*ResponseMessage_MixedAudio)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio - (*ResponseMessage_EndInteraction)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction - (*ResponseMessage_PlayAudio)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio + (*ResponseMessage_EndInteraction)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction + (*ResponseMessage_PlayAudio)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio + (*ResponseMessage_MixedAudio)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio (*ResponseMessage_MixedAudio_Segment)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment (*structpb.Struct)(nil), // 9: google.protobuf.Struct } @@ -943,9 +943,9 @@ var file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_depIdxs = []i 3, // 2: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.conversation_success:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess 4, // 3: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.output_audio_text:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.OutputAudioText 2, // 4: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.live_agent_handoff:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff - 6, // 5: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.end_interaction:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction - 7, // 6: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio - 5, // 7: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio + 5, // 5: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.end_interaction:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.EndInteraction + 6, // 6: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.play_audio:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.PlayAudio + 7, // 7: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.mixed_audio:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio 9, // 8: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.LiveAgentHandoff.metadata:type_name -> google.protobuf.Struct 9, // 9: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.ConversationSuccess.metadata:type_name -> google.protobuf.Struct 8, // 10: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.segments:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.MixedAudio.Segment @@ -1023,7 +1023,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() { } } file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponseMessage_MixedAudio); i { + switch v := v.(*ResponseMessage_EndInteraction); i { case 0: return &v.state case 1: @@ -1035,7 +1035,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() { } } file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponseMessage_EndInteraction); i { + switch v := v.(*ResponseMessage_PlayAudio); i { case 0: return &v.state case 1: @@ -1047,7 +1047,7 @@ func file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() { } } file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponseMessage_PlayAudio); i { + switch v := v.(*ResponseMessage_MixedAudio); i { case 0: return &v.state case 1: diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/test_case.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/test_case.pb.go new file mode 100644 index 000000000..db6f00076 --- /dev/null +++ b/googleapis/cloud/dialogflow/cx/v3beta1/test_case.pb.go @@ -0,0 +1,4633 @@ +// 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.25.0-devel +// protoc v3.13.0 +// source: google/cloud/dialogflow/cx/v3beta1/test_case.proto + +package cx + +import ( + context "context" + reflect "reflect" + sync "sync" + + proto "github.com/golang/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + longrunning "google.golang.org/genproto/googleapis/longrunning" + status "google.golang.org/genproto/googleapis/rpc/status" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status1 "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// The test result for a test case and an agent environment. +type TestResult int32 + +const ( + // Not specified. Should never be used. + TestResult_TEST_RESULT_UNSPECIFIED TestResult = 0 + // The test passed. + TestResult_PASSED TestResult = 1 + // The test did not pass. + TestResult_FAILED TestResult = 2 +) + +// Enum value maps for TestResult. +var ( + TestResult_name = map[int32]string{ + 0: "TEST_RESULT_UNSPECIFIED", + 1: "PASSED", + 2: "FAILED", + } + TestResult_value = map[string]int32{ + "TEST_RESULT_UNSPECIFIED": 0, + "PASSED": 1, + "FAILED": 2, + } +) + +func (x TestResult) Enum() *TestResult { + p := new(TestResult) + *p = x + return p +} + +func (x TestResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TestResult) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[0].Descriptor() +} + +func (TestResult) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[0] +} + +func (x TestResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TestResult.Descriptor instead. +func (TestResult) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{0} +} + +// What part of the message replay differs from the test case. +type TestRunDifference_DiffType int32 + +const ( + // Should never be used. + TestRunDifference_DIFF_TYPE_UNSPECIFIED TestRunDifference_DiffType = 0 + // The intent. + TestRunDifference_INTENT TestRunDifference_DiffType = 1 + // The page. + TestRunDifference_PAGE TestRunDifference_DiffType = 2 + // The parameters. + TestRunDifference_PARAMETERS TestRunDifference_DiffType = 3 + // The message utterance. + TestRunDifference_UTTERANCE TestRunDifference_DiffType = 4 +) + +// Enum value maps for TestRunDifference_DiffType. +var ( + TestRunDifference_DiffType_name = map[int32]string{ + 0: "DIFF_TYPE_UNSPECIFIED", + 1: "INTENT", + 2: "PAGE", + 3: "PARAMETERS", + 4: "UTTERANCE", + } + TestRunDifference_DiffType_value = map[string]int32{ + "DIFF_TYPE_UNSPECIFIED": 0, + "INTENT": 1, + "PAGE": 2, + "PARAMETERS": 3, + "UTTERANCE": 4, + } +) + +func (x TestRunDifference_DiffType) Enum() *TestRunDifference_DiffType { + p := new(TestRunDifference_DiffType) + *p = x + return p +} + +func (x TestRunDifference_DiffType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TestRunDifference_DiffType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[1].Descriptor() +} + +func (TestRunDifference_DiffType) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[1] +} + +func (x TestRunDifference_DiffType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TestRunDifference_DiffType.Descriptor instead. +func (TestRunDifference_DiffType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{4, 0} +} + +// The type of coverage score requested. +type CalculateCoverageRequest_CoverageType int32 + +const ( + // Should never be used. + CalculateCoverageRequest_COVERAGE_TYPE_UNSPECIFIED CalculateCoverageRequest_CoverageType = 0 + // Intent coverage. + CalculateCoverageRequest_INTENT CalculateCoverageRequest_CoverageType = 1 + // Page transition coverage + CalculateCoverageRequest_PAGE_TRANSITION CalculateCoverageRequest_CoverageType = 2 +) + +// Enum value maps for CalculateCoverageRequest_CoverageType. +var ( + CalculateCoverageRequest_CoverageType_name = map[int32]string{ + 0: "COVERAGE_TYPE_UNSPECIFIED", + 1: "INTENT", + 2: "PAGE_TRANSITION", + } + CalculateCoverageRequest_CoverageType_value = map[string]int32{ + "COVERAGE_TYPE_UNSPECIFIED": 0, + "INTENT": 1, + "PAGE_TRANSITION": 2, + } +) + +func (x CalculateCoverageRequest_CoverageType) Enum() *CalculateCoverageRequest_CoverageType { + p := new(CalculateCoverageRequest_CoverageType) + *p = x + return p +} + +func (x CalculateCoverageRequest_CoverageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CalculateCoverageRequest_CoverageType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[2].Descriptor() +} + +func (CalculateCoverageRequest_CoverageType) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[2] +} + +func (x CalculateCoverageRequest_CoverageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CalculateCoverageRequest_CoverageType.Descriptor instead. +func (CalculateCoverageRequest_CoverageType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{7, 0} +} + +// Specifies how much test case information to include in the response. +type ListTestCasesRequest_TestCaseView int32 + +const ( + // The default / unset value. + // The API will default to the BASIC view. + ListTestCasesRequest_TEST_CASE_VIEW_UNSPECIFIED ListTestCasesRequest_TestCaseView = 0 + // Include basic metadata about the test case, but not the conversation + // turns. This is the default value. + ListTestCasesRequest_BASIC ListTestCasesRequest_TestCaseView = 1 + // Include everything. + ListTestCasesRequest_FULL ListTestCasesRequest_TestCaseView = 2 +) + +// Enum value maps for ListTestCasesRequest_TestCaseView. +var ( + ListTestCasesRequest_TestCaseView_name = map[int32]string{ + 0: "TEST_CASE_VIEW_UNSPECIFIED", + 1: "BASIC", + 2: "FULL", + } + ListTestCasesRequest_TestCaseView_value = map[string]int32{ + "TEST_CASE_VIEW_UNSPECIFIED": 0, + "BASIC": 1, + "FULL": 2, + } +) + +func (x ListTestCasesRequest_TestCaseView) Enum() *ListTestCasesRequest_TestCaseView { + p := new(ListTestCasesRequest_TestCaseView) + *p = x + return p +} + +func (x ListTestCasesRequest_TestCaseView) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListTestCasesRequest_TestCaseView) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[3].Descriptor() +} + +func (ListTestCasesRequest_TestCaseView) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[3] +} + +func (x ListTestCasesRequest_TestCaseView) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListTestCasesRequest_TestCaseView.Descriptor instead. +func (ListTestCasesRequest_TestCaseView) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{9, 0} +} + +// Data format of the exported test cases. +type ExportTestCasesRequest_DataFormat int32 + +const ( + // Unspecified format. + ExportTestCasesRequest_DATA_FORMAT_UNSPECIFIED ExportTestCasesRequest_DataFormat = 0 + // Raw bytes. + ExportTestCasesRequest_BLOB ExportTestCasesRequest_DataFormat = 1 + // JSON format. + ExportTestCasesRequest_JSON ExportTestCasesRequest_DataFormat = 2 +) + +// Enum value maps for ExportTestCasesRequest_DataFormat. +var ( + ExportTestCasesRequest_DataFormat_name = map[int32]string{ + 0: "DATA_FORMAT_UNSPECIFIED", + 1: "BLOB", + 2: "JSON", + } + ExportTestCasesRequest_DataFormat_value = map[string]int32{ + "DATA_FORMAT_UNSPECIFIED": 0, + "BLOB": 1, + "JSON": 2, + } +) + +func (x ExportTestCasesRequest_DataFormat) Enum() *ExportTestCasesRequest_DataFormat { + p := new(ExportTestCasesRequest_DataFormat) + *p = x + return p +} + +func (x ExportTestCasesRequest_DataFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExportTestCasesRequest_DataFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[4].Descriptor() +} + +func (ExportTestCasesRequest_DataFormat) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes[4] +} + +func (x ExportTestCasesRequest_DataFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExportTestCasesRequest_DataFormat.Descriptor instead. +func (ExportTestCasesRequest_DataFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{26, 0} +} + +// Represents a test case. +type TestCase struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier of the test case. + // [TestCases.CreateTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase] will populate the name automatically. + // Otherwise use format: `projects//locations//agents/ + // /testCases/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Tags are short descriptions that users may apply to test cases for + // organizational and filtering purposes. Each tag should start with "#" and + // has a limit of 30 characters. + Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` + // Required. The human-readable name of the test case, unique within the agent. Limit of + // 200 characters. + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Additional freeform notes about the test case. Limit of 400 characters. + Notes string `protobuf:"bytes,4,opt,name=notes,proto3" json:"notes,omitempty"` + // Config for the test case. + TestConfig *TestConfig `protobuf:"bytes,13,opt,name=test_config,json=testConfig,proto3" json:"test_config,omitempty"` + // The conversation turns uttered when the test case was created, in + // chronological order. These include the canonical set of agent utterances + // that should occur when the agent is working properly. + TestCaseConversationTurns []*ConversationTurn `protobuf:"bytes,5,rep,name=test_case_conversation_turns,json=testCaseConversationTurns,proto3" json:"test_case_conversation_turns,omitempty"` + // Output only. When the test was created. + CreationTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + // The latest test result. + LastTestResult *TestCaseResult `protobuf:"bytes,12,opt,name=last_test_result,json=lastTestResult,proto3" json:"last_test_result,omitempty"` +} + +func (x *TestCase) Reset() { + *x = TestCase{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestCase) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestCase) ProtoMessage() {} + +func (x *TestCase) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 TestCase.ProtoReflect.Descriptor instead. +func (*TestCase) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{0} +} + +func (x *TestCase) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TestCase) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *TestCase) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *TestCase) GetNotes() string { + if x != nil { + return x.Notes + } + return "" +} + +func (x *TestCase) GetTestConfig() *TestConfig { + if x != nil { + return x.TestConfig + } + return nil +} + +func (x *TestCase) GetTestCaseConversationTurns() []*ConversationTurn { + if x != nil { + return x.TestCaseConversationTurns + } + return nil +} + +func (x *TestCase) GetCreationTime() *timestamppb.Timestamp { + if x != nil { + return x.CreationTime + } + return nil +} + +func (x *TestCase) GetLastTestResult() *TestCaseResult { + if x != nil { + return x.LastTestResult + } + return nil +} + +// Represents a result from running a test case in an agent environment. +type TestCaseResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name for the test case result. Format: + // `projects//locations//agents//testCases/ + // /results/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Environment where the test was run. If not set, it indicates the draft + // environment. + Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` + // The conversation turns uttered during the test case replay in chronological + // order. + ConversationTurns []*ConversationTurn `protobuf:"bytes,3,rep,name=conversation_turns,json=conversationTurns,proto3" json:"conversation_turns,omitempty"` + // Whether the test case passed in the agent environment. + TestResult TestResult `protobuf:"varint,4,opt,name=test_result,json=testResult,proto3,enum=google.cloud.dialogflow.cx.v3beta1.TestResult" json:"test_result,omitempty"` + // The time that the test was run. + TestTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=test_time,json=testTime,proto3" json:"test_time,omitempty"` +} + +func (x *TestCaseResult) Reset() { + *x = TestCaseResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestCaseResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestCaseResult) ProtoMessage() {} + +func (x *TestCaseResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 TestCaseResult.ProtoReflect.Descriptor instead. +func (*TestCaseResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{1} +} + +func (x *TestCaseResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TestCaseResult) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +func (x *TestCaseResult) GetConversationTurns() []*ConversationTurn { + if x != nil { + return x.ConversationTurns + } + return nil +} + +func (x *TestCaseResult) GetTestResult() TestResult { + if x != nil { + return x.TestResult + } + return TestResult_TEST_RESULT_UNSPECIFIED +} + +func (x *TestCaseResult) GetTestTime() *timestamppb.Timestamp { + if x != nil { + return x.TestTime + } + return nil +} + +// Represents configurations for a test case. +type TestConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Session parameters to be compared when calculating differences. + TrackingParameters []string `protobuf:"bytes,1,rep,name=tracking_parameters,json=trackingParameters,proto3" json:"tracking_parameters,omitempty"` + // Flow name. If not set, default start flow is assumed. + // Format: `projects//locations//agents//flows/`. + Flow string `protobuf:"bytes,2,opt,name=flow,proto3" json:"flow,omitempty"` +} + +func (x *TestConfig) Reset() { + *x = TestConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestConfig) ProtoMessage() {} + +func (x *TestConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 TestConfig.ProtoReflect.Descriptor instead. +func (*TestConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{2} +} + +func (x *TestConfig) GetTrackingParameters() []string { + if x != nil { + return x.TrackingParameters + } + return nil +} + +func (x *TestConfig) GetFlow() string { + if x != nil { + return x.Flow + } + return "" +} + +// One interaction between a human and virtual agent. The human provides some +// input and the virtual agent provides a response. +type ConversationTurn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The user input. + UserInput *ConversationTurn_UserInput `protobuf:"bytes,1,opt,name=user_input,json=userInput,proto3" json:"user_input,omitempty"` + // The virtual agent output. + VirtualAgentOutput *ConversationTurn_VirtualAgentOutput `protobuf:"bytes,2,opt,name=virtual_agent_output,json=virtualAgentOutput,proto3" json:"virtual_agent_output,omitempty"` +} + +func (x *ConversationTurn) Reset() { + *x = ConversationTurn{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationTurn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationTurn) ProtoMessage() {} + +func (x *ConversationTurn) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 ConversationTurn.ProtoReflect.Descriptor instead. +func (*ConversationTurn) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{3} +} + +func (x *ConversationTurn) GetUserInput() *ConversationTurn_UserInput { + if x != nil { + return x.UserInput + } + return nil +} + +func (x *ConversationTurn) GetVirtualAgentOutput() *ConversationTurn_VirtualAgentOutput { + if x != nil { + return x.VirtualAgentOutput + } + return nil +} + +// The description of differences between original and replayed agent output. +type TestRunDifference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of diff. + Type TestRunDifference_DiffType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.dialogflow.cx.v3beta1.TestRunDifference_DiffType" json:"type,omitempty"` + // A description of the diff, showing the actual output vs expected output. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *TestRunDifference) Reset() { + *x = TestRunDifference{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestRunDifference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestRunDifference) ProtoMessage() {} + +func (x *TestRunDifference) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 TestRunDifference.ProtoReflect.Descriptor instead. +func (*TestRunDifference) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{4} +} + +func (x *TestRunDifference) GetType() TestRunDifference_DiffType { + if x != nil { + return x.Type + } + return TestRunDifference_DIFF_TYPE_UNSPECIFIED +} + +func (x *TestRunDifference) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// Transition coverage represents the percentage of all possible transitions +// present within any of a parent's test cases. +type TransitionCoverage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Transitions present in the agent. + Transitions []*TransitionCoverage_Transition `protobuf:"bytes,1,rep,name=transitions,proto3" json:"transitions,omitempty"` + // The percent of transitions in the agent that are covered. + CoverageScore float32 `protobuf:"fixed32,2,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` +} + +func (x *TransitionCoverage) Reset() { + *x = TransitionCoverage{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitionCoverage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitionCoverage) ProtoMessage() {} + +func (x *TransitionCoverage) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_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 TransitionCoverage.ProtoReflect.Descriptor instead. +func (*TransitionCoverage) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{5} +} + +func (x *TransitionCoverage) GetTransitions() []*TransitionCoverage_Transition { + if x != nil { + return x.Transitions + } + return nil +} + +func (x *TransitionCoverage) GetCoverageScore() float32 { + if x != nil { + return x.CoverageScore + } + return 0 +} + +// Intent coverage represents the percentage of all possible intents in the +// agent that are triggered in any of a parent's test cases. +type IntentCoverage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Intents present in the agent + Intents []*IntentCoverage_Intent `protobuf:"bytes,1,rep,name=intents,proto3" json:"intents,omitempty"` + // The percent of intents in the agent that are covered. + CoverageScore float32 `protobuf:"fixed32,2,opt,name=coverage_score,json=coverageScore,proto3" json:"coverage_score,omitempty"` +} + +func (x *IntentCoverage) Reset() { + *x = IntentCoverage{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntentCoverage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntentCoverage) ProtoMessage() {} + +func (x *IntentCoverage) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntentCoverage.ProtoReflect.Descriptor instead. +func (*IntentCoverage) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{6} +} + +func (x *IntentCoverage) GetIntents() []*IntentCoverage_Intent { + if x != nil { + return x.Intents + } + return nil +} + +func (x *IntentCoverage) GetCoverageScore() float32 { + if x != nil { + return x.CoverageScore + } + return 0 +} + +// The request message for [TestCases.CalculateCoverage][google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage]. +type CalculateCoverageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to calculate coverage for. + // Format: `projects//locations//agents/`. + Agent string `protobuf:"bytes,3,opt,name=agent,proto3" json:"agent,omitempty"` + // Required. The type of coverage requested. + Type CalculateCoverageRequest_CoverageType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest_CoverageType" json:"type,omitempty"` +} + +func (x *CalculateCoverageRequest) Reset() { + *x = CalculateCoverageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculateCoverageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculateCoverageRequest) ProtoMessage() {} + +func (x *CalculateCoverageRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculateCoverageRequest.ProtoReflect.Descriptor instead. +func (*CalculateCoverageRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{7} +} + +func (x *CalculateCoverageRequest) GetAgent() string { + if x != nil { + return x.Agent + } + return "" +} + +func (x *CalculateCoverageRequest) GetType() CalculateCoverageRequest_CoverageType { + if x != nil { + return x.Type + } + return CalculateCoverageRequest_COVERAGE_TYPE_UNSPECIFIED +} + +// The response message for [TestCases.CalculateCoverage][google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage]. +type CalculateCoverageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The agent to calculate coverage for. + // Format: `projects//locations//agents/`. + Agent string `protobuf:"bytes,5,opt,name=agent,proto3" json:"agent,omitempty"` + // The type of coverage requested. + // + // Types that are assignable to CoverageType: + // *CalculateCoverageResponse_IntentCoverage + // *CalculateCoverageResponse_TransitionCoverage + CoverageType isCalculateCoverageResponse_CoverageType `protobuf_oneof:"coverage_type"` +} + +func (x *CalculateCoverageResponse) Reset() { + *x = CalculateCoverageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalculateCoverageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalculateCoverageResponse) ProtoMessage() {} + +func (x *CalculateCoverageResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CalculateCoverageResponse.ProtoReflect.Descriptor instead. +func (*CalculateCoverageResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{8} +} + +func (x *CalculateCoverageResponse) GetAgent() string { + if x != nil { + return x.Agent + } + return "" +} + +func (m *CalculateCoverageResponse) GetCoverageType() isCalculateCoverageResponse_CoverageType { + if m != nil { + return m.CoverageType + } + return nil +} + +func (x *CalculateCoverageResponse) GetIntentCoverage() *IntentCoverage { + if x, ok := x.GetCoverageType().(*CalculateCoverageResponse_IntentCoverage); ok { + return x.IntentCoverage + } + return nil +} + +func (x *CalculateCoverageResponse) GetTransitionCoverage() *TransitionCoverage { + if x, ok := x.GetCoverageType().(*CalculateCoverageResponse_TransitionCoverage); ok { + return x.TransitionCoverage + } + return nil +} + +type isCalculateCoverageResponse_CoverageType interface { + isCalculateCoverageResponse_CoverageType() +} + +type CalculateCoverageResponse_IntentCoverage struct { + // Intent coverage. + IntentCoverage *IntentCoverage `protobuf:"bytes,2,opt,name=intent_coverage,json=intentCoverage,proto3,oneof"` +} + +type CalculateCoverageResponse_TransitionCoverage struct { + // Transition coverage. + TransitionCoverage *TransitionCoverage `protobuf:"bytes,4,opt,name=transition_coverage,json=transitionCoverage,proto3,oneof"` +} + +func (*CalculateCoverageResponse_IntentCoverage) isCalculateCoverageResponse_CoverageType() {} + +func (*CalculateCoverageResponse_TransitionCoverage) isCalculateCoverageResponse_CoverageType() {} + +// The request message for [TestCases.ListTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases]. +type ListTestCasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to list all pages for. + // Format: `projects//locations//agents/`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return in a single page. By default 20. + // Note that when TestCaseView = FULL, the maximum page size allowed is 20. + // When TestCaseView = BASIC, the maximum page size allowed is 500. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value returned from a previous list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Specifies whether response should include all fields or just the metadata. + View ListTestCasesRequest_TestCaseView `protobuf:"varint,4,opt,name=view,proto3,enum=google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest_TestCaseView" json:"view,omitempty"` +} + +func (x *ListTestCasesRequest) Reset() { + *x = ListTestCasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTestCasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTestCasesRequest) ProtoMessage() {} + +func (x *ListTestCasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTestCasesRequest.ProtoReflect.Descriptor instead. +func (*ListTestCasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{9} +} + +func (x *ListTestCasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListTestCasesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListTestCasesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListTestCasesRequest) GetView() ListTestCasesRequest_TestCaseView { + if x != nil { + return x.View + } + return ListTestCasesRequest_TEST_CASE_VIEW_UNSPECIFIED +} + +// The response message for [TestCases.ListTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases]. +type ListTestCasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of test cases. There will be a maximum number of items returned + // based on the page_size field in the request. + TestCases []*TestCase `protobuf:"bytes,1,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"` + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListTestCasesResponse) Reset() { + *x = ListTestCasesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTestCasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTestCasesResponse) ProtoMessage() {} + +func (x *ListTestCasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTestCasesResponse.ProtoReflect.Descriptor instead. +func (*ListTestCasesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{10} +} + +func (x *ListTestCasesResponse) GetTestCases() []*TestCase { + if x != nil { + return x.TestCases + } + return nil +} + +func (x *ListTestCasesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The request message for [TestCases.BatchDeleteTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases]. +type BatchDeleteTestCasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to delete test cases from. + // Format: `projects//locations//agents/`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Format of test case names: `projects//locations/ + // /agents//testCases/`. + Names []string `protobuf:"bytes,3,rep,name=names,proto3" json:"names,omitempty"` +} + +func (x *BatchDeleteTestCasesRequest) Reset() { + *x = BatchDeleteTestCasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeleteTestCasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeleteTestCasesRequest) ProtoMessage() {} + +func (x *BatchDeleteTestCasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeleteTestCasesRequest.ProtoReflect.Descriptor instead. +func (*BatchDeleteTestCasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{11} +} + +func (x *BatchDeleteTestCasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *BatchDeleteTestCasesRequest) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +// The request message for [TestCases.CreateTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase]. +type CreateTestCaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to create the test case for. + // Format: `projects//locations//agents/`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The test case to create. + TestCase *TestCase `protobuf:"bytes,2,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` +} + +func (x *CreateTestCaseRequest) Reset() { + *x = CreateTestCaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTestCaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTestCaseRequest) ProtoMessage() {} + +func (x *CreateTestCaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateTestCaseRequest.ProtoReflect.Descriptor instead. +func (*CreateTestCaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{12} +} + +func (x *CreateTestCaseRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateTestCaseRequest) GetTestCase() *TestCase { + if x != nil { + return x.TestCase + } + return nil +} + +// The request message for [TestCases.UpdateTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase]. +type UpdateTestCaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The test case to update. + TestCase *TestCase `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` + // Required. The mask to specify which fields should be updated. Only a test case's + // metadata and replayed_conversation_turns may be updated. The original + // test_case_conversation_turns may not be updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateTestCaseRequest) Reset() { + *x = UpdateTestCaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateTestCaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateTestCaseRequest) ProtoMessage() {} + +func (x *UpdateTestCaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateTestCaseRequest.ProtoReflect.Descriptor instead. +func (*UpdateTestCaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{13} +} + +func (x *UpdateTestCaseRequest) GetTestCase() *TestCase { + if x != nil { + return x.TestCase + } + return nil +} + +func (x *UpdateTestCaseRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request message for [TestCases.GetTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase]. +type GetTestCaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the testcase. + // Format: `projects//locations//agents//testCases/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetTestCaseRequest) Reset() { + *x = GetTestCaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTestCaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTestCaseRequest) ProtoMessage() {} + +func (x *GetTestCaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTestCaseRequest.ProtoReflect.Descriptor instead. +func (*GetTestCaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{14} +} + +func (x *GetTestCaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase]. +type RunTestCaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format of test case name to run: `projects//locations/ + // /agents//testCases/`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Environment name. If not set, draft environment is assumed. + // Format: `projects//locations//agents//environments/`. + Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` +} + +func (x *RunTestCaseRequest) Reset() { + *x = RunTestCaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunTestCaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunTestCaseRequest) ProtoMessage() {} + +func (x *RunTestCaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunTestCaseRequest.ProtoReflect.Descriptor instead. +func (*RunTestCaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{15} +} + +func (x *RunTestCaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RunTestCaseRequest) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +// The response message for [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase]. +type RunTestCaseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The result. + Result *TestCaseResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *RunTestCaseResponse) Reset() { + *x = RunTestCaseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunTestCaseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunTestCaseResponse) ProtoMessage() {} + +func (x *RunTestCaseResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunTestCaseResponse.ProtoReflect.Descriptor instead. +func (*RunTestCaseResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{16} +} + +func (x *RunTestCaseResponse) GetResult() *TestCaseResult { + if x != nil { + return x.Result + } + return nil +} + +// Metadata returned for the [TestCases.RunTestCase][google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase] long running operation. +type RunTestCaseMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RunTestCaseMetadata) Reset() { + *x = RunTestCaseMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunTestCaseMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunTestCaseMetadata) ProtoMessage() {} + +func (x *RunTestCaseMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunTestCaseMetadata.ProtoReflect.Descriptor instead. +func (*RunTestCaseMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{17} +} + +// The request message for [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases]. +type BatchRunTestCasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Agent name. Format: `projects//locations//agents/ + // `. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`. + Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` + // Required. Format: `projects//locations//agents//testCases/`. + TestCases []string `protobuf:"bytes,3,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"` +} + +func (x *BatchRunTestCasesRequest) Reset() { + *x = BatchRunTestCasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunTestCasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunTestCasesRequest) ProtoMessage() {} + +func (x *BatchRunTestCasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchRunTestCasesRequest.ProtoReflect.Descriptor instead. +func (*BatchRunTestCasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{18} +} + +func (x *BatchRunTestCasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *BatchRunTestCasesRequest) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +func (x *BatchRunTestCasesRequest) GetTestCases() []string { + if x != nil { + return x.TestCases + } + return nil +} + +// The response message for [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases]. +type BatchRunTestCasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The test case results. The detailed + // [conversation turns][google.cloud.dialogflow.cx.v3beta1.TestCaseResult.conversation_turns] are empty in this + // response. + Results []*TestCaseResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` +} + +func (x *BatchRunTestCasesResponse) Reset() { + *x = BatchRunTestCasesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunTestCasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunTestCasesResponse) ProtoMessage() {} + +func (x *BatchRunTestCasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchRunTestCasesResponse.ProtoReflect.Descriptor instead. +func (*BatchRunTestCasesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{19} +} + +func (x *BatchRunTestCasesResponse) GetResults() []*TestCaseResult { + if x != nil { + return x.Results + } + return nil +} + +// Metadata returned for the [TestCases.BatchRunTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases] long running +// operation. +type BatchRunTestCasesMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The test errors. + Errors []*TestError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *BatchRunTestCasesMetadata) Reset() { + *x = BatchRunTestCasesMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunTestCasesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunTestCasesMetadata) ProtoMessage() {} + +func (x *BatchRunTestCasesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchRunTestCasesMetadata.ProtoReflect.Descriptor instead. +func (*BatchRunTestCasesMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{20} +} + +func (x *BatchRunTestCasesMetadata) GetErrors() []*TestError { + if x != nil { + return x.Errors + } + return nil +} + +// Error info for running a test. +type TestError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The test case resource name. + TestCase string `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` + // The status associated with the test. + Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + // The timestamp when the test was completed. + TestTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=test_time,json=testTime,proto3" json:"test_time,omitempty"` +} + +func (x *TestError) Reset() { + *x = TestError{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestError) ProtoMessage() {} + +func (x *TestError) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestError.ProtoReflect.Descriptor instead. +func (*TestError) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{21} +} + +func (x *TestError) GetTestCase() string { + if x != nil { + return x.TestCase + } + return "" +} + +func (x *TestError) GetStatus() *status.Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *TestError) GetTestTime() *timestamppb.Timestamp { + if x != nil { + return x.TestTime + } + return nil +} + +// The request message for [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases]. +type ImportTestCasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent to import test cases to. + // Format: `projects//locations//agents/`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The source to import. + // + // Types that are assignable to Source: + // *ImportTestCasesRequest_GcsUri + // *ImportTestCasesRequest_Content + Source isImportTestCasesRequest_Source `protobuf_oneof:"source"` +} + +func (x *ImportTestCasesRequest) Reset() { + *x = ImportTestCasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportTestCasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportTestCasesRequest) ProtoMessage() {} + +func (x *ImportTestCasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportTestCasesRequest.ProtoReflect.Descriptor instead. +func (*ImportTestCasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{22} +} + +func (x *ImportTestCasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (m *ImportTestCasesRequest) GetSource() isImportTestCasesRequest_Source { + if m != nil { + return m.Source + } + return nil +} + +func (x *ImportTestCasesRequest) GetGcsUri() string { + if x, ok := x.GetSource().(*ImportTestCasesRequest_GcsUri); ok { + return x.GcsUri + } + return "" +} + +func (x *ImportTestCasesRequest) GetContent() []byte { + if x, ok := x.GetSource().(*ImportTestCasesRequest_Content); ok { + return x.Content + } + return nil +} + +type isImportTestCasesRequest_Source interface { + isImportTestCasesRequest_Source() +} + +type ImportTestCasesRequest_GcsUri struct { + // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI + // to import test cases from. The format of this URI must be + // `gs:///`. + GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` +} + +type ImportTestCasesRequest_Content struct { + // Uncompressed raw byte content for test cases. + Content []byte `protobuf:"bytes,3,opt,name=content,proto3,oneof"` +} + +func (*ImportTestCasesRequest_GcsUri) isImportTestCasesRequest_Source() {} + +func (*ImportTestCasesRequest_Content) isImportTestCasesRequest_Source() {} + +// The response message for [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases]. +type ImportTestCasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifiers of the new test cases. + // Format: `projects//locations//agents//testCases/`. + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` +} + +func (x *ImportTestCasesResponse) Reset() { + *x = ImportTestCasesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportTestCasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportTestCasesResponse) ProtoMessage() {} + +func (x *ImportTestCasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportTestCasesResponse.ProtoReflect.Descriptor instead. +func (*ImportTestCasesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{23} +} + +func (x *ImportTestCasesResponse) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +// Metadata returned for the [TestCases.ImportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases] long running +// operation. +type ImportTestCasesMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Errors for failed test cases. + Errors []*TestCaseError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *ImportTestCasesMetadata) Reset() { + *x = ImportTestCasesMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportTestCasesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportTestCasesMetadata) ProtoMessage() {} + +func (x *ImportTestCasesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportTestCasesMetadata.ProtoReflect.Descriptor instead. +func (*ImportTestCasesMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{24} +} + +func (x *ImportTestCasesMetadata) GetErrors() []*TestCaseError { + if x != nil { + return x.Errors + } + return nil +} + +// Error info for importing a test. +type TestCaseError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The test case. + TestCase *TestCase `protobuf:"bytes,1,opt,name=test_case,json=testCase,proto3" json:"test_case,omitempty"` + // The status associated with the test case. + Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *TestCaseError) Reset() { + *x = TestCaseError{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestCaseError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestCaseError) ProtoMessage() {} + +func (x *TestCaseError) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestCaseError.ProtoReflect.Descriptor instead. +func (*TestCaseError) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{25} +} + +func (x *TestCaseError) GetTestCase() *TestCase { + if x != nil { + return x.TestCase + } + return nil +} + +func (x *TestCaseError) GetStatus() *status.Status { + if x != nil { + return x.Status + } + return nil +} + +// The request message for [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases]. +type ExportTestCasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The agent where to export test cases from. + // Format: `projects//locations//agents/`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The destination to export. + // + // Types that are assignable to Destination: + // *ExportTestCasesRequest_GcsUri + Destination isExportTestCasesRequest_Destination `protobuf_oneof:"destination"` + // The data format of the exported test cases. If not specified, `BLOB` is + // assumed. + DataFormat ExportTestCasesRequest_DataFormat `protobuf:"varint,3,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest_DataFormat" json:"data_format,omitempty"` + // The filter expression used to filter exported test cases, see + // [API Filtering](https://aip.dev/160). The expression is case insensitive + // and supports the following syntax: + // + // name = [OR name = ] ... + // + // For example: + // + // * "name = t1 OR name = t2" matches the test case with the exact resource + // name "t1" or "t2". + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ExportTestCasesRequest) Reset() { + *x = ExportTestCasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportTestCasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportTestCasesRequest) ProtoMessage() {} + +func (x *ExportTestCasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportTestCasesRequest.ProtoReflect.Descriptor instead. +func (*ExportTestCasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{26} +} + +func (x *ExportTestCasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (m *ExportTestCasesRequest) GetDestination() isExportTestCasesRequest_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *ExportTestCasesRequest) GetGcsUri() string { + if x, ok := x.GetDestination().(*ExportTestCasesRequest_GcsUri); ok { + return x.GcsUri + } + return "" +} + +func (x *ExportTestCasesRequest) GetDataFormat() ExportTestCasesRequest_DataFormat { + if x != nil { + return x.DataFormat + } + return ExportTestCasesRequest_DATA_FORMAT_UNSPECIFIED +} + +func (x *ExportTestCasesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +type isExportTestCasesRequest_Destination interface { + isExportTestCasesRequest_Destination() +} + +type ExportTestCasesRequest_GcsUri struct { + // The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to + // export the test cases to. The format of this URI must be + // `gs:///`. If unspecified, the serialized test + // cases is returned inline. + GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` +} + +func (*ExportTestCasesRequest_GcsUri) isExportTestCasesRequest_Destination() {} + +// The response message for [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases]. +type ExportTestCasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The exported test cases. + // + // Types that are assignable to Destination: + // *ExportTestCasesResponse_GcsUri + // *ExportTestCasesResponse_Content + Destination isExportTestCasesResponse_Destination `protobuf_oneof:"destination"` +} + +func (x *ExportTestCasesResponse) Reset() { + *x = ExportTestCasesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportTestCasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportTestCasesResponse) ProtoMessage() {} + +func (x *ExportTestCasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportTestCasesResponse.ProtoReflect.Descriptor instead. +func (*ExportTestCasesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{27} +} + +func (m *ExportTestCasesResponse) GetDestination() isExportTestCasesResponse_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *ExportTestCasesResponse) GetGcsUri() string { + if x, ok := x.GetDestination().(*ExportTestCasesResponse_GcsUri); ok { + return x.GcsUri + } + return "" +} + +func (x *ExportTestCasesResponse) GetContent() []byte { + if x, ok := x.GetDestination().(*ExportTestCasesResponse_Content); ok { + return x.Content + } + return nil +} + +type isExportTestCasesResponse_Destination interface { + isExportTestCasesResponse_Destination() +} + +type ExportTestCasesResponse_GcsUri struct { + // The URI to a file containing the exported test cases. This field is + // populated only if `gcs_uri` is specified in + // [ExportTestCasesRequest][google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest]. + GcsUri string `protobuf:"bytes,1,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` +} + +type ExportTestCasesResponse_Content struct { + // Uncompressed raw byte content for test cases. + Content []byte `protobuf:"bytes,2,opt,name=content,proto3,oneof"` +} + +func (*ExportTestCasesResponse_GcsUri) isExportTestCasesResponse_Destination() {} + +func (*ExportTestCasesResponse_Content) isExportTestCasesResponse_Destination() {} + +// Metadata returned for the [TestCases.ExportTestCases][google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases] long running +// operation. +type ExportTestCasesMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExportTestCasesMetadata) Reset() { + *x = ExportTestCasesMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportTestCasesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportTestCasesMetadata) ProtoMessage() {} + +func (x *ExportTestCasesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportTestCasesMetadata.ProtoReflect.Descriptor instead. +func (*ExportTestCasesMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{28} +} + +// The request message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults]. +type ListTestCaseResultsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The test case to list results for. + // Format: `projects//locations//agents// + // testCases/`. Specify a `-` as a wildcard for TestCase ID to + // list results across multiple test cases. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return in a single page. By default 100 and + // at most 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value returned from a previous list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The filter expression used to filter test case results. See + // [API Filtering](https://aip.dev/160). + // + // The expression is case insensitive. Only 'AND' is supported for logical + // operators. The supported syntax is listed below in detail: + // + // [AND ] ... + // [AND latest] + // + // The supported fields and operators are: + // field operator + // `environment` `=`, `IN` (Use value `draft` for draft environment) + // `test_time` `>`, `<` + // + // `latest` only returns the latest test result in all results for each test + // case. + // + // Examples: + // * "environment=draft AND latest" matches the latest test result for each + // test case in the draft environment. + // * "environment IN (e1,e2)" matches any test case results with an + // environment resource name of either "e1" or "e2". + // * "test_time > 1602540713" matches any test case results with test time + // later than a unix timestamp in seconds 1602540713. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListTestCaseResultsRequest) Reset() { + *x = ListTestCaseResultsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTestCaseResultsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTestCaseResultsRequest) ProtoMessage() {} + +func (x *ListTestCaseResultsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTestCaseResultsRequest.ProtoReflect.Descriptor instead. +func (*ListTestCaseResultsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{29} +} + +func (x *ListTestCaseResultsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListTestCaseResultsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListTestCaseResultsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListTestCaseResultsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// The response message for [TestCases.ListTestCaseResults][google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults]. +type ListTestCaseResultsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of test case results. + TestCaseResults []*TestCaseResult `protobuf:"bytes,1,rep,name=test_case_results,json=testCaseResults,proto3" json:"test_case_results,omitempty"` + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListTestCaseResultsResponse) Reset() { + *x = ListTestCaseResultsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTestCaseResultsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTestCaseResultsResponse) ProtoMessage() {} + +func (x *ListTestCaseResultsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTestCaseResultsResponse.ProtoReflect.Descriptor instead. +func (*ListTestCaseResultsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{30} +} + +func (x *ListTestCaseResultsResponse) GetTestCaseResults() []*TestCaseResult { + if x != nil { + return x.TestCaseResults + } + return nil +} + +func (x *ListTestCaseResultsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The input from the human user. +type ConversationTurn_UserInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Supports [text input][google.cloud.dialogflow.cx.v3beta1.QueryInput.text], [event input][google.cloud.dialogflow.cx.v3beta1.QueryInput.event], + // [dtmf input][google.cloud.dialogflow.cx.v3beta1.QueryInput.dtmf] in the test case. + Input *QueryInput `protobuf:"bytes,5,opt,name=input,proto3" json:"input,omitempty"` + // Parameters that need to be injected into the conversation during intent + // detection. + InjectedParameters *structpb.Struct `protobuf:"bytes,2,opt,name=injected_parameters,json=injectedParameters,proto3" json:"injected_parameters,omitempty"` + // If webhooks should be allowed to trigger in response to the user + // utterance. Often if parameters are injected, webhooks should not be + // enabled. + IsWebhookEnabled bool `protobuf:"varint,3,opt,name=is_webhook_enabled,json=isWebhookEnabled,proto3" json:"is_webhook_enabled,omitempty"` +} + +func (x *ConversationTurn_UserInput) Reset() { + *x = ConversationTurn_UserInput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationTurn_UserInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationTurn_UserInput) ProtoMessage() {} + +func (x *ConversationTurn_UserInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConversationTurn_UserInput.ProtoReflect.Descriptor instead. +func (*ConversationTurn_UserInput) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *ConversationTurn_UserInput) GetInput() *QueryInput { + if x != nil { + return x.Input + } + return nil +} + +func (x *ConversationTurn_UserInput) GetInjectedParameters() *structpb.Struct { + if x != nil { + return x.InjectedParameters + } + return nil +} + +func (x *ConversationTurn_UserInput) GetIsWebhookEnabled() bool { + if x != nil { + return x.IsWebhookEnabled + } + return false +} + +// The output from the virtual agent. +type ConversationTurn_VirtualAgentOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The session parameters available to the bot at this point. + SessionParameters *structpb.Struct `protobuf:"bytes,4,opt,name=session_parameters,json=sessionParameters,proto3" json:"session_parameters,omitempty"` + // Output only. If this is part of a [result conversation + // turn][TestCaseResult.conversation_turns], the list of differences + // between the original run and the replay for this output, if any. + Differences []*TestRunDifference `protobuf:"bytes,5,rep,name=differences,proto3" json:"differences,omitempty"` + // Required. Input only. The diagnostic + // [info][Session.DetectIntentResponse.QueryResult.diagnostic_info] + // output for the turn. + DiagnosticInfo *structpb.Struct `protobuf:"bytes,6,opt,name=diagnostic_info,json=diagnosticInfo,proto3" json:"diagnostic_info,omitempty"` + // The [Intent][google.cloud.dialogflow.cx.v3beta1.Intent] that triggered the response. Only some fields such as + // name and displayname will be set. + TriggeredIntent *Intent `protobuf:"bytes,7,opt,name=triggered_intent,json=triggeredIntent,proto3" json:"triggered_intent,omitempty"` + // The [Page][google.cloud.dialogflow.cx.v3beta1.Page] on which the utterance was spoken. Only some fields such as + // name and displayname will be set. + CurrentPage *Page `protobuf:"bytes,8,opt,name=current_page,json=currentPage,proto3" json:"current_page,omitempty"` + // The [text][google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text] responses from the agent for the turn. + TextResponses []*ResponseMessage_Text `protobuf:"bytes,9,rep,name=text_responses,json=textResponses,proto3" json:"text_responses,omitempty"` + // Response error from the agent in the test result. If set, other output + // is empty. + Status *status.Status `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *ConversationTurn_VirtualAgentOutput) Reset() { + *x = ConversationTurn_VirtualAgentOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationTurn_VirtualAgentOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationTurn_VirtualAgentOutput) ProtoMessage() {} + +func (x *ConversationTurn_VirtualAgentOutput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConversationTurn_VirtualAgentOutput.ProtoReflect.Descriptor instead. +func (*ConversationTurn_VirtualAgentOutput) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *ConversationTurn_VirtualAgentOutput) GetSessionParameters() *structpb.Struct { + if x != nil { + return x.SessionParameters + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetDifferences() []*TestRunDifference { + if x != nil { + return x.Differences + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetDiagnosticInfo() *structpb.Struct { + if x != nil { + return x.DiagnosticInfo + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetTriggeredIntent() *Intent { + if x != nil { + return x.TriggeredIntent + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetCurrentPage() *Page { + if x != nil { + return x.CurrentPage + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetTextResponses() []*ResponseMessage_Text { + if x != nil { + return x.TextResponses + } + return nil +} + +func (x *ConversationTurn_VirtualAgentOutput) GetStatus() *status.Status { + if x != nil { + return x.Status + } + return nil +} + +// The source or target of a transition. +type TransitionCoverage_TransitionNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A TransitionNode can be either a page or a flow. + // + // Types that are assignable to Kind: + // *TransitionCoverage_TransitionNode_Page + // *TransitionCoverage_TransitionNode_Flow + Kind isTransitionCoverage_TransitionNode_Kind `protobuf_oneof:"kind"` +} + +func (x *TransitionCoverage_TransitionNode) Reset() { + *x = TransitionCoverage_TransitionNode{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitionCoverage_TransitionNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitionCoverage_TransitionNode) ProtoMessage() {} + +func (x *TransitionCoverage_TransitionNode) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransitionCoverage_TransitionNode.ProtoReflect.Descriptor instead. +func (*TransitionCoverage_TransitionNode) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{5, 0} +} + +func (m *TransitionCoverage_TransitionNode) GetKind() isTransitionCoverage_TransitionNode_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (x *TransitionCoverage_TransitionNode) GetPage() *Page { + if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Page); ok { + return x.Page + } + return nil +} + +func (x *TransitionCoverage_TransitionNode) GetFlow() *Flow { + if x, ok := x.GetKind().(*TransitionCoverage_TransitionNode_Flow); ok { + return x.Flow + } + return nil +} + +type isTransitionCoverage_TransitionNode_Kind interface { + isTransitionCoverage_TransitionNode_Kind() +} + +type TransitionCoverage_TransitionNode_Page struct { + // Indicates a transition to a [Page][google.cloud.dialogflow.cx.v3beta1.Page]. Only some fields such as name and + // displayname will be set. + Page *Page `protobuf:"bytes,1,opt,name=page,proto3,oneof"` +} + +type TransitionCoverage_TransitionNode_Flow struct { + // Indicates a transition to a [Flow][google.cloud.dialogflow.cx.v3beta1.Flow]. Only some fields such as name and + // displayname will be set. + Flow *Flow `protobuf:"bytes,2,opt,name=flow,proto3,oneof"` +} + +func (*TransitionCoverage_TransitionNode_Page) isTransitionCoverage_TransitionNode_Kind() {} + +func (*TransitionCoverage_TransitionNode_Flow) isTransitionCoverage_TransitionNode_Kind() {} + +// A transition in the agent's graph. +type TransitionCoverage_Transition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The start node of a transition. + Source *TransitionCoverage_TransitionNode `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + // The index of a transition in the transition list. Starting from 0. + Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` + // The end node of a transition. + Target *TransitionCoverage_TransitionNode `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` + // Whether or not the transition is covered by at least one of the + // agent's test cases. + Covered bool `protobuf:"varint,3,opt,name=covered,proto3" json:"covered,omitempty"` + // The detailed transition. + // + // Types that are assignable to Detail: + // *TransitionCoverage_Transition_TransitionRoute + // *TransitionCoverage_Transition_EventHandler + Detail isTransitionCoverage_Transition_Detail `protobuf_oneof:"detail"` +} + +func (x *TransitionCoverage_Transition) Reset() { + *x = TransitionCoverage_Transition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransitionCoverage_Transition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransitionCoverage_Transition) ProtoMessage() {} + +func (x *TransitionCoverage_Transition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransitionCoverage_Transition.ProtoReflect.Descriptor instead. +func (*TransitionCoverage_Transition) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *TransitionCoverage_Transition) GetSource() *TransitionCoverage_TransitionNode { + if x != nil { + return x.Source + } + return nil +} + +func (x *TransitionCoverage_Transition) GetIndex() int32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *TransitionCoverage_Transition) GetTarget() *TransitionCoverage_TransitionNode { + if x != nil { + return x.Target + } + return nil +} + +func (x *TransitionCoverage_Transition) GetCovered() bool { + if x != nil { + return x.Covered + } + return false +} + +func (m *TransitionCoverage_Transition) GetDetail() isTransitionCoverage_Transition_Detail { + if m != nil { + return m.Detail + } + return nil +} + +func (x *TransitionCoverage_Transition) GetTransitionRoute() *TransitionRoute { + if x, ok := x.GetDetail().(*TransitionCoverage_Transition_TransitionRoute); ok { + return x.TransitionRoute + } + return nil +} + +func (x *TransitionCoverage_Transition) GetEventHandler() *EventHandler { + if x, ok := x.GetDetail().(*TransitionCoverage_Transition_EventHandler); ok { + return x.EventHandler + } + return nil +} + +type isTransitionCoverage_Transition_Detail interface { + isTransitionCoverage_Transition_Detail() +} + +type TransitionCoverage_Transition_TransitionRoute struct { + // Intent route or condition route. + TransitionRoute *TransitionRoute `protobuf:"bytes,5,opt,name=transition_route,json=transitionRoute,proto3,oneof"` +} + +type TransitionCoverage_Transition_EventHandler struct { + // Event handler. + EventHandler *EventHandler `protobuf:"bytes,6,opt,name=event_handler,json=eventHandler,proto3,oneof"` +} + +func (*TransitionCoverage_Transition_TransitionRoute) isTransitionCoverage_Transition_Detail() {} + +func (*TransitionCoverage_Transition_EventHandler) isTransitionCoverage_Transition_Detail() {} + +// The agent's intent. +type IntentCoverage_Intent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The intent full resource name + Intent string `protobuf:"bytes,1,opt,name=intent,proto3" json:"intent,omitempty"` + // Whether or not the intent is covered by at least one of the agent's + // test cases. + Covered bool `protobuf:"varint,2,opt,name=covered,proto3" json:"covered,omitempty"` +} + +func (x *IntentCoverage_Intent) Reset() { + *x = IntentCoverage_Intent{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntentCoverage_Intent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntentCoverage_Intent) ProtoMessage() {} + +func (x *IntentCoverage_Intent) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35] + 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 IntentCoverage_Intent.ProtoReflect.Descriptor instead. +func (*IntentCoverage_Intent) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *IntentCoverage_Intent) GetIntent() string { + if x != nil { + return x.Intent + } + return "" +} + +func (x *IntentCoverage_Intent) GetCovered() bool { + if x != nil { + return x.Covered + } + return false +} + +var File_google_cloud_dialogflow_cx_v3beta1_test_case_proto protoreflect.FileDescriptor + +var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc = []byte{ + 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x70, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, + 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x74, 0x65, 0x73, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x1c, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x63, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x75, 0x72, 0x6e, 0x52, 0x19, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x73, 0x12, 0x44, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x3a, 0x75, 0xea, 0x41, 0x72, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x4c, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x22, 0xf4, 0x03, 0x0a, 0x0e, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x4f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x63, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x75, 0x72, 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a, 0x74, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x3a, 0x8d, 0x01, 0xea, 0x41, 0x89, 0x01, 0x0a, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x5d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2f, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x7d, + 0x22, 0x76, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, + 0x0a, 0x13, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x37, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, + 0x41, 0x20, 0x0a, 0x1e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xf0, 0x07, 0x0a, 0x10, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x5d, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x14, + 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x72, 0x6e, + 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x52, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0xc9, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x13, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x52, 0x12, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x69, 0x73, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x1a, 0xb5, 0x04, 0x0a, 0x12, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x12, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x0b, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x04, 0x52, 0x0e, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x55, 0x0a, 0x10, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x52, 0x0f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x5f, + 0x0a, 0x0e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x65, 0x78, 0x74, + 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, + 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x11, + 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x52, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, + 0x47, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, + 0x52, 0x53, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x54, 0x54, 0x45, 0x52, 0x41, 0x4e, 0x43, + 0x45, 0x10, 0x04, 0x22, 0xfd, 0x05, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x98, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x66, 0x6c, 0x6f, + 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x1a, 0xbf, 0x03, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x5d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x12, 0x60, + 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x57, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x1a, 0x61, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x06, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, + 0x22, 0x0a, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x22, 0x8d, 0x02, 0x0a, 0x18, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x62, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4e, 0x0a, 0x0c, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x41, 0x47, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x22, 0xb2, 0x02, 0x0a, 0x19, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x5d, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x69, + 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb6, 0x02, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x59, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x43, + 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1e, + 0x0a, 0x1a, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, + 0x4c, 0x10, 0x02, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, + 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x09, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x4e, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, + 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x22, 0x54, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x52, 0x75, 0x6e, + 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x4f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x61, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x18, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, + 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x09, 0x74, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x22, 0x62, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x45, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, + 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x9d, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, + 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, + 0x58, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x17, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, + 0x86, 0x01, 0x0a, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x49, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc5, 0x02, 0x0a, 0x16, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x64, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, + 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, + 0x72, 0x69, 0x12, 0x66, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, + 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x5f, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x67, + 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, + 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x2a, 0x41, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x32, 0xcf, 0x14, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x73, 0x12, 0xd2, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, + 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x3b, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, + 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x4c, 0x22, 0x47, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdc, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x22, 0x3b, 0x2f, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x63, 0x61, 0x73, 0x65, 0xda, 0x41, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x12, 0xeb, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, + 0x61, 0x73, 0x65, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x32, 0x45, 0x2f, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x3a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0xda, 0x41, 0x15, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xd4, 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x36, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0xca, + 0x41, 0x2a, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xfb, 0x01, 0x0a, + 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, + 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, + 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x88, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, + 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x3a, 0x01, + 0x2a, 0xca, 0x41, 0x36, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe6, 0x01, 0x0a, 0x11, 0x43, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, + 0x73, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, + 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a, + 0x01, 0x2a, 0xca, 0x41, 0x32, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xf1, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, + 0x42, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x32, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, + 0x73, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xee, 0x01, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, + 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x76, + 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, + 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x1a, 0x78, 0xca, 0x41, + 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 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, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xac, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x44, 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, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, + 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, + 0x42, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescOnce sync.Once + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData = file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc +) + +func file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescGZIP() []byte { + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescOnce.Do(func() { + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData) + }) + return file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDescData +} + +var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes = []interface{}{ + (TestResult)(0), // 0: google.cloud.dialogflow.cx.v3beta1.TestResult + (TestRunDifference_DiffType)(0), // 1: google.cloud.dialogflow.cx.v3beta1.TestRunDifference.DiffType + (CalculateCoverageRequest_CoverageType)(0), // 2: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.CoverageType + (ListTestCasesRequest_TestCaseView)(0), // 3: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.TestCaseView + (ExportTestCasesRequest_DataFormat)(0), // 4: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.DataFormat + (*TestCase)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.TestCase + (*TestCaseResult)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.TestCaseResult + (*TestConfig)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.TestConfig + (*ConversationTurn)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ConversationTurn + (*TestRunDifference)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.TestRunDifference + (*TransitionCoverage)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage + (*IntentCoverage)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.IntentCoverage + (*CalculateCoverageRequest)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest + (*CalculateCoverageResponse)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse + (*ListTestCasesRequest)(nil), // 14: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest + (*ListTestCasesResponse)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse + (*BatchDeleteTestCasesRequest)(nil), // 16: google.cloud.dialogflow.cx.v3beta1.BatchDeleteTestCasesRequest + (*CreateTestCaseRequest)(nil), // 17: google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest + (*UpdateTestCaseRequest)(nil), // 18: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest + (*GetTestCaseRequest)(nil), // 19: google.cloud.dialogflow.cx.v3beta1.GetTestCaseRequest + (*RunTestCaseRequest)(nil), // 20: google.cloud.dialogflow.cx.v3beta1.RunTestCaseRequest + (*RunTestCaseResponse)(nil), // 21: google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse + (*RunTestCaseMetadata)(nil), // 22: google.cloud.dialogflow.cx.v3beta1.RunTestCaseMetadata + (*BatchRunTestCasesRequest)(nil), // 23: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesRequest + (*BatchRunTestCasesResponse)(nil), // 24: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse + (*BatchRunTestCasesMetadata)(nil), // 25: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata + (*TestError)(nil), // 26: google.cloud.dialogflow.cx.v3beta1.TestError + (*ImportTestCasesRequest)(nil), // 27: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesRequest + (*ImportTestCasesResponse)(nil), // 28: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesResponse + (*ImportTestCasesMetadata)(nil), // 29: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata + (*TestCaseError)(nil), // 30: google.cloud.dialogflow.cx.v3beta1.TestCaseError + (*ExportTestCasesRequest)(nil), // 31: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest + (*ExportTestCasesResponse)(nil), // 32: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesResponse + (*ExportTestCasesMetadata)(nil), // 33: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesMetadata + (*ListTestCaseResultsRequest)(nil), // 34: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsRequest + (*ListTestCaseResultsResponse)(nil), // 35: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse + (*ConversationTurn_UserInput)(nil), // 36: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput + (*ConversationTurn_VirtualAgentOutput)(nil), // 37: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput + (*TransitionCoverage_TransitionNode)(nil), // 38: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode + (*TransitionCoverage_Transition)(nil), // 39: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition + (*IntentCoverage_Intent)(nil), // 40: google.cloud.dialogflow.cx.v3beta1.IntentCoverage.Intent + (*timestamppb.Timestamp)(nil), // 41: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 42: google.protobuf.FieldMask + (*status.Status)(nil), // 43: google.rpc.Status + (*QueryInput)(nil), // 44: google.cloud.dialogflow.cx.v3beta1.QueryInput + (*structpb.Struct)(nil), // 45: google.protobuf.Struct + (*Intent)(nil), // 46: google.cloud.dialogflow.cx.v3beta1.Intent + (*Page)(nil), // 47: google.cloud.dialogflow.cx.v3beta1.Page + (*ResponseMessage_Text)(nil), // 48: google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text + (*Flow)(nil), // 49: google.cloud.dialogflow.cx.v3beta1.Flow + (*TransitionRoute)(nil), // 50: google.cloud.dialogflow.cx.v3beta1.TransitionRoute + (*EventHandler)(nil), // 51: google.cloud.dialogflow.cx.v3beta1.EventHandler + (*emptypb.Empty)(nil), // 52: google.protobuf.Empty + (*longrunning.Operation)(nil), // 53: google.longrunning.Operation +} +var file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_depIdxs = []int32{ + 7, // 0: google.cloud.dialogflow.cx.v3beta1.TestCase.test_config:type_name -> google.cloud.dialogflow.cx.v3beta1.TestConfig + 8, // 1: google.cloud.dialogflow.cx.v3beta1.TestCase.test_case_conversation_turns:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn + 41, // 2: google.cloud.dialogflow.cx.v3beta1.TestCase.creation_time:type_name -> google.protobuf.Timestamp + 6, // 3: google.cloud.dialogflow.cx.v3beta1.TestCase.last_test_result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult + 8, // 4: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.conversation_turns:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn + 0, // 5: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.test_result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestResult + 41, // 6: google.cloud.dialogflow.cx.v3beta1.TestCaseResult.test_time:type_name -> google.protobuf.Timestamp + 36, // 7: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.user_input:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput + 37, // 8: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.virtual_agent_output:type_name -> google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput + 1, // 9: google.cloud.dialogflow.cx.v3beta1.TestRunDifference.type:type_name -> google.cloud.dialogflow.cx.v3beta1.TestRunDifference.DiffType + 39, // 10: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.transitions:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition + 40, // 11: google.cloud.dialogflow.cx.v3beta1.IntentCoverage.intents:type_name -> google.cloud.dialogflow.cx.v3beta1.IntentCoverage.Intent + 2, // 12: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.type:type_name -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest.CoverageType + 11, // 13: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse.intent_coverage:type_name -> google.cloud.dialogflow.cx.v3beta1.IntentCoverage + 10, // 14: google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse.transition_coverage:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage + 3, // 15: google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.view:type_name -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest.TestCaseView + 5, // 16: google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse.test_cases:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase + 5, // 17: google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase + 5, // 18: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase + 42, // 19: google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest.update_mask:type_name -> google.protobuf.FieldMask + 6, // 20: google.cloud.dialogflow.cx.v3beta1.RunTestCaseResponse.result:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult + 6, // 21: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesResponse.results:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult + 26, // 22: google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3beta1.TestError + 43, // 23: google.cloud.dialogflow.cx.v3beta1.TestError.status:type_name -> google.rpc.Status + 41, // 24: google.cloud.dialogflow.cx.v3beta1.TestError.test_time:type_name -> google.protobuf.Timestamp + 30, // 25: google.cloud.dialogflow.cx.v3beta1.ImportTestCasesMetadata.errors:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseError + 5, // 26: google.cloud.dialogflow.cx.v3beta1.TestCaseError.test_case:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCase + 43, // 27: google.cloud.dialogflow.cx.v3beta1.TestCaseError.status:type_name -> google.rpc.Status + 4, // 28: google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.data_format:type_name -> google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest.DataFormat + 6, // 29: google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse.test_case_results:type_name -> google.cloud.dialogflow.cx.v3beta1.TestCaseResult + 44, // 30: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput.input:type_name -> google.cloud.dialogflow.cx.v3beta1.QueryInput + 45, // 31: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.UserInput.injected_parameters:type_name -> google.protobuf.Struct + 45, // 32: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.session_parameters:type_name -> google.protobuf.Struct + 9, // 33: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.differences:type_name -> google.cloud.dialogflow.cx.v3beta1.TestRunDifference + 45, // 34: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.diagnostic_info:type_name -> google.protobuf.Struct + 46, // 35: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.triggered_intent:type_name -> google.cloud.dialogflow.cx.v3beta1.Intent + 47, // 36: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.current_page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page + 48, // 37: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.text_responses:type_name -> google.cloud.dialogflow.cx.v3beta1.ResponseMessage.Text + 43, // 38: google.cloud.dialogflow.cx.v3beta1.ConversationTurn.VirtualAgentOutput.status:type_name -> google.rpc.Status + 47, // 39: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode.page:type_name -> google.cloud.dialogflow.cx.v3beta1.Page + 49, // 40: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode.flow:type_name -> google.cloud.dialogflow.cx.v3beta1.Flow + 38, // 41: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.source:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode + 38, // 42: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.target:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.TransitionNode + 50, // 43: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.transition_route:type_name -> google.cloud.dialogflow.cx.v3beta1.TransitionRoute + 51, // 44: google.cloud.dialogflow.cx.v3beta1.TransitionCoverage.Transition.event_handler:type_name -> google.cloud.dialogflow.cx.v3beta1.EventHandler + 14, // 45: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesRequest + 16, // 46: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.BatchDeleteTestCasesRequest + 19, // 47: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.GetTestCaseRequest + 17, // 48: google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateTestCaseRequest + 18, // 49: google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateTestCaseRequest + 20, // 50: google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase:input_type -> google.cloud.dialogflow.cx.v3beta1.RunTestCaseRequest + 23, // 51: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.BatchRunTestCasesRequest + 12, // 52: google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage:input_type -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageRequest + 27, // 53: google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ImportTestCasesRequest + 31, // 54: google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases:input_type -> google.cloud.dialogflow.cx.v3beta1.ExportTestCasesRequest + 34, // 55: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults:input_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsRequest + 15, // 56: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCases:output_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCasesResponse + 52, // 57: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchDeleteTestCases:output_type -> google.protobuf.Empty + 5, // 58: google.cloud.dialogflow.cx.v3beta1.TestCases.GetTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase + 5, // 59: google.cloud.dialogflow.cx.v3beta1.TestCases.CreateTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase + 5, // 60: google.cloud.dialogflow.cx.v3beta1.TestCases.UpdateTestCase:output_type -> google.cloud.dialogflow.cx.v3beta1.TestCase + 53, // 61: google.cloud.dialogflow.cx.v3beta1.TestCases.RunTestCase:output_type -> google.longrunning.Operation + 53, // 62: google.cloud.dialogflow.cx.v3beta1.TestCases.BatchRunTestCases:output_type -> google.longrunning.Operation + 13, // 63: google.cloud.dialogflow.cx.v3beta1.TestCases.CalculateCoverage:output_type -> google.cloud.dialogflow.cx.v3beta1.CalculateCoverageResponse + 53, // 64: google.cloud.dialogflow.cx.v3beta1.TestCases.ImportTestCases:output_type -> google.longrunning.Operation + 53, // 65: google.cloud.dialogflow.cx.v3beta1.TestCases.ExportTestCases:output_type -> google.longrunning.Operation + 35, // 66: google.cloud.dialogflow.cx.v3beta1.TestCases.ListTestCaseResults:output_type -> google.cloud.dialogflow.cx.v3beta1.ListTestCaseResultsResponse + 56, // [56:67] is the sub-list for method output_type + 45, // [45:56] is the sub-list for method input_type + 45, // [45:45] is the sub-list for extension type_name + 45, // [45:45] is the sub-list for extension extendee + 0, // [0:45] is the sub-list for field type_name +} + +func init() { file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_init() } +func file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_init() { + if File_google_cloud_dialogflow_cx_v3beta1_test_case_proto != nil { + return + } + file_google_cloud_dialogflow_cx_v3beta1_flow_proto_init() + file_google_cloud_dialogflow_cx_v3beta1_intent_proto_init() + file_google_cloud_dialogflow_cx_v3beta1_page_proto_init() + file_google_cloud_dialogflow_cx_v3beta1_response_message_proto_init() + file_google_cloud_dialogflow_cx_v3beta1_session_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestCase); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestCaseResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationTurn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestRunDifference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitionCoverage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntentCoverage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculateCoverageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CalculateCoverageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTestCasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTestCasesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchDeleteTestCasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTestCaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateTestCaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTestCaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunTestCaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunTestCaseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunTestCaseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunTestCasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunTestCasesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunTestCasesMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportTestCasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportTestCasesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportTestCasesMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestCaseError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportTestCasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportTestCasesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportTestCasesMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTestCaseResultsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTestCaseResultsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationTurn_UserInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationTurn_VirtualAgentOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitionCoverage_TransitionNode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransitionCoverage_Transition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntentCoverage_Intent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*CalculateCoverageResponse_IntentCoverage)(nil), + (*CalculateCoverageResponse_TransitionCoverage)(nil), + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[22].OneofWrappers = []interface{}{ + (*ImportTestCasesRequest_GcsUri)(nil), + (*ImportTestCasesRequest_Content)(nil), + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[26].OneofWrappers = []interface{}{ + (*ExportTestCasesRequest_GcsUri)(nil), + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[27].OneofWrappers = []interface{}{ + (*ExportTestCasesResponse_GcsUri)(nil), + (*ExportTestCasesResponse_Content)(nil), + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[33].OneofWrappers = []interface{}{ + (*TransitionCoverage_TransitionNode_Page)(nil), + (*TransitionCoverage_TransitionNode_Flow)(nil), + } + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes[34].OneofWrappers = []interface{}{ + (*TransitionCoverage_Transition_TransitionRoute)(nil), + (*TransitionCoverage_Transition_EventHandler)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc, + NumEnums: 5, + NumMessages: 36, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes, + DependencyIndexes: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_depIdxs, + EnumInfos: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_enumTypes, + MessageInfos: file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_msgTypes, + }.Build() + File_google_cloud_dialogflow_cx_v3beta1_test_case_proto = out.File + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_rawDesc = nil + file_google_cloud_dialogflow_cx_v3beta1_test_case_proto_goTypes = nil + file_google_cloud_dialogflow_cx_v3beta1_test_case_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 + +// TestCasesClient is the client API for TestCases service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type TestCasesClient interface { + // Fetches a list of test cases for a given agent. + ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) + // Batch deletes test cases. + BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Gets a test case. + GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) + // Creates a test case for the given agent. + CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) + // Updates the specified test case. + UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) + // Kicks off a test case run. + RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Kicks off a batch run of test cases. + BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Calculates the test coverage for an agent. + CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) + // Imports the test cases from a Cloud Storage bucket or a local file. It + // always creates new test cases and won't overwite any existing ones. The + // provided ID in the imported test case is neglected. + ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Exports the test cases under the agent to a Cloud Storage bucket or a local + // file. Filter can be applied to export a subset of test cases. + ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Fetches a list of results for a given test case. + ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) +} + +type testCasesClient struct { + cc grpc.ClientConnInterface +} + +func NewTestCasesClient(cc grpc.ClientConnInterface) TestCasesClient { + return &testCasesClient{cc} +} + +func (c *testCasesClient) ListTestCases(ctx context.Context, in *ListTestCasesRequest, opts ...grpc.CallOption) (*ListTestCasesResponse, error) { + out := new(ListTestCasesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) BatchDeleteTestCases(ctx context.Context, in *BatchDeleteTestCasesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchDeleteTestCases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) GetTestCase(ctx context.Context, in *GetTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { + out := new(TestCase) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) CreateTestCase(ctx context.Context, in *CreateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { + out := new(TestCase) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/CreateTestCase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) UpdateTestCase(ctx context.Context, in *UpdateTestCaseRequest, opts ...grpc.CallOption) (*TestCase, error) { + out := new(TestCase) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/UpdateTestCase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) RunTestCase(ctx context.Context, in *RunTestCaseRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/RunTestCase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) BatchRunTestCases(ctx context.Context, in *BatchRunTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchRunTestCases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) CalculateCoverage(ctx context.Context, in *CalculateCoverageRequest, opts ...grpc.CallOption) (*CalculateCoverageResponse, error) { + out := new(CalculateCoverageResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/CalculateCoverage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) ImportTestCases(ctx context.Context, in *ImportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ImportTestCases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) ExportTestCases(ctx context.Context, in *ExportTestCasesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ExportTestCases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *testCasesClient) ListTestCaseResults(ctx context.Context, in *ListTestCaseResultsRequest, opts ...grpc.CallOption) (*ListTestCaseResultsResponse, error) { + out := new(ListTestCaseResultsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCaseResults", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TestCasesServer is the server API for TestCases service. +type TestCasesServer interface { + // Fetches a list of test cases for a given agent. + ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) + // Batch deletes test cases. + BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) + // Gets a test case. + GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) + // Creates a test case for the given agent. + CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) + // Updates the specified test case. + UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) + // Kicks off a test case run. + RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) + // Kicks off a batch run of test cases. + BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) + // Calculates the test coverage for an agent. + CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) + // Imports the test cases from a Cloud Storage bucket or a local file. It + // always creates new test cases and won't overwite any existing ones. The + // provided ID in the imported test case is neglected. + ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) + // Exports the test cases under the agent to a Cloud Storage bucket or a local + // file. Filter can be applied to export a subset of test cases. + ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) + // Fetches a list of results for a given test case. + ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) +} + +// UnimplementedTestCasesServer can be embedded to have forward compatible implementations. +type UnimplementedTestCasesServer struct { +} + +func (*UnimplementedTestCasesServer) ListTestCases(context.Context, *ListTestCasesRequest) (*ListTestCasesResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListTestCases not implemented") +} +func (*UnimplementedTestCasesServer) BatchDeleteTestCases(context.Context, *BatchDeleteTestCasesRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method BatchDeleteTestCases not implemented") +} +func (*UnimplementedTestCasesServer) GetTestCase(context.Context, *GetTestCaseRequest) (*TestCase, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetTestCase not implemented") +} +func (*UnimplementedTestCasesServer) CreateTestCase(context.Context, *CreateTestCaseRequest) (*TestCase, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateTestCase not implemented") +} +func (*UnimplementedTestCasesServer) UpdateTestCase(context.Context, *UpdateTestCaseRequest) (*TestCase, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateTestCase not implemented") +} +func (*UnimplementedTestCasesServer) RunTestCase(context.Context, *RunTestCaseRequest) (*longrunning.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method RunTestCase not implemented") +} +func (*UnimplementedTestCasesServer) BatchRunTestCases(context.Context, *BatchRunTestCasesRequest) (*longrunning.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method BatchRunTestCases not implemented") +} +func (*UnimplementedTestCasesServer) CalculateCoverage(context.Context, *CalculateCoverageRequest) (*CalculateCoverageResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CalculateCoverage not implemented") +} +func (*UnimplementedTestCasesServer) ImportTestCases(context.Context, *ImportTestCasesRequest) (*longrunning.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ImportTestCases not implemented") +} +func (*UnimplementedTestCasesServer) ExportTestCases(context.Context, *ExportTestCasesRequest) (*longrunning.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ExportTestCases not implemented") +} +func (*UnimplementedTestCasesServer) ListTestCaseResults(context.Context, *ListTestCaseResultsRequest) (*ListTestCaseResultsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListTestCaseResults not implemented") +} + +func RegisterTestCasesServer(s *grpc.Server, srv TestCasesServer) { + s.RegisterService(&_TestCases_serviceDesc, srv) +} + +func _TestCases_ListTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListTestCasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).ListTestCases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).ListTestCases(ctx, req.(*ListTestCasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_BatchDeleteTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchDeleteTestCasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).BatchDeleteTestCases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchDeleteTestCases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).BatchDeleteTestCases(ctx, req.(*BatchDeleteTestCasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_GetTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTestCaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).GetTestCase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/GetTestCase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).GetTestCase(ctx, req.(*GetTestCaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_CreateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTestCaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).CreateTestCase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/CreateTestCase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).CreateTestCase(ctx, req.(*CreateTestCaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_UpdateTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateTestCaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).UpdateTestCase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/UpdateTestCase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).UpdateTestCase(ctx, req.(*UpdateTestCaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_RunTestCase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RunTestCaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).RunTestCase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/RunTestCase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).RunTestCase(ctx, req.(*RunTestCaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_BatchRunTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchRunTestCasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).BatchRunTestCases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/BatchRunTestCases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).BatchRunTestCases(ctx, req.(*BatchRunTestCasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_CalculateCoverage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CalculateCoverageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).CalculateCoverage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/CalculateCoverage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).CalculateCoverage(ctx, req.(*CalculateCoverageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_ImportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportTestCasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).ImportTestCases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ImportTestCases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).ImportTestCases(ctx, req.(*ImportTestCasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_ExportTestCases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExportTestCasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).ExportTestCases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ExportTestCases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).ExportTestCases(ctx, req.(*ExportTestCasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TestCases_ListTestCaseResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListTestCaseResultsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TestCasesServer).ListTestCaseResults(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dialogflow.cx.v3beta1.TestCases/ListTestCaseResults", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TestCasesServer).ListTestCaseResults(ctx, req.(*ListTestCaseResultsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _TestCases_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.dialogflow.cx.v3beta1.TestCases", + HandlerType: (*TestCasesServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListTestCases", + Handler: _TestCases_ListTestCases_Handler, + }, + { + MethodName: "BatchDeleteTestCases", + Handler: _TestCases_BatchDeleteTestCases_Handler, + }, + { + MethodName: "GetTestCase", + Handler: _TestCases_GetTestCase_Handler, + }, + { + MethodName: "CreateTestCase", + Handler: _TestCases_CreateTestCase_Handler, + }, + { + MethodName: "UpdateTestCase", + Handler: _TestCases_UpdateTestCase_Handler, + }, + { + MethodName: "RunTestCase", + Handler: _TestCases_RunTestCase_Handler, + }, + { + MethodName: "BatchRunTestCases", + Handler: _TestCases_BatchRunTestCases_Handler, + }, + { + MethodName: "CalculateCoverage", + Handler: _TestCases_CalculateCoverage_Handler, + }, + { + MethodName: "ImportTestCases", + Handler: _TestCases_ImportTestCases_Handler, + }, + { + MethodName: "ExportTestCases", + Handler: _TestCases_ExportTestCases_Handler, + }, + { + MethodName: "ListTestCaseResults", + Handler: _TestCases_ListTestCaseResults_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/dialogflow/cx/v3beta1/test_case.proto", +} diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/transition_route_group.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/transition_route_group.pb.go index a63743dd6..2b8cd6148 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/transition_route_group.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/transition_route_group.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/transition_route_group.proto @@ -64,11 +64,6 @@ type TransitionRouteGroup struct { // the [Agent][google.cloud.dialogflow.cx.v3beta1.Agent]. The display name can be no longer than 30 characters. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Transition routes associated with the [TransitionRouteGroup][google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup]. - // Duplicate transition routes (i.e. using the same - // [`intent`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.intent]) are not allowed. - // - // Note that the [`name`][google.cloud.dialogflow.cx.v3beta1.TransitionRoute.name] field is not used in the - // transition route group scope. TransitionRoutes []*TransitionRoute `protobuf:"bytes,5,rep,name=transition_routes,json=transitionRoutes,proto3" json:"transition_routes,omitempty"` } diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/validation_message.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/validation_message.pb.go new file mode 100644 index 000000000..e8834b2be --- /dev/null +++ b/googleapis/cloud/dialogflow/cx/v3beta1/validation_message.pb.go @@ -0,0 +1,502 @@ +// 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.25.0-devel +// protoc v3.13.0 +// source: google/cloud/dialogflow/cx/v3beta1/validation_message.proto + +package cx + +import ( + reflect "reflect" + sync "sync" + + proto "github.com/golang/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/structpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// Resource types. +type ValidationMessage_ResourceType int32 + +const ( + // Unspecified. + ValidationMessage_RESOURCE_TYPE_UNSPECIFIED ValidationMessage_ResourceType = 0 + // Agent. + ValidationMessage_AGENT ValidationMessage_ResourceType = 1 + // Intent. + ValidationMessage_INTENT ValidationMessage_ResourceType = 2 + // Intent training phrase. + ValidationMessage_INTENT_TRAINING_PHRASE ValidationMessage_ResourceType = 8 + // Intent parameter. + ValidationMessage_INTENT_PARAMETER ValidationMessage_ResourceType = 9 + // Multiple intents. + ValidationMessage_INTENTS ValidationMessage_ResourceType = 10 + // Multiple training phrases. + ValidationMessage_INTENT_TRAINING_PHRASES ValidationMessage_ResourceType = 11 + // Entity type. + ValidationMessage_ENTITY_TYPE ValidationMessage_ResourceType = 3 + // Multiple entity types. + ValidationMessage_ENTITY_TYPES ValidationMessage_ResourceType = 12 + // Webhook. + ValidationMessage_WEBHOOK ValidationMessage_ResourceType = 4 + // Flow. + ValidationMessage_FLOW ValidationMessage_ResourceType = 5 + // Page. + ValidationMessage_PAGE ValidationMessage_ResourceType = 6 + // Multiple pages. + ValidationMessage_PAGES ValidationMessage_ResourceType = 13 + // Transition route group. + ValidationMessage_TRANSITION_ROUTE_GROUP ValidationMessage_ResourceType = 7 +) + +// Enum value maps for ValidationMessage_ResourceType. +var ( + ValidationMessage_ResourceType_name = map[int32]string{ + 0: "RESOURCE_TYPE_UNSPECIFIED", + 1: "AGENT", + 2: "INTENT", + 8: "INTENT_TRAINING_PHRASE", + 9: "INTENT_PARAMETER", + 10: "INTENTS", + 11: "INTENT_TRAINING_PHRASES", + 3: "ENTITY_TYPE", + 12: "ENTITY_TYPES", + 4: "WEBHOOK", + 5: "FLOW", + 6: "PAGE", + 13: "PAGES", + 7: "TRANSITION_ROUTE_GROUP", + } + ValidationMessage_ResourceType_value = map[string]int32{ + "RESOURCE_TYPE_UNSPECIFIED": 0, + "AGENT": 1, + "INTENT": 2, + "INTENT_TRAINING_PHRASE": 8, + "INTENT_PARAMETER": 9, + "INTENTS": 10, + "INTENT_TRAINING_PHRASES": 11, + "ENTITY_TYPE": 3, + "ENTITY_TYPES": 12, + "WEBHOOK": 4, + "FLOW": 5, + "PAGE": 6, + "PAGES": 13, + "TRANSITION_ROUTE_GROUP": 7, + } +) + +func (x ValidationMessage_ResourceType) Enum() *ValidationMessage_ResourceType { + p := new(ValidationMessage_ResourceType) + *p = x + return p +} + +func (x ValidationMessage_ResourceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ValidationMessage_ResourceType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes[0].Descriptor() +} + +func (ValidationMessage_ResourceType) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes[0] +} + +func (x ValidationMessage_ResourceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ValidationMessage_ResourceType.Descriptor instead. +func (ValidationMessage_ResourceType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescGZIP(), []int{0, 0} +} + +// Severity level. +type ValidationMessage_Severity int32 + +const ( + // Unspecified. + ValidationMessage_SEVERITY_UNSPECIFIED ValidationMessage_Severity = 0 + // The agent doesn't follow Dialogflow best practices. + ValidationMessage_INFO ValidationMessage_Severity = 1 + // The agent may not behave as expected. + ValidationMessage_WARNING ValidationMessage_Severity = 2 + // The agent may experience failures. + ValidationMessage_ERROR ValidationMessage_Severity = 3 +) + +// Enum value maps for ValidationMessage_Severity. +var ( + ValidationMessage_Severity_name = map[int32]string{ + 0: "SEVERITY_UNSPECIFIED", + 1: "INFO", + 2: "WARNING", + 3: "ERROR", + } + ValidationMessage_Severity_value = map[string]int32{ + "SEVERITY_UNSPECIFIED": 0, + "INFO": 1, + "WARNING": 2, + "ERROR": 3, + } +) + +func (x ValidationMessage_Severity) Enum() *ValidationMessage_Severity { + p := new(ValidationMessage_Severity) + *p = x + return p +} + +func (x ValidationMessage_Severity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ValidationMessage_Severity) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes[1].Descriptor() +} + +func (ValidationMessage_Severity) Type() protoreflect.EnumType { + return &file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes[1] +} + +func (x ValidationMessage_Severity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ValidationMessage_Severity.Descriptor instead. +func (ValidationMessage_Severity) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescGZIP(), []int{0, 1} +} + +// Agent/flow validation message. +type ValidationMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of the resources where the message is found. + ResourceType ValidationMessage_ResourceType `protobuf:"varint,1,opt,name=resource_type,json=resourceType,proto3,enum=google.cloud.dialogflow.cx.v3beta1.ValidationMessage_ResourceType" json:"resource_type,omitempty"` + // The names of the resources where the message is found. + // + // Deprecated: Do not use. + Resources []string `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` + // The resource names of the resources where the message is found. + ResourceNames []*ResourceName `protobuf:"bytes,6,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"` + // Indicates the severity of the message. + Severity ValidationMessage_Severity `protobuf:"varint,3,opt,name=severity,proto3,enum=google.cloud.dialogflow.cx.v3beta1.ValidationMessage_Severity" json:"severity,omitempty"` + // The message detail. + Detail string `protobuf:"bytes,4,opt,name=detail,proto3" json:"detail,omitempty"` +} + +func (x *ValidationMessage) Reset() { + *x = ValidationMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidationMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidationMessage) ProtoMessage() {} + +func (x *ValidationMessage) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_validation_message_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 ValidationMessage.ProtoReflect.Descriptor instead. +func (*ValidationMessage) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescGZIP(), []int{0} +} + +func (x *ValidationMessage) GetResourceType() ValidationMessage_ResourceType { + if x != nil { + return x.ResourceType + } + return ValidationMessage_RESOURCE_TYPE_UNSPECIFIED +} + +// Deprecated: Do not use. +func (x *ValidationMessage) GetResources() []string { + if x != nil { + return x.Resources + } + return nil +} + +func (x *ValidationMessage) GetResourceNames() []*ResourceName { + if x != nil { + return x.ResourceNames + } + return nil +} + +func (x *ValidationMessage) GetSeverity() ValidationMessage_Severity { + if x != nil { + return x.Severity + } + return ValidationMessage_SEVERITY_UNSPECIFIED +} + +func (x *ValidationMessage) GetDetail() string { + if x != nil { + return x.Detail + } + return "" +} + +// Resource name and display name. +type ResourceName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Display name. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *ResourceName) Reset() { + *x = ResourceName{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceName) ProtoMessage() {} + +func (x *ResourceName) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dialogflow_cx_v3beta1_validation_message_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 ResourceName.ProtoReflect.Descriptor instead. +func (*ResourceName) Descriptor() ([]byte, []int) { + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescGZIP(), []int{1} +} + +func (x *ResourceName) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceName) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +var File_google_cloud_dialogflow_cx_v3beta1_validation_message_proto protoreflect.FileDescriptor + +var file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDesc = []byte{ + 0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, + 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x05, + 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x57, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x8b, 0x02, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, + 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, + 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, + 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x48, 0x52, 0x41, 0x53, 0x45, 0x10, 0x08, 0x12, 0x14, + 0x0a, 0x10, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, + 0x45, 0x52, 0x10, 0x09, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x53, 0x10, + 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x49, + 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x48, 0x52, 0x41, 0x53, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x0f, + 0x0a, 0x0b, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, + 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x10, + 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x04, 0x12, 0x08, + 0x0a, 0x04, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x47, 0x45, + 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x47, 0x45, 0x53, 0x10, 0x0d, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, + 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x07, 0x22, 0x46, 0x0a, 0x08, 0x53, 0x65, 0x76, + 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, + 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x03, 0x22, 0x45, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0xb5, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x42, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescOnce sync.Once + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescData = file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDesc +) + +func file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescGZIP() []byte { + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescOnce.Do(func() { + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescData) + }) + return file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDescData +} + +var file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_goTypes = []interface{}{ + (ValidationMessage_ResourceType)(0), // 0: google.cloud.dialogflow.cx.v3beta1.ValidationMessage.ResourceType + (ValidationMessage_Severity)(0), // 1: google.cloud.dialogflow.cx.v3beta1.ValidationMessage.Severity + (*ValidationMessage)(nil), // 2: google.cloud.dialogflow.cx.v3beta1.ValidationMessage + (*ResourceName)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.ResourceName +} +var file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_depIdxs = []int32{ + 0, // 0: google.cloud.dialogflow.cx.v3beta1.ValidationMessage.resource_type:type_name -> google.cloud.dialogflow.cx.v3beta1.ValidationMessage.ResourceType + 3, // 1: google.cloud.dialogflow.cx.v3beta1.ValidationMessage.resource_names:type_name -> google.cloud.dialogflow.cx.v3beta1.ResourceName + 1, // 2: google.cloud.dialogflow.cx.v3beta1.ValidationMessage.severity:type_name -> google.cloud.dialogflow.cx.v3beta1.ValidationMessage.Severity + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_init() } +func file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_init() { + if File_google_cloud_dialogflow_cx_v3beta1_validation_message_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidationMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDesc, + NumEnums: 2, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_goTypes, + DependencyIndexes: file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_depIdxs, + EnumInfos: file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_enumTypes, + MessageInfos: file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_msgTypes, + }.Build() + File_google_cloud_dialogflow_cx_v3beta1_validation_message_proto = out.File + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_rawDesc = nil + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_goTypes = nil + file_google_cloud_dialogflow_cx_v3beta1_validation_message_proto_depIdxs = nil +} diff --git a/googleapis/cloud/dialogflow/cx/v3beta1/webhook.pb.go b/googleapis/cloud/dialogflow/cx/v3beta1/webhook.pb.go index 5b19a26e7..af19bd140 100644 --- a/googleapis/cloud/dialogflow/cx/v3beta1/webhook.pb.go +++ b/googleapis/cloud/dialogflow/cx/v3beta1/webhook.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/dialogflow/cx/v3beta1/webhook.proto @@ -951,9 +951,11 @@ type SessionInfo struct { // Always present for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Ignored for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. // The unique identifier of the [session][google.cloud.dialogflow.cx.v3beta1.DetectIntentRequest.session]. This - // field can be used by the webhook to identify a user. + // field can be used by the webhook to identify a session. // Format: `projects//locations//agents//sessions/`. + // ID>/sessions/` or `projects//locations//agents//environments//sessions/` + // if environment is specified. Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` // Optional for [WebhookRequest][google.cloud.dialogflow.cx.v3beta1.WebhookRequest]. Optional for [WebhookResponse][google.cloud.dialogflow.cx.v3beta1.WebhookResponse]. // All parameters collected from forms and intents during the session. @@ -1843,7 +1845,7 @@ var file_google_cloud_dialogflow_cx_v3beta1_webhook_proto_rawDesc = []byte{ 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 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, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, - 0x77, 0x42, 0xab, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x77, 0x42, 0xaa, 0x02, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, @@ -1853,8 +1855,16 @@ var file_google_cloud_dialogflow_cx_v3beta1_webhook_proto_rawDesc = []byte{ 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, - 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0xea, + 0x41, 0x7c, 0x0a, 0x27, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/googleapis/cloud/retail/v2/import_config.pb.go b/googleapis/cloud/retail/v2/import_config.pb.go index d0e3cae76..a0bbbe5d5 100644 --- a/googleapis/cloud/retail/v2/import_config.pb.go +++ b/googleapis/cloud/retail/v2/import_config.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/retail/v2/import_config.proto @@ -53,10 +53,11 @@ type GcsSource struct { // Required. Google Cloud Storage URIs to input files. URI can be up to // 2000 characters long. URIs can match the full object path (for example, - // gs://bucket/directory/object.json) or a pattern matching one or more - // files, such as gs://bucket/directory/*.json. A request can + // `gs://bucket/directory/object.json`) or a pattern matching one or more + // files, such as `gs://bucket/directory/*.json`. A request can // contain at most 100 files, and each file can be up to 2 GB. See - // [Importing product information](/recommendations-ai/docs/upload-catalog) + // [Importing product + // information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) // for the expected file format and setup instructions. InputUris []string `protobuf:"bytes,1,rep,name=input_uris,json=inputUris,proto3" json:"input_uris,omitempty"` // The schema to use when parsing the data from the source. @@ -67,7 +68,7 @@ type GcsSource struct { // per line. Each product must // have a valid [Product.id][google.cloud.retail.v2.Product.id]. // * `product_merchant_center`: See [Importing catalog data from Merchant - // Center](/retail/recommendations-ai/docs/upload-catalog#mc). + // Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). // // Supported values for user events imports: // @@ -152,7 +153,7 @@ type BigQuerySource struct { // per line. Each product must // have a valid [Product.id][google.cloud.retail.v2.Product.id]. // * `product_merchant_center`: See [Importing catalog data from Merchant - // Center](/retail/recommendations-ai/docs/upload-catalog#mc). + // Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). // // Supported values for user events imports: // @@ -410,7 +411,7 @@ type ImportProductsRequest struct { unknownFields protoimpl.UnknownFields // Required. - // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch" + // `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` // // If no updateMask is specified, requires products.create permission. // If updateMask is specified, requires products.update permission. @@ -490,7 +491,7 @@ type ImportUserEventsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. "projects/1234/locations/global/catalogs/default_catalog" + // Required. `projects/1234/locations/global/catalogs/default_catalog` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The desired input location of the data. InputConfig *UserEventInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` diff --git a/googleapis/cloud/retail/v2/product.pb.go b/googleapis/cloud/retail/v2/product.pb.go index de1c4ecd4..b7f35559c 100644 --- a/googleapis/cloud/retail/v2/product.pb.go +++ b/googleapis/cloud/retail/v2/product.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/retail/v2/product.proto @@ -192,7 +192,7 @@ type Product struct { unknownFields protoimpl.UnknownFields // Immutable. Full resource name of the product, such as - // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id". + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. // // The branch ID must be "default_branch". Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -200,7 +200,7 @@ type Product struct { // the final component of [name][google.cloud.retail.v2.Product.name]. For // example, this field is "id_1", if // [name][google.cloud.retail.v2.Product.name] is - // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1". + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. // // This field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an INVALID_ARGUMENT error is returned. diff --git a/googleapis/cloud/retail/v2/product_service.pb.go b/googleapis/cloud/retail/v2/product_service.pb.go index 6e1a7235f..f7c1cdd95 100644 --- a/googleapis/cloud/retail/v2/product_service.pb.go +++ b/googleapis/cloud/retail/v2/product_service.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/retail/v2/product_service.proto @@ -55,7 +55,7 @@ type CreateProductRequest struct { unknownFields protoimpl.UnknownFields // Required. The parent catalog resource name, such as - // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch". + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The [Product][google.cloud.retail.v2.Product] to create. Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"` @@ -138,7 +138,7 @@ type GetProductRequest struct { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as - // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id". + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. // // If the caller does not have permission to access the // [Product][google.cloud.retail.v2.Product], regardless of whether or not it @@ -267,7 +267,7 @@ type DeleteProductRequest struct { // Required. Full resource name of [Product][google.cloud.retail.v2.Product], // such as - // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id". + // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. // // If the caller does not have permission to delete the // [Product][google.cloud.retail.v2.Product], regardless of whether or not it diff --git a/googleapis/cloud/retail/v2/user_event_service.pb.go b/googleapis/cloud/retail/v2/user_event_service.pb.go index 004bbcee2..69ba04b6a 100644 --- a/googleapis/cloud/retail/v2/user_event_service.pb.go +++ b/googleapis/cloud/retail/v2/user_event_service.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 +// protoc-gen-go v1.25.0-devel // protoc v3.13.0 // source: google/cloud/retail/v2/user_event_service.proto @@ -114,7 +114,7 @@ type WriteUserEventRequest struct { unknownFields protoimpl.UnknownFields // Required. The parent catalog resource name, such as - // "projects/1234/locations/global/catalogs/default_catalog". + // `projects/1234/locations/global/catalogs/default_catalog`. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. User event to write. UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"` @@ -173,7 +173,7 @@ type CollectUserEventRequest struct { unknownFields protoimpl.UnknownFields // Required. The parent catalog name, such as - // "projects/1234/locations/global/catalogs/default_catalog". + // `projects/1234/locations/global/catalogs/default_catalog`. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. URL encoded UserEvent proto with a length limit of 2,000,000 // characters. @@ -256,7 +256,7 @@ type RejoinUserEventsRequest struct { unknownFields protoimpl.UnknownFields // Required. The parent catalog resource name, such as - // "projects/1234/locations/global/catalogs/default_catalog". + // `projects/1234/locations/global/catalogs/default_catalog`. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The type of the user event rejoin to define the scope and range of the user // events to be rejoined with the latest product catalog. Defaults to diff --git a/regen.txt b/regen.txt index 5739ae458..8805a878d 100644 --- a/regen.txt +++ b/regen.txt @@ -1 +1 @@ -039f113828fc599a8da3b23d056ba2812d3d211d \ No newline at end of file +f83715b48369c8d43548cc3cd84015e60be94cf2 \ No newline at end of file