1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.26.0 18// protoc v3.12.2 19// source: google/cloud/dialogflow/cx/v3beta1/experiment.proto 20 21package cx 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 grpc "google.golang.org/grpc" 30 codes "google.golang.org/grpc/codes" 31 status "google.golang.org/grpc/status" 32 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 33 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 34 durationpb "google.golang.org/protobuf/types/known/durationpb" 35 emptypb "google.golang.org/protobuf/types/known/emptypb" 36 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 37 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 38) 39 40const ( 41 // Verify that this generated code is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 43 // Verify that runtime/protoimpl is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 45) 46 47// The state of the experiment. 48type Experiment_State int32 49 50const ( 51 // State unspecified. 52 Experiment_STATE_UNSPECIFIED Experiment_State = 0 53 // The experiment is created but not started yet. 54 Experiment_DRAFT Experiment_State = 1 55 // The experiment is running. 56 Experiment_RUNNING Experiment_State = 2 57 // The experiment is done. 58 Experiment_DONE Experiment_State = 3 59 // The experiment with auto-rollout enabled has failed. 60 Experiment_ROLLOUT_FAILED Experiment_State = 4 61) 62 63// Enum value maps for Experiment_State. 64var ( 65 Experiment_State_name = map[int32]string{ 66 0: "STATE_UNSPECIFIED", 67 1: "DRAFT", 68 2: "RUNNING", 69 3: "DONE", 70 4: "ROLLOUT_FAILED", 71 } 72 Experiment_State_value = map[string]int32{ 73 "STATE_UNSPECIFIED": 0, 74 "DRAFT": 1, 75 "RUNNING": 2, 76 "DONE": 3, 77 "ROLLOUT_FAILED": 4, 78 } 79) 80 81func (x Experiment_State) Enum() *Experiment_State { 82 p := new(Experiment_State) 83 *p = x 84 return p 85} 86 87func (x Experiment_State) String() string { 88 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 89} 90 91func (Experiment_State) Descriptor() protoreflect.EnumDescriptor { 92 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[0].Descriptor() 93} 94 95func (Experiment_State) Type() protoreflect.EnumType { 96 return &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[0] 97} 98 99func (x Experiment_State) Number() protoreflect.EnumNumber { 100 return protoreflect.EnumNumber(x) 101} 102 103// Deprecated: Use Experiment_State.Descriptor instead. 104func (Experiment_State) EnumDescriptor() ([]byte, []int) { 105 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 0} 106} 107 108// Types of ratio-based metric for Dialogflow experiment. 109type Experiment_Result_MetricType int32 110 111const ( 112 // Metric unspecified. 113 Experiment_Result_METRIC_UNSPECIFIED Experiment_Result_MetricType = 0 114 // Percentage of contained sessions without user calling back in 24 hours. 115 Experiment_Result_CONTAINED_SESSION_NO_CALLBACK_RATE Experiment_Result_MetricType = 1 116 // Percentage of sessions that were handed to a human agent. 117 Experiment_Result_LIVE_AGENT_HANDOFF_RATE Experiment_Result_MetricType = 2 118 // Percentage of sessions with the same user calling back. 119 Experiment_Result_CALLBACK_SESSION_RATE Experiment_Result_MetricType = 3 120 // Percentage of sessions where user hung up. 121 Experiment_Result_ABANDONED_SESSION_RATE Experiment_Result_MetricType = 4 122 // Percentage of sessions reached Dialogflow 'END_PAGE' or 123 // 'END_SESSION'. 124 Experiment_Result_SESSION_END_RATE Experiment_Result_MetricType = 5 125) 126 127// Enum value maps for Experiment_Result_MetricType. 128var ( 129 Experiment_Result_MetricType_name = map[int32]string{ 130 0: "METRIC_UNSPECIFIED", 131 1: "CONTAINED_SESSION_NO_CALLBACK_RATE", 132 2: "LIVE_AGENT_HANDOFF_RATE", 133 3: "CALLBACK_SESSION_RATE", 134 4: "ABANDONED_SESSION_RATE", 135 5: "SESSION_END_RATE", 136 } 137 Experiment_Result_MetricType_value = map[string]int32{ 138 "METRIC_UNSPECIFIED": 0, 139 "CONTAINED_SESSION_NO_CALLBACK_RATE": 1, 140 "LIVE_AGENT_HANDOFF_RATE": 2, 141 "CALLBACK_SESSION_RATE": 3, 142 "ABANDONED_SESSION_RATE": 4, 143 "SESSION_END_RATE": 5, 144 } 145) 146 147func (x Experiment_Result_MetricType) Enum() *Experiment_Result_MetricType { 148 p := new(Experiment_Result_MetricType) 149 *p = x 150 return p 151} 152 153func (x Experiment_Result_MetricType) String() string { 154 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 155} 156 157func (Experiment_Result_MetricType) Descriptor() protoreflect.EnumDescriptor { 158 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[1].Descriptor() 159} 160 161func (Experiment_Result_MetricType) Type() protoreflect.EnumType { 162 return &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[1] 163} 164 165func (x Experiment_Result_MetricType) Number() protoreflect.EnumNumber { 166 return protoreflect.EnumNumber(x) 167} 168 169// Deprecated: Use Experiment_Result_MetricType.Descriptor instead. 170func (Experiment_Result_MetricType) EnumDescriptor() ([]byte, []int) { 171 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1, 0} 172} 173 174// types of count-based metric for Dialogflow experiment. 175type Experiment_Result_CountType int32 176 177const ( 178 // Count type unspecified. 179 Experiment_Result_COUNT_TYPE_UNSPECIFIED Experiment_Result_CountType = 0 180 // Total number of occurrences of a 'NO_MATCH'. 181 Experiment_Result_TOTAL_NO_MATCH_COUNT Experiment_Result_CountType = 1 182 // Total number of turn counts. 183 Experiment_Result_TOTAL_TURN_COUNT Experiment_Result_CountType = 2 184 // Average turn count in a session. 185 Experiment_Result_AVERAGE_TURN_COUNT Experiment_Result_CountType = 3 186) 187 188// Enum value maps for Experiment_Result_CountType. 189var ( 190 Experiment_Result_CountType_name = map[int32]string{ 191 0: "COUNT_TYPE_UNSPECIFIED", 192 1: "TOTAL_NO_MATCH_COUNT", 193 2: "TOTAL_TURN_COUNT", 194 3: "AVERAGE_TURN_COUNT", 195 } 196 Experiment_Result_CountType_value = map[string]int32{ 197 "COUNT_TYPE_UNSPECIFIED": 0, 198 "TOTAL_NO_MATCH_COUNT": 1, 199 "TOTAL_TURN_COUNT": 2, 200 "AVERAGE_TURN_COUNT": 3, 201 } 202) 203 204func (x Experiment_Result_CountType) Enum() *Experiment_Result_CountType { 205 p := new(Experiment_Result_CountType) 206 *p = x 207 return p 208} 209 210func (x Experiment_Result_CountType) String() string { 211 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 212} 213 214func (Experiment_Result_CountType) Descriptor() protoreflect.EnumDescriptor { 215 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[2].Descriptor() 216} 217 218func (Experiment_Result_CountType) Type() protoreflect.EnumType { 219 return &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes[2] 220} 221 222func (x Experiment_Result_CountType) Number() protoreflect.EnumNumber { 223 return protoreflect.EnumNumber(x) 224} 225 226// Deprecated: Use Experiment_Result_CountType.Descriptor instead. 227func (Experiment_Result_CountType) EnumDescriptor() ([]byte, []int) { 228 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1, 1} 229} 230 231// Represents an experiment in an environment. 232type Experiment struct { 233 state protoimpl.MessageState 234 sizeCache protoimpl.SizeCache 235 unknownFields protoimpl.UnknownFields 236 237 // The name of the experiment. 238 // Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent 239 // ID>/environments/<Environment ID>/experiments/<Experiment ID>.. 240 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 241 // Required. The human-readable name of the experiment (unique in an environment). Limit 242 // of 64 characters. 243 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 244 // The human-readable description of the experiment. 245 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 246 // The current state of the experiment. 247 // Transition triggered by Experiments.StartExperiment: DRAFT->RUNNING. 248 // Transition triggered by Experiments.CancelExperiment: DRAFT->DONE or 249 // RUNNING->DONE. 250 State Experiment_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.dialogflow.cx.v3beta1.Experiment_State" json:"state,omitempty"` 251 // The definition of the experiment. 252 Definition *Experiment_Definition `protobuf:"bytes,5,opt,name=definition,proto3" json:"definition,omitempty"` 253 // The configuration for auto rollout. If set, there should be exactly two 254 // variants in the experiment (control variant being the default version of 255 // the flow), the traffic allocation for the non-control variant will 256 // gradually increase to 100% when conditions are met, and eventually 257 // replace the control variant to become the default version of the flow. 258 RolloutConfig *RolloutConfig `protobuf:"bytes,14,opt,name=rollout_config,json=rolloutConfig,proto3" json:"rollout_config,omitempty"` 259 // State of the auto rollout process. 260 RolloutState *RolloutState `protobuf:"bytes,15,opt,name=rollout_state,json=rolloutState,proto3" json:"rollout_state,omitempty"` 261 // The reason why rollout has failed. Should only be set when state is 262 // ROLLOUT_FAILED. 263 RolloutFailureReason string `protobuf:"bytes,16,opt,name=rollout_failure_reason,json=rolloutFailureReason,proto3" json:"rollout_failure_reason,omitempty"` 264 // Inference result of the experiment. 265 Result *Experiment_Result `protobuf:"bytes,6,opt,name=result,proto3" json:"result,omitempty"` 266 // Creation time of this experiment. 267 CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 268 // Start time of this experiment. 269 StartTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 270 // End time of this experiment. 271 EndTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 272 // Last update time of this experiment. 273 LastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` 274 // Maximum number of days to run the experiment. If auto-rollout is 275 // not enabled, default value and maximum will be 30 days. If auto-rollout is 276 // enabled, default value and maximum will be 6 days. 277 ExperimentLength *durationpb.Duration `protobuf:"bytes,11,opt,name=experiment_length,json=experimentLength,proto3" json:"experiment_length,omitempty"` 278 // The history of updates to the experiment variants. 279 VariantsHistory []*VariantsHistory `protobuf:"bytes,12,rep,name=variants_history,json=variantsHistory,proto3" json:"variants_history,omitempty"` 280} 281 282func (x *Experiment) Reset() { 283 *x = Experiment{} 284 if protoimpl.UnsafeEnabled { 285 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[0] 286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 287 ms.StoreMessageInfo(mi) 288 } 289} 290 291func (x *Experiment) String() string { 292 return protoimpl.X.MessageStringOf(x) 293} 294 295func (*Experiment) ProtoMessage() {} 296 297func (x *Experiment) ProtoReflect() protoreflect.Message { 298 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[0] 299 if protoimpl.UnsafeEnabled && x != nil { 300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 301 if ms.LoadMessageInfo() == nil { 302 ms.StoreMessageInfo(mi) 303 } 304 return ms 305 } 306 return mi.MessageOf(x) 307} 308 309// Deprecated: Use Experiment.ProtoReflect.Descriptor instead. 310func (*Experiment) Descriptor() ([]byte, []int) { 311 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0} 312} 313 314func (x *Experiment) GetName() string { 315 if x != nil { 316 return x.Name 317 } 318 return "" 319} 320 321func (x *Experiment) GetDisplayName() string { 322 if x != nil { 323 return x.DisplayName 324 } 325 return "" 326} 327 328func (x *Experiment) GetDescription() string { 329 if x != nil { 330 return x.Description 331 } 332 return "" 333} 334 335func (x *Experiment) GetState() Experiment_State { 336 if x != nil { 337 return x.State 338 } 339 return Experiment_STATE_UNSPECIFIED 340} 341 342func (x *Experiment) GetDefinition() *Experiment_Definition { 343 if x != nil { 344 return x.Definition 345 } 346 return nil 347} 348 349func (x *Experiment) GetRolloutConfig() *RolloutConfig { 350 if x != nil { 351 return x.RolloutConfig 352 } 353 return nil 354} 355 356func (x *Experiment) GetRolloutState() *RolloutState { 357 if x != nil { 358 return x.RolloutState 359 } 360 return nil 361} 362 363func (x *Experiment) GetRolloutFailureReason() string { 364 if x != nil { 365 return x.RolloutFailureReason 366 } 367 return "" 368} 369 370func (x *Experiment) GetResult() *Experiment_Result { 371 if x != nil { 372 return x.Result 373 } 374 return nil 375} 376 377func (x *Experiment) GetCreateTime() *timestamppb.Timestamp { 378 if x != nil { 379 return x.CreateTime 380 } 381 return nil 382} 383 384func (x *Experiment) GetStartTime() *timestamppb.Timestamp { 385 if x != nil { 386 return x.StartTime 387 } 388 return nil 389} 390 391func (x *Experiment) GetEndTime() *timestamppb.Timestamp { 392 if x != nil { 393 return x.EndTime 394 } 395 return nil 396} 397 398func (x *Experiment) GetLastUpdateTime() *timestamppb.Timestamp { 399 if x != nil { 400 return x.LastUpdateTime 401 } 402 return nil 403} 404 405func (x *Experiment) GetExperimentLength() *durationpb.Duration { 406 if x != nil { 407 return x.ExperimentLength 408 } 409 return nil 410} 411 412func (x *Experiment) GetVariantsHistory() []*VariantsHistory { 413 if x != nil { 414 return x.VariantsHistory 415 } 416 return nil 417} 418 419// A list of flow version variants. 420type VersionVariants struct { 421 state protoimpl.MessageState 422 sizeCache protoimpl.SizeCache 423 unknownFields protoimpl.UnknownFields 424 425 // A list of flow version variants. 426 Variants []*VersionVariants_Variant `protobuf:"bytes,1,rep,name=variants,proto3" json:"variants,omitempty"` 427} 428 429func (x *VersionVariants) Reset() { 430 *x = VersionVariants{} 431 if protoimpl.UnsafeEnabled { 432 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[1] 433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 434 ms.StoreMessageInfo(mi) 435 } 436} 437 438func (x *VersionVariants) String() string { 439 return protoimpl.X.MessageStringOf(x) 440} 441 442func (*VersionVariants) ProtoMessage() {} 443 444func (x *VersionVariants) ProtoReflect() protoreflect.Message { 445 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[1] 446 if protoimpl.UnsafeEnabled && x != nil { 447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 448 if ms.LoadMessageInfo() == nil { 449 ms.StoreMessageInfo(mi) 450 } 451 return ms 452 } 453 return mi.MessageOf(x) 454} 455 456// Deprecated: Use VersionVariants.ProtoReflect.Descriptor instead. 457func (*VersionVariants) Descriptor() ([]byte, []int) { 458 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{1} 459} 460 461func (x *VersionVariants) GetVariants() []*VersionVariants_Variant { 462 if x != nil { 463 return x.Variants 464 } 465 return nil 466} 467 468// The configuration for auto rollout. 469type RolloutConfig struct { 470 state protoimpl.MessageState 471 sizeCache protoimpl.SizeCache 472 unknownFields protoimpl.UnknownFields 473 474 // Steps to roll out a flow version. Steps should be sorted by percentage in 475 // ascending order. 476 RolloutSteps []*RolloutConfig_RolloutStep `protobuf:"bytes,1,rep,name=rollout_steps,json=rolloutSteps,proto3" json:"rollout_steps,omitempty"` 477 // The conditions that are used to evaluate the success of a rollout 478 // step. If not specified, all rollout steps will proceed to the next one 479 // unless failure conditions are met. E.g. "containment_rate > 60% AND 480 // callback_rate < 20%". See the [conditions 481 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 482 RolloutCondition string `protobuf:"bytes,2,opt,name=rollout_condition,json=rolloutCondition,proto3" json:"rollout_condition,omitempty"` 483 // The conditions that are used to evaluate the failure of a rollout 484 // step. If not specified, no rollout steps will fail. E.g. "containment_rate 485 // < 10% OR average_turn_count < 3". See the [conditions 486 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 487 FailureCondition string `protobuf:"bytes,3,opt,name=failure_condition,json=failureCondition,proto3" json:"failure_condition,omitempty"` 488} 489 490func (x *RolloutConfig) Reset() { 491 *x = RolloutConfig{} 492 if protoimpl.UnsafeEnabled { 493 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[2] 494 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 495 ms.StoreMessageInfo(mi) 496 } 497} 498 499func (x *RolloutConfig) String() string { 500 return protoimpl.X.MessageStringOf(x) 501} 502 503func (*RolloutConfig) ProtoMessage() {} 504 505func (x *RolloutConfig) ProtoReflect() protoreflect.Message { 506 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[2] 507 if protoimpl.UnsafeEnabled && x != nil { 508 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 509 if ms.LoadMessageInfo() == nil { 510 ms.StoreMessageInfo(mi) 511 } 512 return ms 513 } 514 return mi.MessageOf(x) 515} 516 517// Deprecated: Use RolloutConfig.ProtoReflect.Descriptor instead. 518func (*RolloutConfig) Descriptor() ([]byte, []int) { 519 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{2} 520} 521 522func (x *RolloutConfig) GetRolloutSteps() []*RolloutConfig_RolloutStep { 523 if x != nil { 524 return x.RolloutSteps 525 } 526 return nil 527} 528 529func (x *RolloutConfig) GetRolloutCondition() string { 530 if x != nil { 531 return x.RolloutCondition 532 } 533 return "" 534} 535 536func (x *RolloutConfig) GetFailureCondition() string { 537 if x != nil { 538 return x.FailureCondition 539 } 540 return "" 541} 542 543// State of the auto-rollout process. 544type RolloutState struct { 545 state protoimpl.MessageState 546 sizeCache protoimpl.SizeCache 547 unknownFields protoimpl.UnknownFields 548 549 // Display name of the current auto rollout step. 550 Step string `protobuf:"bytes,1,opt,name=step,proto3" json:"step,omitempty"` 551 // Index of the current step in the auto rollout steps list. 552 StepIndex int32 `protobuf:"varint,3,opt,name=step_index,json=stepIndex,proto3" json:"step_index,omitempty"` 553 // Start time of the current step. 554 StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 555} 556 557func (x *RolloutState) Reset() { 558 *x = RolloutState{} 559 if protoimpl.UnsafeEnabled { 560 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[3] 561 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 562 ms.StoreMessageInfo(mi) 563 } 564} 565 566func (x *RolloutState) String() string { 567 return protoimpl.X.MessageStringOf(x) 568} 569 570func (*RolloutState) ProtoMessage() {} 571 572func (x *RolloutState) ProtoReflect() protoreflect.Message { 573 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[3] 574 if protoimpl.UnsafeEnabled && x != nil { 575 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 576 if ms.LoadMessageInfo() == nil { 577 ms.StoreMessageInfo(mi) 578 } 579 return ms 580 } 581 return mi.MessageOf(x) 582} 583 584// Deprecated: Use RolloutState.ProtoReflect.Descriptor instead. 585func (*RolloutState) Descriptor() ([]byte, []int) { 586 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{3} 587} 588 589func (x *RolloutState) GetStep() string { 590 if x != nil { 591 return x.Step 592 } 593 return "" 594} 595 596func (x *RolloutState) GetStepIndex() int32 { 597 if x != nil { 598 return x.StepIndex 599 } 600 return 0 601} 602 603func (x *RolloutState) GetStartTime() *timestamppb.Timestamp { 604 if x != nil { 605 return x.StartTime 606 } 607 return nil 608} 609 610// The history of variants update. 611type VariantsHistory struct { 612 state protoimpl.MessageState 613 sizeCache protoimpl.SizeCache 614 unknownFields protoimpl.UnknownFields 615 616 // The variants updated. We currently only support single variant 617 // experiment. 618 // 619 // Types that are assignable to Variants: 620 // *VariantsHistory_VersionVariants 621 Variants isVariantsHistory_Variants `protobuf_oneof:"variants"` 622 // Update time of the variants. 623 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 624} 625 626func (x *VariantsHistory) Reset() { 627 *x = VariantsHistory{} 628 if protoimpl.UnsafeEnabled { 629 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[4] 630 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 631 ms.StoreMessageInfo(mi) 632 } 633} 634 635func (x *VariantsHistory) String() string { 636 return protoimpl.X.MessageStringOf(x) 637} 638 639func (*VariantsHistory) ProtoMessage() {} 640 641func (x *VariantsHistory) ProtoReflect() protoreflect.Message { 642 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[4] 643 if protoimpl.UnsafeEnabled && x != nil { 644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 645 if ms.LoadMessageInfo() == nil { 646 ms.StoreMessageInfo(mi) 647 } 648 return ms 649 } 650 return mi.MessageOf(x) 651} 652 653// Deprecated: Use VariantsHistory.ProtoReflect.Descriptor instead. 654func (*VariantsHistory) Descriptor() ([]byte, []int) { 655 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{4} 656} 657 658func (m *VariantsHistory) GetVariants() isVariantsHistory_Variants { 659 if m != nil { 660 return m.Variants 661 } 662 return nil 663} 664 665func (x *VariantsHistory) GetVersionVariants() *VersionVariants { 666 if x, ok := x.GetVariants().(*VariantsHistory_VersionVariants); ok { 667 return x.VersionVariants 668 } 669 return nil 670} 671 672func (x *VariantsHistory) GetUpdateTime() *timestamppb.Timestamp { 673 if x != nil { 674 return x.UpdateTime 675 } 676 return nil 677} 678 679type isVariantsHistory_Variants interface { 680 isVariantsHistory_Variants() 681} 682 683type VariantsHistory_VersionVariants struct { 684 // The flow versions as the variants. 685 VersionVariants *VersionVariants `protobuf:"bytes,1,opt,name=version_variants,json=versionVariants,proto3,oneof"` 686} 687 688func (*VariantsHistory_VersionVariants) isVariantsHistory_Variants() {} 689 690// The request message for [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments]. 691type ListExperimentsRequest struct { 692 state protoimpl.MessageState 693 sizeCache protoimpl.SizeCache 694 unknownFields protoimpl.UnknownFields 695 696 // Required. The [Environment][google.cloud.dialogflow.cx.v3beta1.Environment] to list all environments for. 697 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 698 // ID>/environments/<Environment ID>`. 699 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 700 // The maximum number of items to return in a single page. By default 20 and 701 // at most 100. 702 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 703 // The next_page_token value returned from a previous list request. 704 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 705} 706 707func (x *ListExperimentsRequest) Reset() { 708 *x = ListExperimentsRequest{} 709 if protoimpl.UnsafeEnabled { 710 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[5] 711 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 712 ms.StoreMessageInfo(mi) 713 } 714} 715 716func (x *ListExperimentsRequest) String() string { 717 return protoimpl.X.MessageStringOf(x) 718} 719 720func (*ListExperimentsRequest) ProtoMessage() {} 721 722func (x *ListExperimentsRequest) ProtoReflect() protoreflect.Message { 723 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[5] 724 if protoimpl.UnsafeEnabled && x != nil { 725 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 726 if ms.LoadMessageInfo() == nil { 727 ms.StoreMessageInfo(mi) 728 } 729 return ms 730 } 731 return mi.MessageOf(x) 732} 733 734// Deprecated: Use ListExperimentsRequest.ProtoReflect.Descriptor instead. 735func (*ListExperimentsRequest) Descriptor() ([]byte, []int) { 736 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{5} 737} 738 739func (x *ListExperimentsRequest) GetParent() string { 740 if x != nil { 741 return x.Parent 742 } 743 return "" 744} 745 746func (x *ListExperimentsRequest) GetPageSize() int32 { 747 if x != nil { 748 return x.PageSize 749 } 750 return 0 751} 752 753func (x *ListExperimentsRequest) GetPageToken() string { 754 if x != nil { 755 return x.PageToken 756 } 757 return "" 758} 759 760// The response message for [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments]. 761type ListExperimentsResponse struct { 762 state protoimpl.MessageState 763 sizeCache protoimpl.SizeCache 764 unknownFields protoimpl.UnknownFields 765 766 // The list of experiments. There will be a maximum number of items 767 // returned based on the page_size field in the request. The list may in some 768 // cases be empty or contain fewer entries than page_size even if this isn't 769 // the last page. 770 Experiments []*Experiment `protobuf:"bytes,1,rep,name=experiments,proto3" json:"experiments,omitempty"` 771 // Token to retrieve the next page of results, or empty if there are no more 772 // results in the list. 773 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 774} 775 776func (x *ListExperimentsResponse) Reset() { 777 *x = ListExperimentsResponse{} 778 if protoimpl.UnsafeEnabled { 779 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[6] 780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 781 ms.StoreMessageInfo(mi) 782 } 783} 784 785func (x *ListExperimentsResponse) String() string { 786 return protoimpl.X.MessageStringOf(x) 787} 788 789func (*ListExperimentsResponse) ProtoMessage() {} 790 791func (x *ListExperimentsResponse) ProtoReflect() protoreflect.Message { 792 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[6] 793 if protoimpl.UnsafeEnabled && x != nil { 794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 795 if ms.LoadMessageInfo() == nil { 796 ms.StoreMessageInfo(mi) 797 } 798 return ms 799 } 800 return mi.MessageOf(x) 801} 802 803// Deprecated: Use ListExperimentsResponse.ProtoReflect.Descriptor instead. 804func (*ListExperimentsResponse) Descriptor() ([]byte, []int) { 805 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{6} 806} 807 808func (x *ListExperimentsResponse) GetExperiments() []*Experiment { 809 if x != nil { 810 return x.Experiments 811 } 812 return nil 813} 814 815func (x *ListExperimentsResponse) GetNextPageToken() string { 816 if x != nil { 817 return x.NextPageToken 818 } 819 return "" 820} 821 822// The request message for [Experiments.GetExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.GetExperiment]. 823type GetExperimentRequest struct { 824 state protoimpl.MessageState 825 sizeCache protoimpl.SizeCache 826 unknownFields protoimpl.UnknownFields 827 828 // Required. The name of the [Environment][google.cloud.dialogflow.cx.v3beta1.Environment]. 829 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 830 // ID>/environments/<Environment ID>/experiments/<Experiment ID>`. 831 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 832} 833 834func (x *GetExperimentRequest) Reset() { 835 *x = GetExperimentRequest{} 836 if protoimpl.UnsafeEnabled { 837 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[7] 838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 839 ms.StoreMessageInfo(mi) 840 } 841} 842 843func (x *GetExperimentRequest) String() string { 844 return protoimpl.X.MessageStringOf(x) 845} 846 847func (*GetExperimentRequest) ProtoMessage() {} 848 849func (x *GetExperimentRequest) ProtoReflect() protoreflect.Message { 850 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[7] 851 if protoimpl.UnsafeEnabled && x != nil { 852 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 853 if ms.LoadMessageInfo() == nil { 854 ms.StoreMessageInfo(mi) 855 } 856 return ms 857 } 858 return mi.MessageOf(x) 859} 860 861// Deprecated: Use GetExperimentRequest.ProtoReflect.Descriptor instead. 862func (*GetExperimentRequest) Descriptor() ([]byte, []int) { 863 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{7} 864} 865 866func (x *GetExperimentRequest) GetName() string { 867 if x != nil { 868 return x.Name 869 } 870 return "" 871} 872 873// The request message for [Experiments.CreateExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.CreateExperiment]. 874type CreateExperimentRequest struct { 875 state protoimpl.MessageState 876 sizeCache protoimpl.SizeCache 877 unknownFields protoimpl.UnknownFields 878 879 // Required. The [Agent][google.cloud.dialogflow.cx.v3beta1.Agent] to create an [Environment][google.cloud.dialogflow.cx.v3beta1.Environment] for. 880 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 881 // ID>/environments/<Environment ID>`. 882 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 883 // Required. The experiment to create. 884 Experiment *Experiment `protobuf:"bytes,2,opt,name=experiment,proto3" json:"experiment,omitempty"` 885} 886 887func (x *CreateExperimentRequest) Reset() { 888 *x = CreateExperimentRequest{} 889 if protoimpl.UnsafeEnabled { 890 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[8] 891 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 892 ms.StoreMessageInfo(mi) 893 } 894} 895 896func (x *CreateExperimentRequest) String() string { 897 return protoimpl.X.MessageStringOf(x) 898} 899 900func (*CreateExperimentRequest) ProtoMessage() {} 901 902func (x *CreateExperimentRequest) ProtoReflect() protoreflect.Message { 903 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[8] 904 if protoimpl.UnsafeEnabled && x != nil { 905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 906 if ms.LoadMessageInfo() == nil { 907 ms.StoreMessageInfo(mi) 908 } 909 return ms 910 } 911 return mi.MessageOf(x) 912} 913 914// Deprecated: Use CreateExperimentRequest.ProtoReflect.Descriptor instead. 915func (*CreateExperimentRequest) Descriptor() ([]byte, []int) { 916 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{8} 917} 918 919func (x *CreateExperimentRequest) GetParent() string { 920 if x != nil { 921 return x.Parent 922 } 923 return "" 924} 925 926func (x *CreateExperimentRequest) GetExperiment() *Experiment { 927 if x != nil { 928 return x.Experiment 929 } 930 return nil 931} 932 933// The request message for [Experiments.UpdateExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.UpdateExperiment]. 934type UpdateExperimentRequest struct { 935 state protoimpl.MessageState 936 sizeCache protoimpl.SizeCache 937 unknownFields protoimpl.UnknownFields 938 939 // Required. The experiment to update. 940 Experiment *Experiment `protobuf:"bytes,1,opt,name=experiment,proto3" json:"experiment,omitempty"` 941 // Required. The mask to control which fields get updated. 942 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 943} 944 945func (x *UpdateExperimentRequest) Reset() { 946 *x = UpdateExperimentRequest{} 947 if protoimpl.UnsafeEnabled { 948 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[9] 949 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 950 ms.StoreMessageInfo(mi) 951 } 952} 953 954func (x *UpdateExperimentRequest) String() string { 955 return protoimpl.X.MessageStringOf(x) 956} 957 958func (*UpdateExperimentRequest) ProtoMessage() {} 959 960func (x *UpdateExperimentRequest) ProtoReflect() protoreflect.Message { 961 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[9] 962 if protoimpl.UnsafeEnabled && x != nil { 963 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 964 if ms.LoadMessageInfo() == nil { 965 ms.StoreMessageInfo(mi) 966 } 967 return ms 968 } 969 return mi.MessageOf(x) 970} 971 972// Deprecated: Use UpdateExperimentRequest.ProtoReflect.Descriptor instead. 973func (*UpdateExperimentRequest) Descriptor() ([]byte, []int) { 974 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{9} 975} 976 977func (x *UpdateExperimentRequest) GetExperiment() *Experiment { 978 if x != nil { 979 return x.Experiment 980 } 981 return nil 982} 983 984func (x *UpdateExperimentRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 985 if x != nil { 986 return x.UpdateMask 987 } 988 return nil 989} 990 991// The request message for [Experiments.DeleteExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.DeleteExperiment]. 992type DeleteExperimentRequest struct { 993 state protoimpl.MessageState 994 sizeCache protoimpl.SizeCache 995 unknownFields protoimpl.UnknownFields 996 997 // Required. The name of the [Environment][google.cloud.dialogflow.cx.v3beta1.Environment] to delete. 998 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 999 // ID>/environments/<Environment ID>/experiments/<Experiment ID>`. 1000 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1001} 1002 1003func (x *DeleteExperimentRequest) Reset() { 1004 *x = DeleteExperimentRequest{} 1005 if protoimpl.UnsafeEnabled { 1006 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[10] 1007 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1008 ms.StoreMessageInfo(mi) 1009 } 1010} 1011 1012func (x *DeleteExperimentRequest) String() string { 1013 return protoimpl.X.MessageStringOf(x) 1014} 1015 1016func (*DeleteExperimentRequest) ProtoMessage() {} 1017 1018func (x *DeleteExperimentRequest) ProtoReflect() protoreflect.Message { 1019 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[10] 1020 if protoimpl.UnsafeEnabled && x != nil { 1021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1022 if ms.LoadMessageInfo() == nil { 1023 ms.StoreMessageInfo(mi) 1024 } 1025 return ms 1026 } 1027 return mi.MessageOf(x) 1028} 1029 1030// Deprecated: Use DeleteExperimentRequest.ProtoReflect.Descriptor instead. 1031func (*DeleteExperimentRequest) Descriptor() ([]byte, []int) { 1032 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{10} 1033} 1034 1035func (x *DeleteExperimentRequest) GetName() string { 1036 if x != nil { 1037 return x.Name 1038 } 1039 return "" 1040} 1041 1042// The request message for [Experiments.StartExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.StartExperiment]. 1043type StartExperimentRequest struct { 1044 state protoimpl.MessageState 1045 sizeCache protoimpl.SizeCache 1046 unknownFields protoimpl.UnknownFields 1047 1048 // Required. Resource name of the experiment to start. 1049 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1050 // ID>/environments/<Environment ID>/experiments/<Experiment ID>`. 1051 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1052} 1053 1054func (x *StartExperimentRequest) Reset() { 1055 *x = StartExperimentRequest{} 1056 if protoimpl.UnsafeEnabled { 1057 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[11] 1058 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1059 ms.StoreMessageInfo(mi) 1060 } 1061} 1062 1063func (x *StartExperimentRequest) String() string { 1064 return protoimpl.X.MessageStringOf(x) 1065} 1066 1067func (*StartExperimentRequest) ProtoMessage() {} 1068 1069func (x *StartExperimentRequest) ProtoReflect() protoreflect.Message { 1070 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[11] 1071 if protoimpl.UnsafeEnabled && x != nil { 1072 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1073 if ms.LoadMessageInfo() == nil { 1074 ms.StoreMessageInfo(mi) 1075 } 1076 return ms 1077 } 1078 return mi.MessageOf(x) 1079} 1080 1081// Deprecated: Use StartExperimentRequest.ProtoReflect.Descriptor instead. 1082func (*StartExperimentRequest) Descriptor() ([]byte, []int) { 1083 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{11} 1084} 1085 1086func (x *StartExperimentRequest) GetName() string { 1087 if x != nil { 1088 return x.Name 1089 } 1090 return "" 1091} 1092 1093// The request message for [Experiments.StopExperiment][google.cloud.dialogflow.cx.v3beta1.Experiments.StopExperiment]. 1094type StopExperimentRequest struct { 1095 state protoimpl.MessageState 1096 sizeCache protoimpl.SizeCache 1097 unknownFields protoimpl.UnknownFields 1098 1099 // Required. Resource name of the experiment to stop. 1100 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1101 // ID>/environments/<Environment ID>/experiments/<Experiment ID>`. 1102 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1103} 1104 1105func (x *StopExperimentRequest) Reset() { 1106 *x = StopExperimentRequest{} 1107 if protoimpl.UnsafeEnabled { 1108 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[12] 1109 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1110 ms.StoreMessageInfo(mi) 1111 } 1112} 1113 1114func (x *StopExperimentRequest) String() string { 1115 return protoimpl.X.MessageStringOf(x) 1116} 1117 1118func (*StopExperimentRequest) ProtoMessage() {} 1119 1120func (x *StopExperimentRequest) ProtoReflect() protoreflect.Message { 1121 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[12] 1122 if protoimpl.UnsafeEnabled && x != nil { 1123 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1124 if ms.LoadMessageInfo() == nil { 1125 ms.StoreMessageInfo(mi) 1126 } 1127 return ms 1128 } 1129 return mi.MessageOf(x) 1130} 1131 1132// Deprecated: Use StopExperimentRequest.ProtoReflect.Descriptor instead. 1133func (*StopExperimentRequest) Descriptor() ([]byte, []int) { 1134 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{12} 1135} 1136 1137func (x *StopExperimentRequest) GetName() string { 1138 if x != nil { 1139 return x.Name 1140 } 1141 return "" 1142} 1143 1144// Definition of the experiment. 1145type Experiment_Definition struct { 1146 state protoimpl.MessageState 1147 sizeCache protoimpl.SizeCache 1148 unknownFields protoimpl.UnknownFields 1149 1150 // The condition defines which subset of sessions are selected for 1151 // this experiment. If not specified, all sessions are eligible. E.g. 1152 // "query_input.language_code=en" See the [conditions 1153 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 1154 Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"` 1155 // The variants of the experiment. We currently only support single variant 1156 // experiment. 1157 // 1158 // Types that are assignable to Variants: 1159 // *Experiment_Definition_VersionVariants 1160 Variants isExperiment_Definition_Variants `protobuf_oneof:"variants"` 1161} 1162 1163func (x *Experiment_Definition) Reset() { 1164 *x = Experiment_Definition{} 1165 if protoimpl.UnsafeEnabled { 1166 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[13] 1167 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1168 ms.StoreMessageInfo(mi) 1169 } 1170} 1171 1172func (x *Experiment_Definition) String() string { 1173 return protoimpl.X.MessageStringOf(x) 1174} 1175 1176func (*Experiment_Definition) ProtoMessage() {} 1177 1178func (x *Experiment_Definition) ProtoReflect() protoreflect.Message { 1179 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[13] 1180 if protoimpl.UnsafeEnabled && x != nil { 1181 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1182 if ms.LoadMessageInfo() == nil { 1183 ms.StoreMessageInfo(mi) 1184 } 1185 return ms 1186 } 1187 return mi.MessageOf(x) 1188} 1189 1190// Deprecated: Use Experiment_Definition.ProtoReflect.Descriptor instead. 1191func (*Experiment_Definition) Descriptor() ([]byte, []int) { 1192 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 0} 1193} 1194 1195func (x *Experiment_Definition) GetCondition() string { 1196 if x != nil { 1197 return x.Condition 1198 } 1199 return "" 1200} 1201 1202func (m *Experiment_Definition) GetVariants() isExperiment_Definition_Variants { 1203 if m != nil { 1204 return m.Variants 1205 } 1206 return nil 1207} 1208 1209func (x *Experiment_Definition) GetVersionVariants() *VersionVariants { 1210 if x, ok := x.GetVariants().(*Experiment_Definition_VersionVariants); ok { 1211 return x.VersionVariants 1212 } 1213 return nil 1214} 1215 1216type isExperiment_Definition_Variants interface { 1217 isExperiment_Definition_Variants() 1218} 1219 1220type Experiment_Definition_VersionVariants struct { 1221 // The flow versions as the variants of this experiment. 1222 VersionVariants *VersionVariants `protobuf:"bytes,2,opt,name=version_variants,json=versionVariants,proto3,oneof"` 1223} 1224 1225func (*Experiment_Definition_VersionVariants) isExperiment_Definition_Variants() {} 1226 1227// The inference result which includes an objective metric to optimize and the 1228// confidence interval. 1229type Experiment_Result struct { 1230 state protoimpl.MessageState 1231 sizeCache protoimpl.SizeCache 1232 unknownFields protoimpl.UnknownFields 1233 1234 // Version variants and metrics. 1235 VersionMetrics []*Experiment_Result_VersionMetrics `protobuf:"bytes,1,rep,name=version_metrics,json=versionMetrics,proto3" json:"version_metrics,omitempty"` 1236 // The last time the experiment's stats data was updated. Will have default 1237 // value if stats have never been computed for this experiment. 1238 LastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` 1239} 1240 1241func (x *Experiment_Result) Reset() { 1242 *x = Experiment_Result{} 1243 if protoimpl.UnsafeEnabled { 1244 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[14] 1245 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1246 ms.StoreMessageInfo(mi) 1247 } 1248} 1249 1250func (x *Experiment_Result) String() string { 1251 return protoimpl.X.MessageStringOf(x) 1252} 1253 1254func (*Experiment_Result) ProtoMessage() {} 1255 1256func (x *Experiment_Result) ProtoReflect() protoreflect.Message { 1257 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[14] 1258 if protoimpl.UnsafeEnabled && x != nil { 1259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1260 if ms.LoadMessageInfo() == nil { 1261 ms.StoreMessageInfo(mi) 1262 } 1263 return ms 1264 } 1265 return mi.MessageOf(x) 1266} 1267 1268// Deprecated: Use Experiment_Result.ProtoReflect.Descriptor instead. 1269func (*Experiment_Result) Descriptor() ([]byte, []int) { 1270 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1} 1271} 1272 1273func (x *Experiment_Result) GetVersionMetrics() []*Experiment_Result_VersionMetrics { 1274 if x != nil { 1275 return x.VersionMetrics 1276 } 1277 return nil 1278} 1279 1280func (x *Experiment_Result) GetLastUpdateTime() *timestamppb.Timestamp { 1281 if x != nil { 1282 return x.LastUpdateTime 1283 } 1284 return nil 1285} 1286 1287// A confidence interval is a range of possible values for the experiment 1288// objective you are trying to measure. 1289type Experiment_Result_ConfidenceInterval struct { 1290 state protoimpl.MessageState 1291 sizeCache protoimpl.SizeCache 1292 unknownFields protoimpl.UnknownFields 1293 1294 // The confidence level used to construct the interval, i.e. there is X% 1295 // chance that the true value is within this interval. 1296 ConfidenceLevel float64 `protobuf:"fixed64,1,opt,name=confidence_level,json=confidenceLevel,proto3" json:"confidence_level,omitempty"` 1297 // The percent change between an experiment metric's value and the value 1298 // for its control. 1299 Ratio float64 `protobuf:"fixed64,2,opt,name=ratio,proto3" json:"ratio,omitempty"` 1300 // Lower bound of the interval. 1301 LowerBound float64 `protobuf:"fixed64,3,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` 1302 // Upper bound of the interval. 1303 UpperBound float64 `protobuf:"fixed64,4,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` 1304} 1305 1306func (x *Experiment_Result_ConfidenceInterval) Reset() { 1307 *x = Experiment_Result_ConfidenceInterval{} 1308 if protoimpl.UnsafeEnabled { 1309 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[15] 1310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1311 ms.StoreMessageInfo(mi) 1312 } 1313} 1314 1315func (x *Experiment_Result_ConfidenceInterval) String() string { 1316 return protoimpl.X.MessageStringOf(x) 1317} 1318 1319func (*Experiment_Result_ConfidenceInterval) ProtoMessage() {} 1320 1321func (x *Experiment_Result_ConfidenceInterval) ProtoReflect() protoreflect.Message { 1322 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[15] 1323 if protoimpl.UnsafeEnabled && x != nil { 1324 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1325 if ms.LoadMessageInfo() == nil { 1326 ms.StoreMessageInfo(mi) 1327 } 1328 return ms 1329 } 1330 return mi.MessageOf(x) 1331} 1332 1333// Deprecated: Use Experiment_Result_ConfidenceInterval.ProtoReflect.Descriptor instead. 1334func (*Experiment_Result_ConfidenceInterval) Descriptor() ([]byte, []int) { 1335 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1, 0} 1336} 1337 1338func (x *Experiment_Result_ConfidenceInterval) GetConfidenceLevel() float64 { 1339 if x != nil { 1340 return x.ConfidenceLevel 1341 } 1342 return 0 1343} 1344 1345func (x *Experiment_Result_ConfidenceInterval) GetRatio() float64 { 1346 if x != nil { 1347 return x.Ratio 1348 } 1349 return 0 1350} 1351 1352func (x *Experiment_Result_ConfidenceInterval) GetLowerBound() float64 { 1353 if x != nil { 1354 return x.LowerBound 1355 } 1356 return 0 1357} 1358 1359func (x *Experiment_Result_ConfidenceInterval) GetUpperBound() float64 { 1360 if x != nil { 1361 return x.UpperBound 1362 } 1363 return 0 1364} 1365 1366// Metric and corresponding confidence intervals. 1367type Experiment_Result_Metric struct { 1368 state protoimpl.MessageState 1369 sizeCache protoimpl.SizeCache 1370 unknownFields protoimpl.UnknownFields 1371 1372 // Ratio-based metric type. Only one of type or count_type is specified in 1373 // each Metric. 1374 Type Experiment_Result_MetricType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.dialogflow.cx.v3beta1.Experiment_Result_MetricType" json:"type,omitempty"` 1375 // Count-based metric type. Only one of type or count_type is specified in 1376 // each Metric. 1377 CountType Experiment_Result_CountType `protobuf:"varint,5,opt,name=count_type,json=countType,proto3,enum=google.cloud.dialogflow.cx.v3beta1.Experiment_Result_CountType" json:"count_type,omitempty"` 1378 // The actual value of the metric. 1379 // 1380 // Types that are assignable to Value: 1381 // *Experiment_Result_Metric_Ratio 1382 // *Experiment_Result_Metric_Count 1383 Value isExperiment_Result_Metric_Value `protobuf_oneof:"value"` 1384 // The probability that the treatment is better than all other treatments 1385 // in the experiment 1386 ConfidenceInterval *Experiment_Result_ConfidenceInterval `protobuf:"bytes,3,opt,name=confidence_interval,json=confidenceInterval,proto3" json:"confidence_interval,omitempty"` 1387} 1388 1389func (x *Experiment_Result_Metric) Reset() { 1390 *x = Experiment_Result_Metric{} 1391 if protoimpl.UnsafeEnabled { 1392 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[16] 1393 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1394 ms.StoreMessageInfo(mi) 1395 } 1396} 1397 1398func (x *Experiment_Result_Metric) String() string { 1399 return protoimpl.X.MessageStringOf(x) 1400} 1401 1402func (*Experiment_Result_Metric) ProtoMessage() {} 1403 1404func (x *Experiment_Result_Metric) ProtoReflect() protoreflect.Message { 1405 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[16] 1406 if protoimpl.UnsafeEnabled && x != nil { 1407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1408 if ms.LoadMessageInfo() == nil { 1409 ms.StoreMessageInfo(mi) 1410 } 1411 return ms 1412 } 1413 return mi.MessageOf(x) 1414} 1415 1416// Deprecated: Use Experiment_Result_Metric.ProtoReflect.Descriptor instead. 1417func (*Experiment_Result_Metric) Descriptor() ([]byte, []int) { 1418 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1, 1} 1419} 1420 1421func (x *Experiment_Result_Metric) GetType() Experiment_Result_MetricType { 1422 if x != nil { 1423 return x.Type 1424 } 1425 return Experiment_Result_METRIC_UNSPECIFIED 1426} 1427 1428func (x *Experiment_Result_Metric) GetCountType() Experiment_Result_CountType { 1429 if x != nil { 1430 return x.CountType 1431 } 1432 return Experiment_Result_COUNT_TYPE_UNSPECIFIED 1433} 1434 1435func (m *Experiment_Result_Metric) GetValue() isExperiment_Result_Metric_Value { 1436 if m != nil { 1437 return m.Value 1438 } 1439 return nil 1440} 1441 1442func (x *Experiment_Result_Metric) GetRatio() float64 { 1443 if x, ok := x.GetValue().(*Experiment_Result_Metric_Ratio); ok { 1444 return x.Ratio 1445 } 1446 return 0 1447} 1448 1449func (x *Experiment_Result_Metric) GetCount() float64 { 1450 if x, ok := x.GetValue().(*Experiment_Result_Metric_Count); ok { 1451 return x.Count 1452 } 1453 return 0 1454} 1455 1456func (x *Experiment_Result_Metric) GetConfidenceInterval() *Experiment_Result_ConfidenceInterval { 1457 if x != nil { 1458 return x.ConfidenceInterval 1459 } 1460 return nil 1461} 1462 1463type isExperiment_Result_Metric_Value interface { 1464 isExperiment_Result_Metric_Value() 1465} 1466 1467type Experiment_Result_Metric_Ratio struct { 1468 // Ratio value of a metric. 1469 Ratio float64 `protobuf:"fixed64,2,opt,name=ratio,proto3,oneof"` 1470} 1471 1472type Experiment_Result_Metric_Count struct { 1473 // Count value of a metric. 1474 Count float64 `protobuf:"fixed64,4,opt,name=count,proto3,oneof"` 1475} 1476 1477func (*Experiment_Result_Metric_Ratio) isExperiment_Result_Metric_Value() {} 1478 1479func (*Experiment_Result_Metric_Count) isExperiment_Result_Metric_Value() {} 1480 1481// Version variant and associated metrics. 1482type Experiment_Result_VersionMetrics struct { 1483 state protoimpl.MessageState 1484 sizeCache protoimpl.SizeCache 1485 unknownFields protoimpl.UnknownFields 1486 1487 // The name of the flow [Version][google.cloud.dialogflow.cx.v3beta1.Version]. 1488 // Format: `projects/<Project ID>/locations/<Location 1489 // ID>/agents/<Agent ID>/flows/<Flow ID>/versions/<Version ID>`. 1490 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` 1491 // The metrics and corresponding confidence intervals in the inference 1492 // result. 1493 Metrics []*Experiment_Result_Metric `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"` 1494 // Number of sessions that were allocated to this version. 1495 SessionCount int32 `protobuf:"varint,3,opt,name=session_count,json=sessionCount,proto3" json:"session_count,omitempty"` 1496} 1497 1498func (x *Experiment_Result_VersionMetrics) Reset() { 1499 *x = Experiment_Result_VersionMetrics{} 1500 if protoimpl.UnsafeEnabled { 1501 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[17] 1502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1503 ms.StoreMessageInfo(mi) 1504 } 1505} 1506 1507func (x *Experiment_Result_VersionMetrics) String() string { 1508 return protoimpl.X.MessageStringOf(x) 1509} 1510 1511func (*Experiment_Result_VersionMetrics) ProtoMessage() {} 1512 1513func (x *Experiment_Result_VersionMetrics) ProtoReflect() protoreflect.Message { 1514 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[17] 1515 if protoimpl.UnsafeEnabled && x != nil { 1516 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1517 if ms.LoadMessageInfo() == nil { 1518 ms.StoreMessageInfo(mi) 1519 } 1520 return ms 1521 } 1522 return mi.MessageOf(x) 1523} 1524 1525// Deprecated: Use Experiment_Result_VersionMetrics.ProtoReflect.Descriptor instead. 1526func (*Experiment_Result_VersionMetrics) Descriptor() ([]byte, []int) { 1527 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{0, 1, 2} 1528} 1529 1530func (x *Experiment_Result_VersionMetrics) GetVersion() string { 1531 if x != nil { 1532 return x.Version 1533 } 1534 return "" 1535} 1536 1537func (x *Experiment_Result_VersionMetrics) GetMetrics() []*Experiment_Result_Metric { 1538 if x != nil { 1539 return x.Metrics 1540 } 1541 return nil 1542} 1543 1544func (x *Experiment_Result_VersionMetrics) GetSessionCount() int32 { 1545 if x != nil { 1546 return x.SessionCount 1547 } 1548 return 0 1549} 1550 1551// A single flow version with specified traffic allocation. 1552type VersionVariants_Variant struct { 1553 state protoimpl.MessageState 1554 sizeCache protoimpl.SizeCache 1555 unknownFields protoimpl.UnknownFields 1556 1557 // The name of the flow version. 1558 // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent 1559 // ID>/flows/<Flow ID>/versions/<Version ID>`. 1560 Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` 1561 // Percentage of the traffic which should be routed to this 1562 // version of flow. Traffic allocation for a single flow must sum up to 1.0. 1563 TrafficAllocation float32 `protobuf:"fixed32,2,opt,name=traffic_allocation,json=trafficAllocation,proto3" json:"traffic_allocation,omitempty"` 1564 // Whether the variant is for the control group. 1565 IsControlGroup bool `protobuf:"varint,3,opt,name=is_control_group,json=isControlGroup,proto3" json:"is_control_group,omitempty"` 1566} 1567 1568func (x *VersionVariants_Variant) Reset() { 1569 *x = VersionVariants_Variant{} 1570 if protoimpl.UnsafeEnabled { 1571 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[18] 1572 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1573 ms.StoreMessageInfo(mi) 1574 } 1575} 1576 1577func (x *VersionVariants_Variant) String() string { 1578 return protoimpl.X.MessageStringOf(x) 1579} 1580 1581func (*VersionVariants_Variant) ProtoMessage() {} 1582 1583func (x *VersionVariants_Variant) ProtoReflect() protoreflect.Message { 1584 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[18] 1585 if protoimpl.UnsafeEnabled && x != nil { 1586 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1587 if ms.LoadMessageInfo() == nil { 1588 ms.StoreMessageInfo(mi) 1589 } 1590 return ms 1591 } 1592 return mi.MessageOf(x) 1593} 1594 1595// Deprecated: Use VersionVariants_Variant.ProtoReflect.Descriptor instead. 1596func (*VersionVariants_Variant) Descriptor() ([]byte, []int) { 1597 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{1, 0} 1598} 1599 1600func (x *VersionVariants_Variant) GetVersion() string { 1601 if x != nil { 1602 return x.Version 1603 } 1604 return "" 1605} 1606 1607func (x *VersionVariants_Variant) GetTrafficAllocation() float32 { 1608 if x != nil { 1609 return x.TrafficAllocation 1610 } 1611 return 0 1612} 1613 1614func (x *VersionVariants_Variant) GetIsControlGroup() bool { 1615 if x != nil { 1616 return x.IsControlGroup 1617 } 1618 return false 1619} 1620 1621// A single rollout step with specified traffic allocation. 1622type RolloutConfig_RolloutStep struct { 1623 state protoimpl.MessageState 1624 sizeCache protoimpl.SizeCache 1625 unknownFields protoimpl.UnknownFields 1626 1627 // The name of the rollout step; 1628 DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1629 // The percentage of traffic allocated to the flow version of this rollout 1630 // step. (0%, 100%]. 1631 TrafficPercent int32 `protobuf:"varint,2,opt,name=traffic_percent,json=trafficPercent,proto3" json:"traffic_percent,omitempty"` 1632 // The minimum time that this step should last. Should be longer than 1 1633 // hour. If not set, the default minimum duration for each step will be 1 1634 // hour. 1635 MinDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=min_duration,json=minDuration,proto3" json:"min_duration,omitempty"` 1636} 1637 1638func (x *RolloutConfig_RolloutStep) Reset() { 1639 *x = RolloutConfig_RolloutStep{} 1640 if protoimpl.UnsafeEnabled { 1641 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[19] 1642 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1643 ms.StoreMessageInfo(mi) 1644 } 1645} 1646 1647func (x *RolloutConfig_RolloutStep) String() string { 1648 return protoimpl.X.MessageStringOf(x) 1649} 1650 1651func (*RolloutConfig_RolloutStep) ProtoMessage() {} 1652 1653func (x *RolloutConfig_RolloutStep) ProtoReflect() protoreflect.Message { 1654 mi := &file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[19] 1655 if protoimpl.UnsafeEnabled && x != nil { 1656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1657 if ms.LoadMessageInfo() == nil { 1658 ms.StoreMessageInfo(mi) 1659 } 1660 return ms 1661 } 1662 return mi.MessageOf(x) 1663} 1664 1665// Deprecated: Use RolloutConfig_RolloutStep.ProtoReflect.Descriptor instead. 1666func (*RolloutConfig_RolloutStep) Descriptor() ([]byte, []int) { 1667 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP(), []int{2, 0} 1668} 1669 1670func (x *RolloutConfig_RolloutStep) GetDisplayName() string { 1671 if x != nil { 1672 return x.DisplayName 1673 } 1674 return "" 1675} 1676 1677func (x *RolloutConfig_RolloutStep) GetTrafficPercent() int32 { 1678 if x != nil { 1679 return x.TrafficPercent 1680 } 1681 return 0 1682} 1683 1684func (x *RolloutConfig_RolloutStep) GetMinDuration() *durationpb.Duration { 1685 if x != nil { 1686 return x.MinDuration 1687 } 1688 return nil 1689} 1690 1691var File_google_cloud_dialogflow_cx_v3beta1_experiment_proto protoreflect.FileDescriptor 1692 1693var file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDesc = []byte{ 1694 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 1695 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 0x33, 0x62, 1696 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 1697 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1698 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 1699 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1700 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1701 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1702 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1703 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 1704 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1705 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 1706 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 1707 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 1708 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 1709 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 1710 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1711 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 1712 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 1713 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 1714 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x14, 0x0a, 1715 0x0a, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 1716 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 1717 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 1718 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 1719 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 1720 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 1721 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x74, 0x61, 1722 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1723 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1724 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 1725 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 1726 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 1727 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1728 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 1729 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 1730 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 1731 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1732 0x12, 0x58, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 1733 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1734 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1735 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 1736 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 1737 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, 0x0a, 0x0d, 0x72, 0x6f, 1738 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 1739 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1740 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 1741 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 1742 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 1743 0x65, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 1744 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 1745 0x09, 0x52, 0x14, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 1746 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 1747 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1748 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 1749 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 1750 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 1751 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 1752 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 1753 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 1754 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 1755 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 1756 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1757 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 1758 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 1759 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 1760 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1761 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 1762 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 1763 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 1764 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1765 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 1766 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x65, 1767 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 1768 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1769 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 1770 0x6e, 0x52, 0x10, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 1771 0x67, 0x74, 0x68, 0x12, 0x5e, 0x0a, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x5f, 1772 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 1773 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 1774 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 1775 0x61, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 1776 0x72, 0x79, 0x52, 0x0f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 1777 0x6f, 0x72, 0x79, 0x1a, 0x98, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 1778 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1779 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1780 0x12, 0x60, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x69, 1781 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 1782 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 1783 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1784 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 1785 0x00, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 1786 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0xc8, 1787 0x09, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6d, 0x0a, 0x0f, 0x76, 0x65, 0x72, 1788 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 1789 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1790 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 1791 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 1792 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 1793 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 1794 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 1795 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 1796 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1797 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 1798 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x97, 1799 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 1800 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 1801 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 1802 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 1803 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 1804 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 1805 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 1806 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 1807 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 1808 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0xf2, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 1809 0x72, 0x69, 0x63, 0x12, 0x54, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 1810 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1811 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 1812 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1813 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 1814 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 1815 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 1816 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 1817 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 1818 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 1819 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 1820 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x61, 0x74, 1821 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x74, 0x69, 1822 0x6f, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 1823 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 1824 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 1825 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1826 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 1827 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 1828 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x6f, 1829 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 1830 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 1831 0x72, 0x76, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xcf, 0x01, 1832 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 1833 0x12, 0x40, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 1834 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1835 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1836 0x6d, 0x2f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 1837 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 1838 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1839 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 1840 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 1841 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 1842 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 1843 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 1844 0x05, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 1845 0xb6, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 1846 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 1847 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 1848 0x4e, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 1849 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 1850 0x0a, 0x17, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x48, 0x41, 0x4e, 1851 0x44, 0x4f, 0x46, 0x46, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43, 1852 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 1853 0x52, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 1854 0x4e, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x54, 0x45, 1855 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 1856 0x44, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x05, 0x22, 0x6f, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 1857 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 1858 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 1859 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 1860 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 1861 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 1862 0x02, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x55, 0x52, 1863 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x22, 0x54, 0x0a, 0x05, 0x53, 0x74, 0x61, 1864 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 1865 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x41, 1866 0x46, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 1867 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 1868 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x3a, 1869 0x96, 0x01, 0xea, 0x41, 0x92, 0x01, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1870 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1871 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6a, 0x70, 0x72, 1872 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 1873 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 1874 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 1875 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 1876 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 1877 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x78, 0x70, 1878 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0xe8, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, 1879 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x08, 1880 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 1881 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 1882 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 1883 0x74, 0x61, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 1884 0x6e, 0x74, 0x73, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x08, 0x76, 0x61, 0x72, 1885 0x69, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x7c, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 1886 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 1887 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x74, 0x72, 1888 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1889 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x41, 1890 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 1891 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 1892 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 1893 0x6f, 0x75, 0x70, 0x22, 0xe7, 0x02, 0x0a, 0x0d, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 1894 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x62, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 1895 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 1896 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 1897 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 1898 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 1899 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0c, 0x72, 0x6f, 0x6c, 1900 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x6f, 0x6c, 1901 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 1902 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 1903 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 1904 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 1905 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 1906 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 1907 0x74, 0x65, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 1908 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 1909 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 1910 0x63, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 1911 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 1912 0x3c, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1913 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1914 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1915 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 1916 0x0c, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 1917 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x74, 0x65, 1918 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 1919 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 1920 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 1921 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1922 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1923 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 1924 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 1925 0x60, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 1926 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1927 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 1928 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 1929 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x00, 1930 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 1931 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 1932 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1933 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 1934 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0a, 1935 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x4c, 1936 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 1937 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 1938 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x64, 1939 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1940 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 1941 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 1942 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 1943 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 1944 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 1945 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 1946 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 1947 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1948 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1949 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1950 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 1951 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 1952 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 1953 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 1954 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x58, 0x0a, 1955 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 1956 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 1957 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 1958 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1959 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1960 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 1961 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 1962 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 1963 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x64, 0x69, 0x61, 1964 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1965 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1966 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0a, 0x65, 0x78, 0x70, 1967 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 1968 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 1969 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 1970 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 1971 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xb0, 1972 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 1973 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0a, 0x65, 0x78, 1974 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 1975 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 1976 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 1977 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 1978 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 1979 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 1980 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1981 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 1982 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 1983 0x6b, 0x22, 0x5b, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 1984 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 1985 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 1986 0x41, 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 1987 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 1988 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 1989 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1990 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1991 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 1992 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1993 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1994 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x53, 0x74, 1995 0x6f, 0x70, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 1996 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 1997 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 1998 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1999 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 2000 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xdd, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 2001 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 2002 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2003 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 2004 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 2005 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 2006 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2007 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2008 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 2009 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2010 0x73, 0x65, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x76, 0x33, 0x62, 2011 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 2012 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2013 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 2014 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x70, 2015 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 2016 0x74, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 2017 0x65, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2018 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 2019 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 2020 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 2021 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2022 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 2023 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5b, 0x82, 2024 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 2025 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 2026 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 2027 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 2028 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2029 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xf5, 0x01, 0x0a, 0x10, 0x43, 2030 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 2031 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2032 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 2033 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 2034 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 2035 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2036 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 2037 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x74, 0x82, 0xd3, 2038 0xe4, 0x93, 0x02, 0x5a, 0x22, 0x4c, 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 2039 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 2040 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 2041 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 2042 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 2043 0x74, 0x73, 0x3a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0xda, 0x41, 2044 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2045 0x6e, 0x74, 0x12, 0x86, 0x02, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 2046 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2047 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2048 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 2049 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 2050 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2051 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 2052 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 2053 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x32, 0x57, 0x2f, 2054 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 2055 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 2056 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 2057 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 2058 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2059 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2060 0x6e, 0x74, 0xda, 0x41, 0x16, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 2061 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xc4, 0x01, 0x0a, 0x10, 2062 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2063 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2064 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 2065 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 2066 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 2067 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2068 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x2a, 0x4c, 0x2f, 2069 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 2070 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 2071 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 2072 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 2073 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 2074 0x6d, 0x65, 0x12, 0xe3, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x78, 0x70, 0x65, 2075 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2076 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2077 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 2078 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 2079 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2080 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 2081 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2082 0x6e, 0x74, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x57, 0x22, 0x52, 0x2f, 0x76, 0x33, 0x62, 2083 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2084 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2085 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 2086 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 2087 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 2088 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 2089 0x70, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x2e, 0x67, 0x6f, 2090 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2091 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 2092 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 2093 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2094 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2095 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 2096 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x51, 2097 0x2f, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 2098 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 2099 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 2100 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 2101 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x6f, 2102 0x70, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, 2103 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2104 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x59, 0x68, 0x74, 0x74, 0x70, 2105 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2106 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 2107 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 2108 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 2109 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2110 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xd7, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 2111 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2112 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 2113 0x42, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 2114 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 2115 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 2116 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2117 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 0x2f, 0x76, 2118 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 2119 0x46, 0xaa, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 2120 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 2121 0x33, 0x42, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x26, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 2122 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 2123 0x6f, 0x77, 0x3a, 0x3a, 0x43, 0x58, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 2124 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2125} 2126 2127var ( 2128 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescOnce sync.Once 2129 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescData = file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDesc 2130) 2131 2132func file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescGZIP() []byte { 2133 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescOnce.Do(func() { 2134 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescData) 2135 }) 2136 return file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDescData 2137} 2138 2139var file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2140var file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes = make([]protoimpl.MessageInfo, 20) 2141var file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_goTypes = []interface{}{ 2142 (Experiment_State)(0), // 0: google.cloud.dialogflow.cx.v3beta1.Experiment.State 2143 (Experiment_Result_MetricType)(0), // 1: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.MetricType 2144 (Experiment_Result_CountType)(0), // 2: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.CountType 2145 (*Experiment)(nil), // 3: google.cloud.dialogflow.cx.v3beta1.Experiment 2146 (*VersionVariants)(nil), // 4: google.cloud.dialogflow.cx.v3beta1.VersionVariants 2147 (*RolloutConfig)(nil), // 5: google.cloud.dialogflow.cx.v3beta1.RolloutConfig 2148 (*RolloutState)(nil), // 6: google.cloud.dialogflow.cx.v3beta1.RolloutState 2149 (*VariantsHistory)(nil), // 7: google.cloud.dialogflow.cx.v3beta1.VariantsHistory 2150 (*ListExperimentsRequest)(nil), // 8: google.cloud.dialogflow.cx.v3beta1.ListExperimentsRequest 2151 (*ListExperimentsResponse)(nil), // 9: google.cloud.dialogflow.cx.v3beta1.ListExperimentsResponse 2152 (*GetExperimentRequest)(nil), // 10: google.cloud.dialogflow.cx.v3beta1.GetExperimentRequest 2153 (*CreateExperimentRequest)(nil), // 11: google.cloud.dialogflow.cx.v3beta1.CreateExperimentRequest 2154 (*UpdateExperimentRequest)(nil), // 12: google.cloud.dialogflow.cx.v3beta1.UpdateExperimentRequest 2155 (*DeleteExperimentRequest)(nil), // 13: google.cloud.dialogflow.cx.v3beta1.DeleteExperimentRequest 2156 (*StartExperimentRequest)(nil), // 14: google.cloud.dialogflow.cx.v3beta1.StartExperimentRequest 2157 (*StopExperimentRequest)(nil), // 15: google.cloud.dialogflow.cx.v3beta1.StopExperimentRequest 2158 (*Experiment_Definition)(nil), // 16: google.cloud.dialogflow.cx.v3beta1.Experiment.Definition 2159 (*Experiment_Result)(nil), // 17: google.cloud.dialogflow.cx.v3beta1.Experiment.Result 2160 (*Experiment_Result_ConfidenceInterval)(nil), // 18: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.ConfidenceInterval 2161 (*Experiment_Result_Metric)(nil), // 19: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.Metric 2162 (*Experiment_Result_VersionMetrics)(nil), // 20: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.VersionMetrics 2163 (*VersionVariants_Variant)(nil), // 21: google.cloud.dialogflow.cx.v3beta1.VersionVariants.Variant 2164 (*RolloutConfig_RolloutStep)(nil), // 22: google.cloud.dialogflow.cx.v3beta1.RolloutConfig.RolloutStep 2165 (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp 2166 (*durationpb.Duration)(nil), // 24: google.protobuf.Duration 2167 (*fieldmaskpb.FieldMask)(nil), // 25: google.protobuf.FieldMask 2168 (*emptypb.Empty)(nil), // 26: google.protobuf.Empty 2169} 2170var file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_depIdxs = []int32{ 2171 0, // 0: google.cloud.dialogflow.cx.v3beta1.Experiment.state:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.State 2172 16, // 1: google.cloud.dialogflow.cx.v3beta1.Experiment.definition:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Definition 2173 5, // 2: google.cloud.dialogflow.cx.v3beta1.Experiment.rollout_config:type_name -> google.cloud.dialogflow.cx.v3beta1.RolloutConfig 2174 6, // 3: google.cloud.dialogflow.cx.v3beta1.Experiment.rollout_state:type_name -> google.cloud.dialogflow.cx.v3beta1.RolloutState 2175 17, // 4: google.cloud.dialogflow.cx.v3beta1.Experiment.result:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result 2176 23, // 5: google.cloud.dialogflow.cx.v3beta1.Experiment.create_time:type_name -> google.protobuf.Timestamp 2177 23, // 6: google.cloud.dialogflow.cx.v3beta1.Experiment.start_time:type_name -> google.protobuf.Timestamp 2178 23, // 7: google.cloud.dialogflow.cx.v3beta1.Experiment.end_time:type_name -> google.protobuf.Timestamp 2179 23, // 8: google.cloud.dialogflow.cx.v3beta1.Experiment.last_update_time:type_name -> google.protobuf.Timestamp 2180 24, // 9: google.cloud.dialogflow.cx.v3beta1.Experiment.experiment_length:type_name -> google.protobuf.Duration 2181 7, // 10: google.cloud.dialogflow.cx.v3beta1.Experiment.variants_history:type_name -> google.cloud.dialogflow.cx.v3beta1.VariantsHistory 2182 21, // 11: google.cloud.dialogflow.cx.v3beta1.VersionVariants.variants:type_name -> google.cloud.dialogflow.cx.v3beta1.VersionVariants.Variant 2183 22, // 12: google.cloud.dialogflow.cx.v3beta1.RolloutConfig.rollout_steps:type_name -> google.cloud.dialogflow.cx.v3beta1.RolloutConfig.RolloutStep 2184 23, // 13: google.cloud.dialogflow.cx.v3beta1.RolloutState.start_time:type_name -> google.protobuf.Timestamp 2185 4, // 14: google.cloud.dialogflow.cx.v3beta1.VariantsHistory.version_variants:type_name -> google.cloud.dialogflow.cx.v3beta1.VersionVariants 2186 23, // 15: google.cloud.dialogflow.cx.v3beta1.VariantsHistory.update_time:type_name -> google.protobuf.Timestamp 2187 3, // 16: google.cloud.dialogflow.cx.v3beta1.ListExperimentsResponse.experiments:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment 2188 3, // 17: google.cloud.dialogflow.cx.v3beta1.CreateExperimentRequest.experiment:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment 2189 3, // 18: google.cloud.dialogflow.cx.v3beta1.UpdateExperimentRequest.experiment:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment 2190 25, // 19: google.cloud.dialogflow.cx.v3beta1.UpdateExperimentRequest.update_mask:type_name -> google.protobuf.FieldMask 2191 4, // 20: google.cloud.dialogflow.cx.v3beta1.Experiment.Definition.version_variants:type_name -> google.cloud.dialogflow.cx.v3beta1.VersionVariants 2192 20, // 21: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.version_metrics:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result.VersionMetrics 2193 23, // 22: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.last_update_time:type_name -> google.protobuf.Timestamp 2194 1, // 23: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.Metric.type:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result.MetricType 2195 2, // 24: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.Metric.count_type:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result.CountType 2196 18, // 25: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.Metric.confidence_interval:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result.ConfidenceInterval 2197 19, // 26: google.cloud.dialogflow.cx.v3beta1.Experiment.Result.VersionMetrics.metrics:type_name -> google.cloud.dialogflow.cx.v3beta1.Experiment.Result.Metric 2198 24, // 27: google.cloud.dialogflow.cx.v3beta1.RolloutConfig.RolloutStep.min_duration:type_name -> google.protobuf.Duration 2199 8, // 28: google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments:input_type -> google.cloud.dialogflow.cx.v3beta1.ListExperimentsRequest 2200 10, // 29: google.cloud.dialogflow.cx.v3beta1.Experiments.GetExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.GetExperimentRequest 2201 11, // 30: google.cloud.dialogflow.cx.v3beta1.Experiments.CreateExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.CreateExperimentRequest 2202 12, // 31: google.cloud.dialogflow.cx.v3beta1.Experiments.UpdateExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.UpdateExperimentRequest 2203 13, // 32: google.cloud.dialogflow.cx.v3beta1.Experiments.DeleteExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.DeleteExperimentRequest 2204 14, // 33: google.cloud.dialogflow.cx.v3beta1.Experiments.StartExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.StartExperimentRequest 2205 15, // 34: google.cloud.dialogflow.cx.v3beta1.Experiments.StopExperiment:input_type -> google.cloud.dialogflow.cx.v3beta1.StopExperimentRequest 2206 9, // 35: google.cloud.dialogflow.cx.v3beta1.Experiments.ListExperiments:output_type -> google.cloud.dialogflow.cx.v3beta1.ListExperimentsResponse 2207 3, // 36: google.cloud.dialogflow.cx.v3beta1.Experiments.GetExperiment:output_type -> google.cloud.dialogflow.cx.v3beta1.Experiment 2208 3, // 37: google.cloud.dialogflow.cx.v3beta1.Experiments.CreateExperiment:output_type -> google.cloud.dialogflow.cx.v3beta1.Experiment 2209 3, // 38: google.cloud.dialogflow.cx.v3beta1.Experiments.UpdateExperiment:output_type -> google.cloud.dialogflow.cx.v3beta1.Experiment 2210 26, // 39: google.cloud.dialogflow.cx.v3beta1.Experiments.DeleteExperiment:output_type -> google.protobuf.Empty 2211 3, // 40: google.cloud.dialogflow.cx.v3beta1.Experiments.StartExperiment:output_type -> google.cloud.dialogflow.cx.v3beta1.Experiment 2212 3, // 41: google.cloud.dialogflow.cx.v3beta1.Experiments.StopExperiment:output_type -> google.cloud.dialogflow.cx.v3beta1.Experiment 2213 35, // [35:42] is the sub-list for method output_type 2214 28, // [28:35] is the sub-list for method input_type 2215 28, // [28:28] is the sub-list for extension type_name 2216 28, // [28:28] is the sub-list for extension extendee 2217 0, // [0:28] is the sub-list for field type_name 2218} 2219 2220func init() { file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_init() } 2221func file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_init() { 2222 if File_google_cloud_dialogflow_cx_v3beta1_experiment_proto != nil { 2223 return 2224 } 2225 if !protoimpl.UnsafeEnabled { 2226 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2227 switch v := v.(*Experiment); i { 2228 case 0: 2229 return &v.state 2230 case 1: 2231 return &v.sizeCache 2232 case 2: 2233 return &v.unknownFields 2234 default: 2235 return nil 2236 } 2237 } 2238 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2239 switch v := v.(*VersionVariants); i { 2240 case 0: 2241 return &v.state 2242 case 1: 2243 return &v.sizeCache 2244 case 2: 2245 return &v.unknownFields 2246 default: 2247 return nil 2248 } 2249 } 2250 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2251 switch v := v.(*RolloutConfig); i { 2252 case 0: 2253 return &v.state 2254 case 1: 2255 return &v.sizeCache 2256 case 2: 2257 return &v.unknownFields 2258 default: 2259 return nil 2260 } 2261 } 2262 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2263 switch v := v.(*RolloutState); i { 2264 case 0: 2265 return &v.state 2266 case 1: 2267 return &v.sizeCache 2268 case 2: 2269 return &v.unknownFields 2270 default: 2271 return nil 2272 } 2273 } 2274 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2275 switch v := v.(*VariantsHistory); i { 2276 case 0: 2277 return &v.state 2278 case 1: 2279 return &v.sizeCache 2280 case 2: 2281 return &v.unknownFields 2282 default: 2283 return nil 2284 } 2285 } 2286 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2287 switch v := v.(*ListExperimentsRequest); i { 2288 case 0: 2289 return &v.state 2290 case 1: 2291 return &v.sizeCache 2292 case 2: 2293 return &v.unknownFields 2294 default: 2295 return nil 2296 } 2297 } 2298 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2299 switch v := v.(*ListExperimentsResponse); i { 2300 case 0: 2301 return &v.state 2302 case 1: 2303 return &v.sizeCache 2304 case 2: 2305 return &v.unknownFields 2306 default: 2307 return nil 2308 } 2309 } 2310 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2311 switch v := v.(*GetExperimentRequest); i { 2312 case 0: 2313 return &v.state 2314 case 1: 2315 return &v.sizeCache 2316 case 2: 2317 return &v.unknownFields 2318 default: 2319 return nil 2320 } 2321 } 2322 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2323 switch v := v.(*CreateExperimentRequest); i { 2324 case 0: 2325 return &v.state 2326 case 1: 2327 return &v.sizeCache 2328 case 2: 2329 return &v.unknownFields 2330 default: 2331 return nil 2332 } 2333 } 2334 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2335 switch v := v.(*UpdateExperimentRequest); i { 2336 case 0: 2337 return &v.state 2338 case 1: 2339 return &v.sizeCache 2340 case 2: 2341 return &v.unknownFields 2342 default: 2343 return nil 2344 } 2345 } 2346 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2347 switch v := v.(*DeleteExperimentRequest); i { 2348 case 0: 2349 return &v.state 2350 case 1: 2351 return &v.sizeCache 2352 case 2: 2353 return &v.unknownFields 2354 default: 2355 return nil 2356 } 2357 } 2358 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2359 switch v := v.(*StartExperimentRequest); i { 2360 case 0: 2361 return &v.state 2362 case 1: 2363 return &v.sizeCache 2364 case 2: 2365 return &v.unknownFields 2366 default: 2367 return nil 2368 } 2369 } 2370 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2371 switch v := v.(*StopExperimentRequest); i { 2372 case 0: 2373 return &v.state 2374 case 1: 2375 return &v.sizeCache 2376 case 2: 2377 return &v.unknownFields 2378 default: 2379 return nil 2380 } 2381 } 2382 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2383 switch v := v.(*Experiment_Definition); i { 2384 case 0: 2385 return &v.state 2386 case 1: 2387 return &v.sizeCache 2388 case 2: 2389 return &v.unknownFields 2390 default: 2391 return nil 2392 } 2393 } 2394 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2395 switch v := v.(*Experiment_Result); i { 2396 case 0: 2397 return &v.state 2398 case 1: 2399 return &v.sizeCache 2400 case 2: 2401 return &v.unknownFields 2402 default: 2403 return nil 2404 } 2405 } 2406 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2407 switch v := v.(*Experiment_Result_ConfidenceInterval); i { 2408 case 0: 2409 return &v.state 2410 case 1: 2411 return &v.sizeCache 2412 case 2: 2413 return &v.unknownFields 2414 default: 2415 return nil 2416 } 2417 } 2418 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2419 switch v := v.(*Experiment_Result_Metric); i { 2420 case 0: 2421 return &v.state 2422 case 1: 2423 return &v.sizeCache 2424 case 2: 2425 return &v.unknownFields 2426 default: 2427 return nil 2428 } 2429 } 2430 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2431 switch v := v.(*Experiment_Result_VersionMetrics); i { 2432 case 0: 2433 return &v.state 2434 case 1: 2435 return &v.sizeCache 2436 case 2: 2437 return &v.unknownFields 2438 default: 2439 return nil 2440 } 2441 } 2442 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2443 switch v := v.(*VersionVariants_Variant); i { 2444 case 0: 2445 return &v.state 2446 case 1: 2447 return &v.sizeCache 2448 case 2: 2449 return &v.unknownFields 2450 default: 2451 return nil 2452 } 2453 } 2454 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2455 switch v := v.(*RolloutConfig_RolloutStep); i { 2456 case 0: 2457 return &v.state 2458 case 1: 2459 return &v.sizeCache 2460 case 2: 2461 return &v.unknownFields 2462 default: 2463 return nil 2464 } 2465 } 2466 } 2467 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[4].OneofWrappers = []interface{}{ 2468 (*VariantsHistory_VersionVariants)(nil), 2469 } 2470 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[13].OneofWrappers = []interface{}{ 2471 (*Experiment_Definition_VersionVariants)(nil), 2472 } 2473 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes[16].OneofWrappers = []interface{}{ 2474 (*Experiment_Result_Metric_Ratio)(nil), 2475 (*Experiment_Result_Metric_Count)(nil), 2476 } 2477 type x struct{} 2478 out := protoimpl.TypeBuilder{ 2479 File: protoimpl.DescBuilder{ 2480 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2481 RawDescriptor: file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDesc, 2482 NumEnums: 3, 2483 NumMessages: 20, 2484 NumExtensions: 0, 2485 NumServices: 1, 2486 }, 2487 GoTypes: file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_goTypes, 2488 DependencyIndexes: file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_depIdxs, 2489 EnumInfos: file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_enumTypes, 2490 MessageInfos: file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_msgTypes, 2491 }.Build() 2492 File_google_cloud_dialogflow_cx_v3beta1_experiment_proto = out.File 2493 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_rawDesc = nil 2494 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_goTypes = nil 2495 file_google_cloud_dialogflow_cx_v3beta1_experiment_proto_depIdxs = nil 2496} 2497 2498// Reference imports to suppress errors if they are not otherwise used. 2499var _ context.Context 2500var _ grpc.ClientConnInterface 2501 2502// This is a compile-time assertion to ensure that this generated file 2503// is compatible with the grpc package it is being compiled against. 2504const _ = grpc.SupportPackageIsVersion6 2505 2506// ExperimentsClient is the client API for Experiments service. 2507// 2508// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2509type ExperimentsClient interface { 2510 // Returns the list of all experiments in the specified [Environment][google.cloud.dialogflow.cx.v3beta1.Environment]. 2511 ListExperiments(ctx context.Context, in *ListExperimentsRequest, opts ...grpc.CallOption) (*ListExperimentsResponse, error) 2512 // Retrieves the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2513 GetExperiment(ctx context.Context, in *GetExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2514 // Creates an [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment] in the specified [Environment][google.cloud.dialogflow.cx.v3beta1.Environment]. 2515 CreateExperiment(ctx context.Context, in *CreateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2516 // Updates the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2517 UpdateExperiment(ctx context.Context, in *UpdateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2518 // Deletes the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2519 DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 2520 // Starts the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. This rpc only changes the state of 2521 // experiment from PENDING to RUNNING. 2522 StartExperiment(ctx context.Context, in *StartExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2523 // Stops the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. This rpc only changes the state of 2524 // experiment from RUNNING to DONE. 2525 StopExperiment(ctx context.Context, in *StopExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2526} 2527 2528type experimentsClient struct { 2529 cc grpc.ClientConnInterface 2530} 2531 2532func NewExperimentsClient(cc grpc.ClientConnInterface) ExperimentsClient { 2533 return &experimentsClient{cc} 2534} 2535 2536func (c *experimentsClient) ListExperiments(ctx context.Context, in *ListExperimentsRequest, opts ...grpc.CallOption) (*ListExperimentsResponse, error) { 2537 out := new(ListExperimentsResponse) 2538 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/ListExperiments", in, out, opts...) 2539 if err != nil { 2540 return nil, err 2541 } 2542 return out, nil 2543} 2544 2545func (c *experimentsClient) GetExperiment(ctx context.Context, in *GetExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2546 out := new(Experiment) 2547 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/GetExperiment", in, out, opts...) 2548 if err != nil { 2549 return nil, err 2550 } 2551 return out, nil 2552} 2553 2554func (c *experimentsClient) CreateExperiment(ctx context.Context, in *CreateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2555 out := new(Experiment) 2556 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/CreateExperiment", in, out, opts...) 2557 if err != nil { 2558 return nil, err 2559 } 2560 return out, nil 2561} 2562 2563func (c *experimentsClient) UpdateExperiment(ctx context.Context, in *UpdateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2564 out := new(Experiment) 2565 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/UpdateExperiment", in, out, opts...) 2566 if err != nil { 2567 return nil, err 2568 } 2569 return out, nil 2570} 2571 2572func (c *experimentsClient) DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 2573 out := new(emptypb.Empty) 2574 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/DeleteExperiment", in, out, opts...) 2575 if err != nil { 2576 return nil, err 2577 } 2578 return out, nil 2579} 2580 2581func (c *experimentsClient) StartExperiment(ctx context.Context, in *StartExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2582 out := new(Experiment) 2583 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/StartExperiment", in, out, opts...) 2584 if err != nil { 2585 return nil, err 2586 } 2587 return out, nil 2588} 2589 2590func (c *experimentsClient) StopExperiment(ctx context.Context, in *StopExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2591 out := new(Experiment) 2592 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3beta1.Experiments/StopExperiment", in, out, opts...) 2593 if err != nil { 2594 return nil, err 2595 } 2596 return out, nil 2597} 2598 2599// ExperimentsServer is the server API for Experiments service. 2600type ExperimentsServer interface { 2601 // Returns the list of all experiments in the specified [Environment][google.cloud.dialogflow.cx.v3beta1.Environment]. 2602 ListExperiments(context.Context, *ListExperimentsRequest) (*ListExperimentsResponse, error) 2603 // Retrieves the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2604 GetExperiment(context.Context, *GetExperimentRequest) (*Experiment, error) 2605 // Creates an [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment] in the specified [Environment][google.cloud.dialogflow.cx.v3beta1.Environment]. 2606 CreateExperiment(context.Context, *CreateExperimentRequest) (*Experiment, error) 2607 // Updates the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2608 UpdateExperiment(context.Context, *UpdateExperimentRequest) (*Experiment, error) 2609 // Deletes the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. 2610 DeleteExperiment(context.Context, *DeleteExperimentRequest) (*emptypb.Empty, error) 2611 // Starts the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. This rpc only changes the state of 2612 // experiment from PENDING to RUNNING. 2613 StartExperiment(context.Context, *StartExperimentRequest) (*Experiment, error) 2614 // Stops the specified [Experiment][google.cloud.dialogflow.cx.v3beta1.Experiment]. This rpc only changes the state of 2615 // experiment from RUNNING to DONE. 2616 StopExperiment(context.Context, *StopExperimentRequest) (*Experiment, error) 2617} 2618 2619// UnimplementedExperimentsServer can be embedded to have forward compatible implementations. 2620type UnimplementedExperimentsServer struct { 2621} 2622 2623func (*UnimplementedExperimentsServer) ListExperiments(context.Context, *ListExperimentsRequest) (*ListExperimentsResponse, error) { 2624 return nil, status.Errorf(codes.Unimplemented, "method ListExperiments not implemented") 2625} 2626func (*UnimplementedExperimentsServer) GetExperiment(context.Context, *GetExperimentRequest) (*Experiment, error) { 2627 return nil, status.Errorf(codes.Unimplemented, "method GetExperiment not implemented") 2628} 2629func (*UnimplementedExperimentsServer) CreateExperiment(context.Context, *CreateExperimentRequest) (*Experiment, error) { 2630 return nil, status.Errorf(codes.Unimplemented, "method CreateExperiment not implemented") 2631} 2632func (*UnimplementedExperimentsServer) UpdateExperiment(context.Context, *UpdateExperimentRequest) (*Experiment, error) { 2633 return nil, status.Errorf(codes.Unimplemented, "method UpdateExperiment not implemented") 2634} 2635func (*UnimplementedExperimentsServer) DeleteExperiment(context.Context, *DeleteExperimentRequest) (*emptypb.Empty, error) { 2636 return nil, status.Errorf(codes.Unimplemented, "method DeleteExperiment not implemented") 2637} 2638func (*UnimplementedExperimentsServer) StartExperiment(context.Context, *StartExperimentRequest) (*Experiment, error) { 2639 return nil, status.Errorf(codes.Unimplemented, "method StartExperiment not implemented") 2640} 2641func (*UnimplementedExperimentsServer) StopExperiment(context.Context, *StopExperimentRequest) (*Experiment, error) { 2642 return nil, status.Errorf(codes.Unimplemented, "method StopExperiment not implemented") 2643} 2644 2645func RegisterExperimentsServer(s *grpc.Server, srv ExperimentsServer) { 2646 s.RegisterService(&_Experiments_serviceDesc, srv) 2647} 2648 2649func _Experiments_ListExperiments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2650 in := new(ListExperimentsRequest) 2651 if err := dec(in); err != nil { 2652 return nil, err 2653 } 2654 if interceptor == nil { 2655 return srv.(ExperimentsServer).ListExperiments(ctx, in) 2656 } 2657 info := &grpc.UnaryServerInfo{ 2658 Server: srv, 2659 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/ListExperiments", 2660 } 2661 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2662 return srv.(ExperimentsServer).ListExperiments(ctx, req.(*ListExperimentsRequest)) 2663 } 2664 return interceptor(ctx, in, info, handler) 2665} 2666 2667func _Experiments_GetExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2668 in := new(GetExperimentRequest) 2669 if err := dec(in); err != nil { 2670 return nil, err 2671 } 2672 if interceptor == nil { 2673 return srv.(ExperimentsServer).GetExperiment(ctx, in) 2674 } 2675 info := &grpc.UnaryServerInfo{ 2676 Server: srv, 2677 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/GetExperiment", 2678 } 2679 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2680 return srv.(ExperimentsServer).GetExperiment(ctx, req.(*GetExperimentRequest)) 2681 } 2682 return interceptor(ctx, in, info, handler) 2683} 2684 2685func _Experiments_CreateExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2686 in := new(CreateExperimentRequest) 2687 if err := dec(in); err != nil { 2688 return nil, err 2689 } 2690 if interceptor == nil { 2691 return srv.(ExperimentsServer).CreateExperiment(ctx, in) 2692 } 2693 info := &grpc.UnaryServerInfo{ 2694 Server: srv, 2695 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/CreateExperiment", 2696 } 2697 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2698 return srv.(ExperimentsServer).CreateExperiment(ctx, req.(*CreateExperimentRequest)) 2699 } 2700 return interceptor(ctx, in, info, handler) 2701} 2702 2703func _Experiments_UpdateExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2704 in := new(UpdateExperimentRequest) 2705 if err := dec(in); err != nil { 2706 return nil, err 2707 } 2708 if interceptor == nil { 2709 return srv.(ExperimentsServer).UpdateExperiment(ctx, in) 2710 } 2711 info := &grpc.UnaryServerInfo{ 2712 Server: srv, 2713 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/UpdateExperiment", 2714 } 2715 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2716 return srv.(ExperimentsServer).UpdateExperiment(ctx, req.(*UpdateExperimentRequest)) 2717 } 2718 return interceptor(ctx, in, info, handler) 2719} 2720 2721func _Experiments_DeleteExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2722 in := new(DeleteExperimentRequest) 2723 if err := dec(in); err != nil { 2724 return nil, err 2725 } 2726 if interceptor == nil { 2727 return srv.(ExperimentsServer).DeleteExperiment(ctx, in) 2728 } 2729 info := &grpc.UnaryServerInfo{ 2730 Server: srv, 2731 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/DeleteExperiment", 2732 } 2733 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2734 return srv.(ExperimentsServer).DeleteExperiment(ctx, req.(*DeleteExperimentRequest)) 2735 } 2736 return interceptor(ctx, in, info, handler) 2737} 2738 2739func _Experiments_StartExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2740 in := new(StartExperimentRequest) 2741 if err := dec(in); err != nil { 2742 return nil, err 2743 } 2744 if interceptor == nil { 2745 return srv.(ExperimentsServer).StartExperiment(ctx, in) 2746 } 2747 info := &grpc.UnaryServerInfo{ 2748 Server: srv, 2749 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/StartExperiment", 2750 } 2751 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2752 return srv.(ExperimentsServer).StartExperiment(ctx, req.(*StartExperimentRequest)) 2753 } 2754 return interceptor(ctx, in, info, handler) 2755} 2756 2757func _Experiments_StopExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2758 in := new(StopExperimentRequest) 2759 if err := dec(in); err != nil { 2760 return nil, err 2761 } 2762 if interceptor == nil { 2763 return srv.(ExperimentsServer).StopExperiment(ctx, in) 2764 } 2765 info := &grpc.UnaryServerInfo{ 2766 Server: srv, 2767 FullMethod: "/google.cloud.dialogflow.cx.v3beta1.Experiments/StopExperiment", 2768 } 2769 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2770 return srv.(ExperimentsServer).StopExperiment(ctx, req.(*StopExperimentRequest)) 2771 } 2772 return interceptor(ctx, in, info, handler) 2773} 2774 2775var _Experiments_serviceDesc = grpc.ServiceDesc{ 2776 ServiceName: "google.cloud.dialogflow.cx.v3beta1.Experiments", 2777 HandlerType: (*ExperimentsServer)(nil), 2778 Methods: []grpc.MethodDesc{ 2779 { 2780 MethodName: "ListExperiments", 2781 Handler: _Experiments_ListExperiments_Handler, 2782 }, 2783 { 2784 MethodName: "GetExperiment", 2785 Handler: _Experiments_GetExperiment_Handler, 2786 }, 2787 { 2788 MethodName: "CreateExperiment", 2789 Handler: _Experiments_CreateExperiment_Handler, 2790 }, 2791 { 2792 MethodName: "UpdateExperiment", 2793 Handler: _Experiments_UpdateExperiment_Handler, 2794 }, 2795 { 2796 MethodName: "DeleteExperiment", 2797 Handler: _Experiments_DeleteExperiment_Handler, 2798 }, 2799 { 2800 MethodName: "StartExperiment", 2801 Handler: _Experiments_StartExperiment_Handler, 2802 }, 2803 { 2804 MethodName: "StopExperiment", 2805 Handler: _Experiments_StopExperiment_Handler, 2806 }, 2807 }, 2808 Streams: []grpc.StreamDesc{}, 2809 Metadata: "google/cloud/dialogflow/cx/v3beta1/experiment.proto", 2810} 2811