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/v3/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_v3_experiment_proto_enumTypes[0].Descriptor() 93} 94 95func (Experiment_State) Type() protoreflect.EnumType { 96 return &file_google_cloud_dialogflow_cx_v3_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_v3_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_v3_experiment_proto_enumTypes[1].Descriptor() 159} 160 161func (Experiment_Result_MetricType) Type() protoreflect.EnumType { 162 return &file_google_cloud_dialogflow_cx_v3_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_v3_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_v3_experiment_proto_enumTypes[2].Descriptor() 216} 217 218func (Experiment_Result_CountType) Type() protoreflect.EnumType { 219 return &file_google_cloud_dialogflow_cx_v3_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_v3_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.v3.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/rollout. 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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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 history of variants update. 469type VariantsHistory struct { 470 state protoimpl.MessageState 471 sizeCache protoimpl.SizeCache 472 unknownFields protoimpl.UnknownFields 473 474 // The variants updated. We currently only support single variant 475 // experiment. 476 // 477 // Types that are assignable to Variants: 478 // *VariantsHistory_VersionVariants 479 Variants isVariantsHistory_Variants `protobuf_oneof:"variants"` 480 // Update time of the variants. 481 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 482} 483 484func (x *VariantsHistory) Reset() { 485 *x = VariantsHistory{} 486 if protoimpl.UnsafeEnabled { 487 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[2] 488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 489 ms.StoreMessageInfo(mi) 490 } 491} 492 493func (x *VariantsHistory) String() string { 494 return protoimpl.X.MessageStringOf(x) 495} 496 497func (*VariantsHistory) ProtoMessage() {} 498 499func (x *VariantsHistory) ProtoReflect() protoreflect.Message { 500 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[2] 501 if protoimpl.UnsafeEnabled && x != nil { 502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 503 if ms.LoadMessageInfo() == nil { 504 ms.StoreMessageInfo(mi) 505 } 506 return ms 507 } 508 return mi.MessageOf(x) 509} 510 511// Deprecated: Use VariantsHistory.ProtoReflect.Descriptor instead. 512func (*VariantsHistory) Descriptor() ([]byte, []int) { 513 return file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescGZIP(), []int{2} 514} 515 516func (m *VariantsHistory) GetVariants() isVariantsHistory_Variants { 517 if m != nil { 518 return m.Variants 519 } 520 return nil 521} 522 523func (x *VariantsHistory) GetVersionVariants() *VersionVariants { 524 if x, ok := x.GetVariants().(*VariantsHistory_VersionVariants); ok { 525 return x.VersionVariants 526 } 527 return nil 528} 529 530func (x *VariantsHistory) GetUpdateTime() *timestamppb.Timestamp { 531 if x != nil { 532 return x.UpdateTime 533 } 534 return nil 535} 536 537type isVariantsHistory_Variants interface { 538 isVariantsHistory_Variants() 539} 540 541type VariantsHistory_VersionVariants struct { 542 // The flow versions as the variants. 543 VersionVariants *VersionVariants `protobuf:"bytes,1,opt,name=version_variants,json=versionVariants,proto3,oneof"` 544} 545 546func (*VariantsHistory_VersionVariants) isVariantsHistory_Variants() {} 547 548// The configuration for auto rollout. 549type RolloutConfig struct { 550 state protoimpl.MessageState 551 sizeCache protoimpl.SizeCache 552 unknownFields protoimpl.UnknownFields 553 554 // Steps to roll out a flow version. Steps should be sorted by percentage in 555 // ascending order. 556 RolloutSteps []*RolloutConfig_RolloutStep `protobuf:"bytes,1,rep,name=rollout_steps,json=rolloutSteps,proto3" json:"rollout_steps,omitempty"` 557 // The conditions that are used to evaluate the success of a rollout 558 // step. If not specified, all rollout steps will proceed to the next one 559 // unless failure conditions are met. E.g. "containment_rate > 60% AND 560 // callback_rate < 20%". See the [conditions 561 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 562 RolloutCondition string `protobuf:"bytes,2,opt,name=rollout_condition,json=rolloutCondition,proto3" json:"rollout_condition,omitempty"` 563 // The conditions that are used to evaluate the failure of a rollout 564 // step. If not specified, no rollout steps will fail. E.g. "containment_rate 565 // < 10% OR average_turn_count < 3". See the [conditions 566 // reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). 567 FailureCondition string `protobuf:"bytes,3,opt,name=failure_condition,json=failureCondition,proto3" json:"failure_condition,omitempty"` 568} 569 570func (x *RolloutConfig) Reset() { 571 *x = RolloutConfig{} 572 if protoimpl.UnsafeEnabled { 573 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[3] 574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 575 ms.StoreMessageInfo(mi) 576 } 577} 578 579func (x *RolloutConfig) String() string { 580 return protoimpl.X.MessageStringOf(x) 581} 582 583func (*RolloutConfig) ProtoMessage() {} 584 585func (x *RolloutConfig) ProtoReflect() protoreflect.Message { 586 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[3] 587 if protoimpl.UnsafeEnabled && x != nil { 588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 589 if ms.LoadMessageInfo() == nil { 590 ms.StoreMessageInfo(mi) 591 } 592 return ms 593 } 594 return mi.MessageOf(x) 595} 596 597// Deprecated: Use RolloutConfig.ProtoReflect.Descriptor instead. 598func (*RolloutConfig) Descriptor() ([]byte, []int) { 599 return file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescGZIP(), []int{3} 600} 601 602func (x *RolloutConfig) GetRolloutSteps() []*RolloutConfig_RolloutStep { 603 if x != nil { 604 return x.RolloutSteps 605 } 606 return nil 607} 608 609func (x *RolloutConfig) GetRolloutCondition() string { 610 if x != nil { 611 return x.RolloutCondition 612 } 613 return "" 614} 615 616func (x *RolloutConfig) GetFailureCondition() string { 617 if x != nil { 618 return x.FailureCondition 619 } 620 return "" 621} 622 623// State of the auto-rollout process. 624type RolloutState struct { 625 state protoimpl.MessageState 626 sizeCache protoimpl.SizeCache 627 unknownFields protoimpl.UnknownFields 628 629 // Display name of the current auto rollout step. 630 Step string `protobuf:"bytes,1,opt,name=step,proto3" json:"step,omitempty"` 631 // Index of the current step in the auto rollout steps list. 632 StepIndex int32 `protobuf:"varint,3,opt,name=step_index,json=stepIndex,proto3" json:"step_index,omitempty"` 633 // Start time of the current step. 634 StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 635} 636 637func (x *RolloutState) Reset() { 638 *x = RolloutState{} 639 if protoimpl.UnsafeEnabled { 640 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[4] 641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 642 ms.StoreMessageInfo(mi) 643 } 644} 645 646func (x *RolloutState) String() string { 647 return protoimpl.X.MessageStringOf(x) 648} 649 650func (*RolloutState) ProtoMessage() {} 651 652func (x *RolloutState) ProtoReflect() protoreflect.Message { 653 mi := &file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[4] 654 if protoimpl.UnsafeEnabled && x != nil { 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 if ms.LoadMessageInfo() == nil { 657 ms.StoreMessageInfo(mi) 658 } 659 return ms 660 } 661 return mi.MessageOf(x) 662} 663 664// Deprecated: Use RolloutState.ProtoReflect.Descriptor instead. 665func (*RolloutState) Descriptor() ([]byte, []int) { 666 return file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescGZIP(), []int{4} 667} 668 669func (x *RolloutState) GetStep() string { 670 if x != nil { 671 return x.Step 672 } 673 return "" 674} 675 676func (x *RolloutState) GetStepIndex() int32 { 677 if x != nil { 678 return x.StepIndex 679 } 680 return 0 681} 682 683func (x *RolloutState) GetStartTime() *timestamppb.Timestamp { 684 if x != nil { 685 return x.StartTime 686 } 687 return nil 688} 689 690// The request message for [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3.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.v3.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_v3_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_v3_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_v3_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.v3.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_v3_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_v3_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_v3_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.v3.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.v3.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_v3_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_v3_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_v3_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.v3.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.v3.Agent] to create an [Environment][google.cloud.dialogflow.cx.v3.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_v3_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_v3_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_v3_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.v3.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_v3_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_v3_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_v3_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.v3.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.v3.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_v3_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_v3_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_v3_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.v3.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_v3_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_v3_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_v3_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.v3.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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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.v3.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.v3.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_v3_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_v3_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_v3_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.v3.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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_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_v3_experiment_proto_rawDescGZIP(), []int{3, 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_v3_experiment_proto protoreflect.FileDescriptor 1692 1693var file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDesc = []byte{ 1694 0x0a, 0x2e, 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, 0x2f, 1696 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1697 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 1698 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x1a, 1699 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 1700 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 1701 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 1702 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 1703 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 1704 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1705 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1706 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1707 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 1708 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1709 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1710 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1711 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1712 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1713 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 1714 0x74, 0x6f, 0x22, 0xfd, 0x13, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1715 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1716 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 1717 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 1718 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 1719 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 1720 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1721 0x45, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 1722 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 1723 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 1724 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 1725 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 1726 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 1727 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 1728 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 1729 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1730 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0e, 1731 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 1732 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1733 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 1734 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 1735 0x69, 0x67, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1736 0x67, 0x12, 0x50, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x61, 1737 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1738 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1739 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 1740 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 1741 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x66, 1742 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x10, 0x20, 1743 0x01, 0x28, 0x09, 0x52, 0x14, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 1744 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x72, 0x65, 0x73, 1745 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1746 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 1747 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1748 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 1749 0x75, 0x6c, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 1750 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1751 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 1752 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 1753 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 1754 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1755 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1756 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 1757 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1758 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1759 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 1760 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 1761 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 1762 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 1763 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 1764 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x65, 1765 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0b, 0x20, 1766 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1767 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 1768 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 1769 0x12, 0x59, 0x0a, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x69, 0x73, 1770 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 1771 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 1772 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 1773 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0f, 0x76, 0x61, 0x72, 0x69, 1774 0x61, 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x93, 0x01, 0x0a, 0x0a, 1775 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 1776 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 1777 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 1778 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 1779 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1780 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 1781 0x76, 0x33, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 1782 0x74, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 1783 0x69, 0x61, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 1784 0x73, 0x1a, 0xaf, 0x09, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x68, 0x0a, 0x0f, 1785 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 1786 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1787 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 1788 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 1789 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 1790 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 1791 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 1792 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1793 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1794 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 1795 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x97, 0x01, 0x0a, 1796 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 1797 0x76, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 1798 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x63, 1799 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 1800 0x0a, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x72, 1801 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 1802 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 1803 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 1804 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 1805 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0xe3, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 1806 0x63, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 1807 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 1808 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 1809 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 1810 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 1811 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 1812 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1813 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 1814 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1815 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 1816 0x70, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 1817 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 1818 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 1819 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x74, 0x0a, 1820 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 1821 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 1822 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 1823 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 1824 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 1825 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 1826 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 1827 0x76, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xca, 0x01, 0x0a, 1828 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 1829 0x40, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1830 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 1831 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 1832 0x2f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 1833 0x6e, 0x12, 0x51, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 1834 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1835 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 1836 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 1837 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 1838 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 1839 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x73, 1840 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb6, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 1841 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x52, 1842 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 1843 0x12, 0x26, 0x0a, 0x22, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x53, 0x45, 1844 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 1845 0x4b, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x49, 0x56, 0x45, 1846 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4f, 0x46, 0x46, 0x5f, 0x52, 1847 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 1848 0x4b, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x03, 1849 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x53, 0x45, 1850 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 1851 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x41, 0x54, 0x45, 1852 0x10, 0x05, 0x22, 0x6f, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 1853 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 1854 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 1855 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4f, 1856 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x54, 1857 0x55, 0x52, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x41, 1858 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 1859 0x54, 0x10, 0x03, 0x22, 0x54, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 1860 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 1861 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x01, 0x12, 0x0b, 1862 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 1863 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 1864 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x3a, 0x96, 0x01, 0xea, 0x41, 0x92, 0x01, 1865 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 1866 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 1867 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 1868 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1869 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 1870 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x65, 1871 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 1872 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 1873 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1874 0x74, 0x7d, 0x22, 0xe3, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 1875 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 1876 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1877 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 1878 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 1879 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 1880 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x7c, 0x0a, 0x07, 0x56, 0x61, 1881 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 1882 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 1883 0x2d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 1884 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x74, 0x72, 0x61, 1885 0x66, 0x66, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 1886 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 1887 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 1888 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x72, 1889 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x5b, 0x0a, 0x10, 1890 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 1891 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1892 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 1893 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 1894 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 1895 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 1896 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 1897 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1898 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 1899 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 1900 0x74, 0x73, 0x22, 0xe2, 0x02, 0x0a, 0x0d, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 1901 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5d, 0x0a, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 1902 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 1903 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 1904 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 1905 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 1906 0x74, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 1907 0x65, 0x70, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x63, 1908 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 1909 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1910 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 1911 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 1912 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, 1913 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x65, 0x70, 0x12, 0x21, 0x0a, 1914 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 1915 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 1916 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x65, 0x72, 0x63, 1917 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 1918 0x69, 0x63, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 1919 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 1920 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1921 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 1922 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 1923 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 1924 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 1925 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 1926 0x09, 0x73, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 1927 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 1928 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1929 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 1930 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 1931 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 1932 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1933 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 1934 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 1935 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 1936 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 1937 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 1938 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 1939 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 1940 0x65, 0x6e, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 1941 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 1942 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 1943 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1944 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 1945 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 1946 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 1947 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 1948 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 1949 0x6b, 0x65, 0x6e, 0x22, 0x58, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1950 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 1951 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 1952 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 1953 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 1954 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaf, 0x01, 1955 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 1956 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 1957 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 1958 0x26, 0x12, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 1959 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 1960 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 1961 0x4e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 1962 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1963 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 1964 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 1965 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 1966 0xab, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1967 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x65, 1968 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 1969 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 1970 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 1971 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 1972 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 1973 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1974 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1975 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 1976 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5b, 0x0a, 1977 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 1978 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1979 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 1980 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1981 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1982 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x53, 0x74, 1983 0x61, 0x72, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 1984 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 1985 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 1986 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1987 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 1988 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x78, 1989 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 1990 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 1991 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 1992 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 1993 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 1994 0x65, 0x32, 0xf8, 0x0c, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 1995 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1996 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1997 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 1998 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 1999 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 2000 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 2001 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 2002 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 2003 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 2004 0x33, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2005 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 2006 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 2007 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 2008 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc7, 2009 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2010 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2011 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 2012 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 2013 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2014 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2015 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2016 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x6e, 2017 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 2018 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 2019 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2020 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 2021 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe6, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 2022 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 2023 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 2024 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x72, 2025 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 2026 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2027 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 2028 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2029 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x22, 0x47, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x70, 2030 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 2031 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 2032 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 2033 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2034 0x73, 0x3a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0xda, 0x41, 0x11, 2035 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 2036 0x74, 0x12, 0xf6, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 2037 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2038 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 2039 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 2040 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 2041 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 2042 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 2043 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 2044 0x60, 0x32, 0x52, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2045 0x6e, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 2046 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 2047 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 2048 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 2049 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 2050 0x74, 0xda, 0x41, 0x16, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x75, 2051 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xba, 0x01, 0x0a, 0x10, 0x44, 2052 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 2053 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 2054 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 2055 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2056 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2057 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 2058 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x2a, 0x47, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x6e, 0x61, 2059 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 2060 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 2061 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 2062 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 2063 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd4, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 2064 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x67, 0x6f, 2065 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 2066 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x72, 2067 0x74, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 2068 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2069 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 2070 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5f, 0x82, 2071 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x76, 0x33, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 2072 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2073 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 2074 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 2075 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 2076 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd1, 2077 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 2078 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2079 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 2080 0x33, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2081 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2082 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2083 0x77, 0x2e, 0x63, 0x78, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2084 0x6e, 0x74, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x22, 0x4c, 0x2f, 0x76, 0x33, 0x2f, 2085 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 2086 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x67, 0x65, 2087 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 2088 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2089 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 2090 0x6d, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 2091 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2092 0xd2, 0x41, 0x59, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 2093 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 2094 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2095 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 2096 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 2097 0x68, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0xc3, 0x01, 0x0a, 2098 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2099 0x64, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x63, 0x78, 0x2e, 2100 0x76, 0x33, 0x42, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 2101 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 2102 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 2103 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 2104 0x75, 0x64, 0x2f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x63, 0x78, 2105 0x2f, 0x76, 0x33, 0x3b, 0x63, 0x78, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x02, 0x44, 0x46, 0xaa, 0x02, 2106 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x69, 2107 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x78, 0x2e, 0x56, 0x33, 0xea, 0x02, 2108 0x21, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 2109 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x3a, 0x43, 0x58, 0x3a, 0x3a, 2110 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2111} 2112 2113var ( 2114 file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescOnce sync.Once 2115 file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescData = file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDesc 2116) 2117 2118func file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescGZIP() []byte { 2119 file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescOnce.Do(func() { 2120 file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescData) 2121 }) 2122 return file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDescData 2123} 2124 2125var file_google_cloud_dialogflow_cx_v3_experiment_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2126var file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes = make([]protoimpl.MessageInfo, 20) 2127var file_google_cloud_dialogflow_cx_v3_experiment_proto_goTypes = []interface{}{ 2128 (Experiment_State)(0), // 0: google.cloud.dialogflow.cx.v3.Experiment.State 2129 (Experiment_Result_MetricType)(0), // 1: google.cloud.dialogflow.cx.v3.Experiment.Result.MetricType 2130 (Experiment_Result_CountType)(0), // 2: google.cloud.dialogflow.cx.v3.Experiment.Result.CountType 2131 (*Experiment)(nil), // 3: google.cloud.dialogflow.cx.v3.Experiment 2132 (*VersionVariants)(nil), // 4: google.cloud.dialogflow.cx.v3.VersionVariants 2133 (*VariantsHistory)(nil), // 5: google.cloud.dialogflow.cx.v3.VariantsHistory 2134 (*RolloutConfig)(nil), // 6: google.cloud.dialogflow.cx.v3.RolloutConfig 2135 (*RolloutState)(nil), // 7: google.cloud.dialogflow.cx.v3.RolloutState 2136 (*ListExperimentsRequest)(nil), // 8: google.cloud.dialogflow.cx.v3.ListExperimentsRequest 2137 (*ListExperimentsResponse)(nil), // 9: google.cloud.dialogflow.cx.v3.ListExperimentsResponse 2138 (*GetExperimentRequest)(nil), // 10: google.cloud.dialogflow.cx.v3.GetExperimentRequest 2139 (*CreateExperimentRequest)(nil), // 11: google.cloud.dialogflow.cx.v3.CreateExperimentRequest 2140 (*UpdateExperimentRequest)(nil), // 12: google.cloud.dialogflow.cx.v3.UpdateExperimentRequest 2141 (*DeleteExperimentRequest)(nil), // 13: google.cloud.dialogflow.cx.v3.DeleteExperimentRequest 2142 (*StartExperimentRequest)(nil), // 14: google.cloud.dialogflow.cx.v3.StartExperimentRequest 2143 (*StopExperimentRequest)(nil), // 15: google.cloud.dialogflow.cx.v3.StopExperimentRequest 2144 (*Experiment_Definition)(nil), // 16: google.cloud.dialogflow.cx.v3.Experiment.Definition 2145 (*Experiment_Result)(nil), // 17: google.cloud.dialogflow.cx.v3.Experiment.Result 2146 (*Experiment_Result_ConfidenceInterval)(nil), // 18: google.cloud.dialogflow.cx.v3.Experiment.Result.ConfidenceInterval 2147 (*Experiment_Result_Metric)(nil), // 19: google.cloud.dialogflow.cx.v3.Experiment.Result.Metric 2148 (*Experiment_Result_VersionMetrics)(nil), // 20: google.cloud.dialogflow.cx.v3.Experiment.Result.VersionMetrics 2149 (*VersionVariants_Variant)(nil), // 21: google.cloud.dialogflow.cx.v3.VersionVariants.Variant 2150 (*RolloutConfig_RolloutStep)(nil), // 22: google.cloud.dialogflow.cx.v3.RolloutConfig.RolloutStep 2151 (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp 2152 (*durationpb.Duration)(nil), // 24: google.protobuf.Duration 2153 (*fieldmaskpb.FieldMask)(nil), // 25: google.protobuf.FieldMask 2154 (*emptypb.Empty)(nil), // 26: google.protobuf.Empty 2155} 2156var file_google_cloud_dialogflow_cx_v3_experiment_proto_depIdxs = []int32{ 2157 0, // 0: google.cloud.dialogflow.cx.v3.Experiment.state:type_name -> google.cloud.dialogflow.cx.v3.Experiment.State 2158 16, // 1: google.cloud.dialogflow.cx.v3.Experiment.definition:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Definition 2159 6, // 2: google.cloud.dialogflow.cx.v3.Experiment.rollout_config:type_name -> google.cloud.dialogflow.cx.v3.RolloutConfig 2160 7, // 3: google.cloud.dialogflow.cx.v3.Experiment.rollout_state:type_name -> google.cloud.dialogflow.cx.v3.RolloutState 2161 17, // 4: google.cloud.dialogflow.cx.v3.Experiment.result:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result 2162 23, // 5: google.cloud.dialogflow.cx.v3.Experiment.create_time:type_name -> google.protobuf.Timestamp 2163 23, // 6: google.cloud.dialogflow.cx.v3.Experiment.start_time:type_name -> google.protobuf.Timestamp 2164 23, // 7: google.cloud.dialogflow.cx.v3.Experiment.end_time:type_name -> google.protobuf.Timestamp 2165 23, // 8: google.cloud.dialogflow.cx.v3.Experiment.last_update_time:type_name -> google.protobuf.Timestamp 2166 24, // 9: google.cloud.dialogflow.cx.v3.Experiment.experiment_length:type_name -> google.protobuf.Duration 2167 5, // 10: google.cloud.dialogflow.cx.v3.Experiment.variants_history:type_name -> google.cloud.dialogflow.cx.v3.VariantsHistory 2168 21, // 11: google.cloud.dialogflow.cx.v3.VersionVariants.variants:type_name -> google.cloud.dialogflow.cx.v3.VersionVariants.Variant 2169 4, // 12: google.cloud.dialogflow.cx.v3.VariantsHistory.version_variants:type_name -> google.cloud.dialogflow.cx.v3.VersionVariants 2170 23, // 13: google.cloud.dialogflow.cx.v3.VariantsHistory.update_time:type_name -> google.protobuf.Timestamp 2171 22, // 14: google.cloud.dialogflow.cx.v3.RolloutConfig.rollout_steps:type_name -> google.cloud.dialogflow.cx.v3.RolloutConfig.RolloutStep 2172 23, // 15: google.cloud.dialogflow.cx.v3.RolloutState.start_time:type_name -> google.protobuf.Timestamp 2173 3, // 16: google.cloud.dialogflow.cx.v3.ListExperimentsResponse.experiments:type_name -> google.cloud.dialogflow.cx.v3.Experiment 2174 3, // 17: google.cloud.dialogflow.cx.v3.CreateExperimentRequest.experiment:type_name -> google.cloud.dialogflow.cx.v3.Experiment 2175 3, // 18: google.cloud.dialogflow.cx.v3.UpdateExperimentRequest.experiment:type_name -> google.cloud.dialogflow.cx.v3.Experiment 2176 25, // 19: google.cloud.dialogflow.cx.v3.UpdateExperimentRequest.update_mask:type_name -> google.protobuf.FieldMask 2177 4, // 20: google.cloud.dialogflow.cx.v3.Experiment.Definition.version_variants:type_name -> google.cloud.dialogflow.cx.v3.VersionVariants 2178 20, // 21: google.cloud.dialogflow.cx.v3.Experiment.Result.version_metrics:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result.VersionMetrics 2179 23, // 22: google.cloud.dialogflow.cx.v3.Experiment.Result.last_update_time:type_name -> google.protobuf.Timestamp 2180 1, // 23: google.cloud.dialogflow.cx.v3.Experiment.Result.Metric.type:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result.MetricType 2181 2, // 24: google.cloud.dialogflow.cx.v3.Experiment.Result.Metric.count_type:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result.CountType 2182 18, // 25: google.cloud.dialogflow.cx.v3.Experiment.Result.Metric.confidence_interval:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result.ConfidenceInterval 2183 19, // 26: google.cloud.dialogflow.cx.v3.Experiment.Result.VersionMetrics.metrics:type_name -> google.cloud.dialogflow.cx.v3.Experiment.Result.Metric 2184 24, // 27: google.cloud.dialogflow.cx.v3.RolloutConfig.RolloutStep.min_duration:type_name -> google.protobuf.Duration 2185 8, // 28: google.cloud.dialogflow.cx.v3.Experiments.ListExperiments:input_type -> google.cloud.dialogflow.cx.v3.ListExperimentsRequest 2186 10, // 29: google.cloud.dialogflow.cx.v3.Experiments.GetExperiment:input_type -> google.cloud.dialogflow.cx.v3.GetExperimentRequest 2187 11, // 30: google.cloud.dialogflow.cx.v3.Experiments.CreateExperiment:input_type -> google.cloud.dialogflow.cx.v3.CreateExperimentRequest 2188 12, // 31: google.cloud.dialogflow.cx.v3.Experiments.UpdateExperiment:input_type -> google.cloud.dialogflow.cx.v3.UpdateExperimentRequest 2189 13, // 32: google.cloud.dialogflow.cx.v3.Experiments.DeleteExperiment:input_type -> google.cloud.dialogflow.cx.v3.DeleteExperimentRequest 2190 14, // 33: google.cloud.dialogflow.cx.v3.Experiments.StartExperiment:input_type -> google.cloud.dialogflow.cx.v3.StartExperimentRequest 2191 15, // 34: google.cloud.dialogflow.cx.v3.Experiments.StopExperiment:input_type -> google.cloud.dialogflow.cx.v3.StopExperimentRequest 2192 9, // 35: google.cloud.dialogflow.cx.v3.Experiments.ListExperiments:output_type -> google.cloud.dialogflow.cx.v3.ListExperimentsResponse 2193 3, // 36: google.cloud.dialogflow.cx.v3.Experiments.GetExperiment:output_type -> google.cloud.dialogflow.cx.v3.Experiment 2194 3, // 37: google.cloud.dialogflow.cx.v3.Experiments.CreateExperiment:output_type -> google.cloud.dialogflow.cx.v3.Experiment 2195 3, // 38: google.cloud.dialogflow.cx.v3.Experiments.UpdateExperiment:output_type -> google.cloud.dialogflow.cx.v3.Experiment 2196 26, // 39: google.cloud.dialogflow.cx.v3.Experiments.DeleteExperiment:output_type -> google.protobuf.Empty 2197 3, // 40: google.cloud.dialogflow.cx.v3.Experiments.StartExperiment:output_type -> google.cloud.dialogflow.cx.v3.Experiment 2198 3, // 41: google.cloud.dialogflow.cx.v3.Experiments.StopExperiment:output_type -> google.cloud.dialogflow.cx.v3.Experiment 2199 35, // [35:42] is the sub-list for method output_type 2200 28, // [28:35] is the sub-list for method input_type 2201 28, // [28:28] is the sub-list for extension type_name 2202 28, // [28:28] is the sub-list for extension extendee 2203 0, // [0:28] is the sub-list for field type_name 2204} 2205 2206func init() { file_google_cloud_dialogflow_cx_v3_experiment_proto_init() } 2207func file_google_cloud_dialogflow_cx_v3_experiment_proto_init() { 2208 if File_google_cloud_dialogflow_cx_v3_experiment_proto != nil { 2209 return 2210 } 2211 if !protoimpl.UnsafeEnabled { 2212 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2213 switch v := v.(*Experiment); i { 2214 case 0: 2215 return &v.state 2216 case 1: 2217 return &v.sizeCache 2218 case 2: 2219 return &v.unknownFields 2220 default: 2221 return nil 2222 } 2223 } 2224 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2225 switch v := v.(*VersionVariants); i { 2226 case 0: 2227 return &v.state 2228 case 1: 2229 return &v.sizeCache 2230 case 2: 2231 return &v.unknownFields 2232 default: 2233 return nil 2234 } 2235 } 2236 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2237 switch v := v.(*VariantsHistory); i { 2238 case 0: 2239 return &v.state 2240 case 1: 2241 return &v.sizeCache 2242 case 2: 2243 return &v.unknownFields 2244 default: 2245 return nil 2246 } 2247 } 2248 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2249 switch v := v.(*RolloutConfig); i { 2250 case 0: 2251 return &v.state 2252 case 1: 2253 return &v.sizeCache 2254 case 2: 2255 return &v.unknownFields 2256 default: 2257 return nil 2258 } 2259 } 2260 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2261 switch v := v.(*RolloutState); i { 2262 case 0: 2263 return &v.state 2264 case 1: 2265 return &v.sizeCache 2266 case 2: 2267 return &v.unknownFields 2268 default: 2269 return nil 2270 } 2271 } 2272 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2273 switch v := v.(*ListExperimentsRequest); i { 2274 case 0: 2275 return &v.state 2276 case 1: 2277 return &v.sizeCache 2278 case 2: 2279 return &v.unknownFields 2280 default: 2281 return nil 2282 } 2283 } 2284 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2285 switch v := v.(*ListExperimentsResponse); i { 2286 case 0: 2287 return &v.state 2288 case 1: 2289 return &v.sizeCache 2290 case 2: 2291 return &v.unknownFields 2292 default: 2293 return nil 2294 } 2295 } 2296 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2297 switch v := v.(*GetExperimentRequest); i { 2298 case 0: 2299 return &v.state 2300 case 1: 2301 return &v.sizeCache 2302 case 2: 2303 return &v.unknownFields 2304 default: 2305 return nil 2306 } 2307 } 2308 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2309 switch v := v.(*CreateExperimentRequest); i { 2310 case 0: 2311 return &v.state 2312 case 1: 2313 return &v.sizeCache 2314 case 2: 2315 return &v.unknownFields 2316 default: 2317 return nil 2318 } 2319 } 2320 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2321 switch v := v.(*UpdateExperimentRequest); i { 2322 case 0: 2323 return &v.state 2324 case 1: 2325 return &v.sizeCache 2326 case 2: 2327 return &v.unknownFields 2328 default: 2329 return nil 2330 } 2331 } 2332 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2333 switch v := v.(*DeleteExperimentRequest); i { 2334 case 0: 2335 return &v.state 2336 case 1: 2337 return &v.sizeCache 2338 case 2: 2339 return &v.unknownFields 2340 default: 2341 return nil 2342 } 2343 } 2344 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2345 switch v := v.(*StartExperimentRequest); i { 2346 case 0: 2347 return &v.state 2348 case 1: 2349 return &v.sizeCache 2350 case 2: 2351 return &v.unknownFields 2352 default: 2353 return nil 2354 } 2355 } 2356 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2357 switch v := v.(*StopExperimentRequest); i { 2358 case 0: 2359 return &v.state 2360 case 1: 2361 return &v.sizeCache 2362 case 2: 2363 return &v.unknownFields 2364 default: 2365 return nil 2366 } 2367 } 2368 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2369 switch v := v.(*Experiment_Definition); i { 2370 case 0: 2371 return &v.state 2372 case 1: 2373 return &v.sizeCache 2374 case 2: 2375 return &v.unknownFields 2376 default: 2377 return nil 2378 } 2379 } 2380 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2381 switch v := v.(*Experiment_Result); i { 2382 case 0: 2383 return &v.state 2384 case 1: 2385 return &v.sizeCache 2386 case 2: 2387 return &v.unknownFields 2388 default: 2389 return nil 2390 } 2391 } 2392 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2393 switch v := v.(*Experiment_Result_ConfidenceInterval); i { 2394 case 0: 2395 return &v.state 2396 case 1: 2397 return &v.sizeCache 2398 case 2: 2399 return &v.unknownFields 2400 default: 2401 return nil 2402 } 2403 } 2404 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2405 switch v := v.(*Experiment_Result_Metric); i { 2406 case 0: 2407 return &v.state 2408 case 1: 2409 return &v.sizeCache 2410 case 2: 2411 return &v.unknownFields 2412 default: 2413 return nil 2414 } 2415 } 2416 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2417 switch v := v.(*Experiment_Result_VersionMetrics); i { 2418 case 0: 2419 return &v.state 2420 case 1: 2421 return &v.sizeCache 2422 case 2: 2423 return &v.unknownFields 2424 default: 2425 return nil 2426 } 2427 } 2428 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2429 switch v := v.(*VersionVariants_Variant); i { 2430 case 0: 2431 return &v.state 2432 case 1: 2433 return &v.sizeCache 2434 case 2: 2435 return &v.unknownFields 2436 default: 2437 return nil 2438 } 2439 } 2440 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2441 switch v := v.(*RolloutConfig_RolloutStep); i { 2442 case 0: 2443 return &v.state 2444 case 1: 2445 return &v.sizeCache 2446 case 2: 2447 return &v.unknownFields 2448 default: 2449 return nil 2450 } 2451 } 2452 } 2453 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[2].OneofWrappers = []interface{}{ 2454 (*VariantsHistory_VersionVariants)(nil), 2455 } 2456 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[13].OneofWrappers = []interface{}{ 2457 (*Experiment_Definition_VersionVariants)(nil), 2458 } 2459 file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes[16].OneofWrappers = []interface{}{ 2460 (*Experiment_Result_Metric_Ratio)(nil), 2461 (*Experiment_Result_Metric_Count)(nil), 2462 } 2463 type x struct{} 2464 out := protoimpl.TypeBuilder{ 2465 File: protoimpl.DescBuilder{ 2466 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2467 RawDescriptor: file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDesc, 2468 NumEnums: 3, 2469 NumMessages: 20, 2470 NumExtensions: 0, 2471 NumServices: 1, 2472 }, 2473 GoTypes: file_google_cloud_dialogflow_cx_v3_experiment_proto_goTypes, 2474 DependencyIndexes: file_google_cloud_dialogflow_cx_v3_experiment_proto_depIdxs, 2475 EnumInfos: file_google_cloud_dialogflow_cx_v3_experiment_proto_enumTypes, 2476 MessageInfos: file_google_cloud_dialogflow_cx_v3_experiment_proto_msgTypes, 2477 }.Build() 2478 File_google_cloud_dialogflow_cx_v3_experiment_proto = out.File 2479 file_google_cloud_dialogflow_cx_v3_experiment_proto_rawDesc = nil 2480 file_google_cloud_dialogflow_cx_v3_experiment_proto_goTypes = nil 2481 file_google_cloud_dialogflow_cx_v3_experiment_proto_depIdxs = nil 2482} 2483 2484// Reference imports to suppress errors if they are not otherwise used. 2485var _ context.Context 2486var _ grpc.ClientConnInterface 2487 2488// This is a compile-time assertion to ensure that this generated file 2489// is compatible with the grpc package it is being compiled against. 2490const _ = grpc.SupportPackageIsVersion6 2491 2492// ExperimentsClient is the client API for Experiments service. 2493// 2494// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2495type ExperimentsClient interface { 2496 // Returns the list of all experiments in the specified [Environment][google.cloud.dialogflow.cx.v3.Environment]. 2497 ListExperiments(ctx context.Context, in *ListExperimentsRequest, opts ...grpc.CallOption) (*ListExperimentsResponse, error) 2498 // Retrieves the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2499 GetExperiment(ctx context.Context, in *GetExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2500 // Creates an [Experiment][google.cloud.dialogflow.cx.v3.Experiment] in the specified [Environment][google.cloud.dialogflow.cx.v3.Environment]. 2501 CreateExperiment(ctx context.Context, in *CreateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2502 // Updates the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2503 UpdateExperiment(ctx context.Context, in *UpdateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2504 // Deletes the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2505 DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 2506 // Starts the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. This rpc only changes the state of 2507 // experiment from PENDING to RUNNING. 2508 StartExperiment(ctx context.Context, in *StartExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2509 // Stops the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. This rpc only changes the state of 2510 // experiment from RUNNING to DONE. 2511 StopExperiment(ctx context.Context, in *StopExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) 2512} 2513 2514type experimentsClient struct { 2515 cc grpc.ClientConnInterface 2516} 2517 2518func NewExperimentsClient(cc grpc.ClientConnInterface) ExperimentsClient { 2519 return &experimentsClient{cc} 2520} 2521 2522func (c *experimentsClient) ListExperiments(ctx context.Context, in *ListExperimentsRequest, opts ...grpc.CallOption) (*ListExperimentsResponse, error) { 2523 out := new(ListExperimentsResponse) 2524 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/ListExperiments", in, out, opts...) 2525 if err != nil { 2526 return nil, err 2527 } 2528 return out, nil 2529} 2530 2531func (c *experimentsClient) GetExperiment(ctx context.Context, in *GetExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2532 out := new(Experiment) 2533 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/GetExperiment", in, out, opts...) 2534 if err != nil { 2535 return nil, err 2536 } 2537 return out, nil 2538} 2539 2540func (c *experimentsClient) CreateExperiment(ctx context.Context, in *CreateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2541 out := new(Experiment) 2542 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/CreateExperiment", in, out, opts...) 2543 if err != nil { 2544 return nil, err 2545 } 2546 return out, nil 2547} 2548 2549func (c *experimentsClient) UpdateExperiment(ctx context.Context, in *UpdateExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2550 out := new(Experiment) 2551 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/UpdateExperiment", in, out, opts...) 2552 if err != nil { 2553 return nil, err 2554 } 2555 return out, nil 2556} 2557 2558func (c *experimentsClient) DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 2559 out := new(emptypb.Empty) 2560 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/DeleteExperiment", in, out, opts...) 2561 if err != nil { 2562 return nil, err 2563 } 2564 return out, nil 2565} 2566 2567func (c *experimentsClient) StartExperiment(ctx context.Context, in *StartExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2568 out := new(Experiment) 2569 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/StartExperiment", in, out, opts...) 2570 if err != nil { 2571 return nil, err 2572 } 2573 return out, nil 2574} 2575 2576func (c *experimentsClient) StopExperiment(ctx context.Context, in *StopExperimentRequest, opts ...grpc.CallOption) (*Experiment, error) { 2577 out := new(Experiment) 2578 err := c.cc.Invoke(ctx, "/google.cloud.dialogflow.cx.v3.Experiments/StopExperiment", in, out, opts...) 2579 if err != nil { 2580 return nil, err 2581 } 2582 return out, nil 2583} 2584 2585// ExperimentsServer is the server API for Experiments service. 2586type ExperimentsServer interface { 2587 // Returns the list of all experiments in the specified [Environment][google.cloud.dialogflow.cx.v3.Environment]. 2588 ListExperiments(context.Context, *ListExperimentsRequest) (*ListExperimentsResponse, error) 2589 // Retrieves the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2590 GetExperiment(context.Context, *GetExperimentRequest) (*Experiment, error) 2591 // Creates an [Experiment][google.cloud.dialogflow.cx.v3.Experiment] in the specified [Environment][google.cloud.dialogflow.cx.v3.Environment]. 2592 CreateExperiment(context.Context, *CreateExperimentRequest) (*Experiment, error) 2593 // Updates the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2594 UpdateExperiment(context.Context, *UpdateExperimentRequest) (*Experiment, error) 2595 // Deletes the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. 2596 DeleteExperiment(context.Context, *DeleteExperimentRequest) (*emptypb.Empty, error) 2597 // Starts the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. This rpc only changes the state of 2598 // experiment from PENDING to RUNNING. 2599 StartExperiment(context.Context, *StartExperimentRequest) (*Experiment, error) 2600 // Stops the specified [Experiment][google.cloud.dialogflow.cx.v3.Experiment]. This rpc only changes the state of 2601 // experiment from RUNNING to DONE. 2602 StopExperiment(context.Context, *StopExperimentRequest) (*Experiment, error) 2603} 2604 2605// UnimplementedExperimentsServer can be embedded to have forward compatible implementations. 2606type UnimplementedExperimentsServer struct { 2607} 2608 2609func (*UnimplementedExperimentsServer) ListExperiments(context.Context, *ListExperimentsRequest) (*ListExperimentsResponse, error) { 2610 return nil, status.Errorf(codes.Unimplemented, "method ListExperiments not implemented") 2611} 2612func (*UnimplementedExperimentsServer) GetExperiment(context.Context, *GetExperimentRequest) (*Experiment, error) { 2613 return nil, status.Errorf(codes.Unimplemented, "method GetExperiment not implemented") 2614} 2615func (*UnimplementedExperimentsServer) CreateExperiment(context.Context, *CreateExperimentRequest) (*Experiment, error) { 2616 return nil, status.Errorf(codes.Unimplemented, "method CreateExperiment not implemented") 2617} 2618func (*UnimplementedExperimentsServer) UpdateExperiment(context.Context, *UpdateExperimentRequest) (*Experiment, error) { 2619 return nil, status.Errorf(codes.Unimplemented, "method UpdateExperiment not implemented") 2620} 2621func (*UnimplementedExperimentsServer) DeleteExperiment(context.Context, *DeleteExperimentRequest) (*emptypb.Empty, error) { 2622 return nil, status.Errorf(codes.Unimplemented, "method DeleteExperiment not implemented") 2623} 2624func (*UnimplementedExperimentsServer) StartExperiment(context.Context, *StartExperimentRequest) (*Experiment, error) { 2625 return nil, status.Errorf(codes.Unimplemented, "method StartExperiment not implemented") 2626} 2627func (*UnimplementedExperimentsServer) StopExperiment(context.Context, *StopExperimentRequest) (*Experiment, error) { 2628 return nil, status.Errorf(codes.Unimplemented, "method StopExperiment not implemented") 2629} 2630 2631func RegisterExperimentsServer(s *grpc.Server, srv ExperimentsServer) { 2632 s.RegisterService(&_Experiments_serviceDesc, srv) 2633} 2634 2635func _Experiments_ListExperiments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2636 in := new(ListExperimentsRequest) 2637 if err := dec(in); err != nil { 2638 return nil, err 2639 } 2640 if interceptor == nil { 2641 return srv.(ExperimentsServer).ListExperiments(ctx, in) 2642 } 2643 info := &grpc.UnaryServerInfo{ 2644 Server: srv, 2645 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/ListExperiments", 2646 } 2647 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2648 return srv.(ExperimentsServer).ListExperiments(ctx, req.(*ListExperimentsRequest)) 2649 } 2650 return interceptor(ctx, in, info, handler) 2651} 2652 2653func _Experiments_GetExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2654 in := new(GetExperimentRequest) 2655 if err := dec(in); err != nil { 2656 return nil, err 2657 } 2658 if interceptor == nil { 2659 return srv.(ExperimentsServer).GetExperiment(ctx, in) 2660 } 2661 info := &grpc.UnaryServerInfo{ 2662 Server: srv, 2663 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/GetExperiment", 2664 } 2665 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2666 return srv.(ExperimentsServer).GetExperiment(ctx, req.(*GetExperimentRequest)) 2667 } 2668 return interceptor(ctx, in, info, handler) 2669} 2670 2671func _Experiments_CreateExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2672 in := new(CreateExperimentRequest) 2673 if err := dec(in); err != nil { 2674 return nil, err 2675 } 2676 if interceptor == nil { 2677 return srv.(ExperimentsServer).CreateExperiment(ctx, in) 2678 } 2679 info := &grpc.UnaryServerInfo{ 2680 Server: srv, 2681 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/CreateExperiment", 2682 } 2683 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2684 return srv.(ExperimentsServer).CreateExperiment(ctx, req.(*CreateExperimentRequest)) 2685 } 2686 return interceptor(ctx, in, info, handler) 2687} 2688 2689func _Experiments_UpdateExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2690 in := new(UpdateExperimentRequest) 2691 if err := dec(in); err != nil { 2692 return nil, err 2693 } 2694 if interceptor == nil { 2695 return srv.(ExperimentsServer).UpdateExperiment(ctx, in) 2696 } 2697 info := &grpc.UnaryServerInfo{ 2698 Server: srv, 2699 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/UpdateExperiment", 2700 } 2701 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2702 return srv.(ExperimentsServer).UpdateExperiment(ctx, req.(*UpdateExperimentRequest)) 2703 } 2704 return interceptor(ctx, in, info, handler) 2705} 2706 2707func _Experiments_DeleteExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2708 in := new(DeleteExperimentRequest) 2709 if err := dec(in); err != nil { 2710 return nil, err 2711 } 2712 if interceptor == nil { 2713 return srv.(ExperimentsServer).DeleteExperiment(ctx, in) 2714 } 2715 info := &grpc.UnaryServerInfo{ 2716 Server: srv, 2717 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/DeleteExperiment", 2718 } 2719 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2720 return srv.(ExperimentsServer).DeleteExperiment(ctx, req.(*DeleteExperimentRequest)) 2721 } 2722 return interceptor(ctx, in, info, handler) 2723} 2724 2725func _Experiments_StartExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2726 in := new(StartExperimentRequest) 2727 if err := dec(in); err != nil { 2728 return nil, err 2729 } 2730 if interceptor == nil { 2731 return srv.(ExperimentsServer).StartExperiment(ctx, in) 2732 } 2733 info := &grpc.UnaryServerInfo{ 2734 Server: srv, 2735 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/StartExperiment", 2736 } 2737 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2738 return srv.(ExperimentsServer).StartExperiment(ctx, req.(*StartExperimentRequest)) 2739 } 2740 return interceptor(ctx, in, info, handler) 2741} 2742 2743func _Experiments_StopExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2744 in := new(StopExperimentRequest) 2745 if err := dec(in); err != nil { 2746 return nil, err 2747 } 2748 if interceptor == nil { 2749 return srv.(ExperimentsServer).StopExperiment(ctx, in) 2750 } 2751 info := &grpc.UnaryServerInfo{ 2752 Server: srv, 2753 FullMethod: "/google.cloud.dialogflow.cx.v3.Experiments/StopExperiment", 2754 } 2755 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2756 return srv.(ExperimentsServer).StopExperiment(ctx, req.(*StopExperimentRequest)) 2757 } 2758 return interceptor(ctx, in, info, handler) 2759} 2760 2761var _Experiments_serviceDesc = grpc.ServiceDesc{ 2762 ServiceName: "google.cloud.dialogflow.cx.v3.Experiments", 2763 HandlerType: (*ExperimentsServer)(nil), 2764 Methods: []grpc.MethodDesc{ 2765 { 2766 MethodName: "ListExperiments", 2767 Handler: _Experiments_ListExperiments_Handler, 2768 }, 2769 { 2770 MethodName: "GetExperiment", 2771 Handler: _Experiments_GetExperiment_Handler, 2772 }, 2773 { 2774 MethodName: "CreateExperiment", 2775 Handler: _Experiments_CreateExperiment_Handler, 2776 }, 2777 { 2778 MethodName: "UpdateExperiment", 2779 Handler: _Experiments_UpdateExperiment_Handler, 2780 }, 2781 { 2782 MethodName: "DeleteExperiment", 2783 Handler: _Experiments_DeleteExperiment_Handler, 2784 }, 2785 { 2786 MethodName: "StartExperiment", 2787 Handler: _Experiments_StartExperiment_Handler, 2788 }, 2789 { 2790 MethodName: "StopExperiment", 2791 Handler: _Experiments_StopExperiment_Handler, 2792 }, 2793 }, 2794 Streams: []grpc.StreamDesc{}, 2795 Metadata: "google/cloud/dialogflow/cx/v3/experiment.proto", 2796} 2797