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