1// Copyright 2016-18, OpenCensus Authors
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.25.0
18// 	protoc        v3.12.3
19// source: opencensus/proto/stats/v1/stats.proto
20
21package v1
22
23import (
24	proto "github.com/golang/protobuf/proto"
25	timestamp "github.com/golang/protobuf/ptypes/timestamp"
26	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
27	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
28	reflect "reflect"
29	sync "sync"
30)
31
32const (
33	// Verify that this generated code is sufficiently up-to-date.
34	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
35	// Verify that runtime/protoimpl is sufficiently up-to-date.
36	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
37)
38
39// This is a compile-time assertion that a sufficiently up-to-date version
40// of the legacy proto package is being used.
41const _ = proto.ProtoPackageIsVersion4
42
43type Measure_Type int32
44
45const (
46	// Unknown type.
47	Measure_TYPE_UNSPECIFIED Measure_Type = 0
48	// Indicates an int64 Measure.
49	Measure_INT64 Measure_Type = 1
50	// Indicates a double Measure.
51	Measure_DOUBLE Measure_Type = 2
52)
53
54// Enum value maps for Measure_Type.
55var (
56	Measure_Type_name = map[int32]string{
57		0: "TYPE_UNSPECIFIED",
58		1: "INT64",
59		2: "DOUBLE",
60	}
61	Measure_Type_value = map[string]int32{
62		"TYPE_UNSPECIFIED": 0,
63		"INT64":            1,
64		"DOUBLE":           2,
65	}
66)
67
68func (x Measure_Type) Enum() *Measure_Type {
69	p := new(Measure_Type)
70	*p = x
71	return p
72}
73
74func (x Measure_Type) String() string {
75	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
76}
77
78func (Measure_Type) Descriptor() protoreflect.EnumDescriptor {
79	return file_opencensus_proto_stats_v1_stats_proto_enumTypes[0].Descriptor()
80}
81
82func (Measure_Type) Type() protoreflect.EnumType {
83	return &file_opencensus_proto_stats_v1_stats_proto_enumTypes[0]
84}
85
86func (x Measure_Type) Number() protoreflect.EnumNumber {
87	return protoreflect.EnumNumber(x)
88}
89
90// Deprecated: Use Measure_Type.Descriptor instead.
91func (Measure_Type) EnumDescriptor() ([]byte, []int) {
92	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{1, 0}
93}
94
95// TODO(bdrutu): Consider if this should be moved to a "tags" directory to match the API structure.
96type Tag struct {
97	state         protoimpl.MessageState
98	sizeCache     protoimpl.SizeCache
99	unknownFields protoimpl.UnknownFields
100
101	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
102	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
103}
104
105func (x *Tag) Reset() {
106	*x = Tag{}
107	if protoimpl.UnsafeEnabled {
108		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[0]
109		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
110		ms.StoreMessageInfo(mi)
111	}
112}
113
114func (x *Tag) String() string {
115	return protoimpl.X.MessageStringOf(x)
116}
117
118func (*Tag) ProtoMessage() {}
119
120func (x *Tag) ProtoReflect() protoreflect.Message {
121	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[0]
122	if protoimpl.UnsafeEnabled && x != nil {
123		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
124		if ms.LoadMessageInfo() == nil {
125			ms.StoreMessageInfo(mi)
126		}
127		return ms
128	}
129	return mi.MessageOf(x)
130}
131
132// Deprecated: Use Tag.ProtoReflect.Descriptor instead.
133func (*Tag) Descriptor() ([]byte, []int) {
134	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{0}
135}
136
137func (x *Tag) GetKey() string {
138	if x != nil {
139		return x.Key
140	}
141	return ""
142}
143
144func (x *Tag) GetValue() string {
145	if x != nil {
146		return x.Value
147	}
148	return ""
149}
150
151// Measure .
152type Measure struct {
153	state         protoimpl.MessageState
154	sizeCache     protoimpl.SizeCache
155	unknownFields protoimpl.UnknownFields
156
157	// A string by which the measure will be referred to, e.g. "rpc_server_latency". Names MUST be
158	// unique within the library.
159	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
160	// Describes the measure, e.g. "RPC latency in seconds".
161	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
162	// Describes the unit used for the Measure. Follows the format described by
163	// http://unitsofmeasure.org/ucum.html.
164	Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
165	// The type used for this Measure.
166	Type Measure_Type `protobuf:"varint,4,opt,name=type,proto3,enum=opencensus.proto.stats.v1.Measure_Type" json:"type,omitempty"`
167}
168
169func (x *Measure) Reset() {
170	*x = Measure{}
171	if protoimpl.UnsafeEnabled {
172		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[1]
173		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
174		ms.StoreMessageInfo(mi)
175	}
176}
177
178func (x *Measure) String() string {
179	return protoimpl.X.MessageStringOf(x)
180}
181
182func (*Measure) ProtoMessage() {}
183
184func (x *Measure) ProtoReflect() protoreflect.Message {
185	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[1]
186	if protoimpl.UnsafeEnabled && x != nil {
187		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
188		if ms.LoadMessageInfo() == nil {
189			ms.StoreMessageInfo(mi)
190		}
191		return ms
192	}
193	return mi.MessageOf(x)
194}
195
196// Deprecated: Use Measure.ProtoReflect.Descriptor instead.
197func (*Measure) Descriptor() ([]byte, []int) {
198	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{1}
199}
200
201func (x *Measure) GetName() string {
202	if x != nil {
203		return x.Name
204	}
205	return ""
206}
207
208func (x *Measure) GetDescription() string {
209	if x != nil {
210		return x.Description
211	}
212	return ""
213}
214
215func (x *Measure) GetUnit() string {
216	if x != nil {
217		return x.Unit
218	}
219	return ""
220}
221
222func (x *Measure) GetType() Measure_Type {
223	if x != nil {
224		return x.Type
225	}
226	return Measure_TYPE_UNSPECIFIED
227}
228
229type View struct {
230	state         protoimpl.MessageState
231	sizeCache     protoimpl.SizeCache
232	unknownFields protoimpl.UnknownFields
233
234	// A string by which the View will be referred to, e.g. "rpc_latency". Names MUST be unique
235	// within the library.
236	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
237	// Describes the view, e.g. "RPC latency distribution"
238	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
239	// The Measure to which this view is applied.
240	Measure *Measure `protobuf:"bytes,3,opt,name=measure,proto3" json:"measure,omitempty"`
241	// An array of tag keys. These values associated with tags of this name form the basis by which
242	// individual stats will be aggregated (one aggregation per unique tag value). If none are
243	// provided, then all data is recorded in a single aggregation.
244	Columns []string `protobuf:"bytes,4,rep,name=columns,proto3" json:"columns,omitempty"`
245	// The description of the aggregation used for this view which describes how data collected are
246	// aggregated.
247	//
248	// Types that are assignable to Aggregation:
249	//	*View_CountAggregation
250	//	*View_SumAggregation
251	//	*View_LastValueAggregation
252	//	*View_DistributionAggregation
253	Aggregation isView_Aggregation `protobuf_oneof:"aggregation"`
254}
255
256func (x *View) Reset() {
257	*x = View{}
258	if protoimpl.UnsafeEnabled {
259		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[2]
260		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
261		ms.StoreMessageInfo(mi)
262	}
263}
264
265func (x *View) String() string {
266	return protoimpl.X.MessageStringOf(x)
267}
268
269func (*View) ProtoMessage() {}
270
271func (x *View) ProtoReflect() protoreflect.Message {
272	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[2]
273	if protoimpl.UnsafeEnabled && x != nil {
274		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
275		if ms.LoadMessageInfo() == nil {
276			ms.StoreMessageInfo(mi)
277		}
278		return ms
279	}
280	return mi.MessageOf(x)
281}
282
283// Deprecated: Use View.ProtoReflect.Descriptor instead.
284func (*View) Descriptor() ([]byte, []int) {
285	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{2}
286}
287
288func (x *View) GetName() string {
289	if x != nil {
290		return x.Name
291	}
292	return ""
293}
294
295func (x *View) GetDescription() string {
296	if x != nil {
297		return x.Description
298	}
299	return ""
300}
301
302func (x *View) GetMeasure() *Measure {
303	if x != nil {
304		return x.Measure
305	}
306	return nil
307}
308
309func (x *View) GetColumns() []string {
310	if x != nil {
311		return x.Columns
312	}
313	return nil
314}
315
316func (m *View) GetAggregation() isView_Aggregation {
317	if m != nil {
318		return m.Aggregation
319	}
320	return nil
321}
322
323func (x *View) GetCountAggregation() *CountAggregation {
324	if x, ok := x.GetAggregation().(*View_CountAggregation); ok {
325		return x.CountAggregation
326	}
327	return nil
328}
329
330func (x *View) GetSumAggregation() *SumAggregation {
331	if x, ok := x.GetAggregation().(*View_SumAggregation); ok {
332		return x.SumAggregation
333	}
334	return nil
335}
336
337func (x *View) GetLastValueAggregation() *LastValueAggregation {
338	if x, ok := x.GetAggregation().(*View_LastValueAggregation); ok {
339		return x.LastValueAggregation
340	}
341	return nil
342}
343
344func (x *View) GetDistributionAggregation() *DistributionAggregation {
345	if x, ok := x.GetAggregation().(*View_DistributionAggregation); ok {
346		return x.DistributionAggregation
347	}
348	return nil
349}
350
351type isView_Aggregation interface {
352	isView_Aggregation()
353}
354
355type View_CountAggregation struct {
356	// Counts the number of measurements recorded.
357	CountAggregation *CountAggregation `protobuf:"bytes,5,opt,name=count_aggregation,json=countAggregation,proto3,oneof"`
358}
359
360type View_SumAggregation struct {
361	// Indicates that data collected and aggregated with this Aggregation will be summed up.
362	SumAggregation *SumAggregation `protobuf:"bytes,6,opt,name=sum_aggregation,json=sumAggregation,proto3,oneof"`
363}
364
365type View_LastValueAggregation struct {
366	// Indicates that data collected and aggregated with this Aggregation will represent the last
367	// recorded value. This is useful to support Gauges.
368	LastValueAggregation *LastValueAggregation `protobuf:"bytes,7,opt,name=last_value_aggregation,json=lastValueAggregation,proto3,oneof"`
369}
370
371type View_DistributionAggregation struct {
372	// Indicates that the desired Aggregation is a histogram distribution. A distribution
373	// Aggregation may contain a histogram of the values in the population. User should define the
374	// bucket boundaries for that histogram (see DistributionAggregation).
375	DistributionAggregation *DistributionAggregation `protobuf:"bytes,8,opt,name=distribution_aggregation,json=distributionAggregation,proto3,oneof"`
376}
377
378func (*View_CountAggregation) isView_Aggregation() {}
379
380func (*View_SumAggregation) isView_Aggregation() {}
381
382func (*View_LastValueAggregation) isView_Aggregation() {}
383
384func (*View_DistributionAggregation) isView_Aggregation() {}
385
386type CountAggregation struct {
387	state         protoimpl.MessageState
388	sizeCache     protoimpl.SizeCache
389	unknownFields protoimpl.UnknownFields
390}
391
392func (x *CountAggregation) Reset() {
393	*x = CountAggregation{}
394	if protoimpl.UnsafeEnabled {
395		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[3]
396		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
397		ms.StoreMessageInfo(mi)
398	}
399}
400
401func (x *CountAggregation) String() string {
402	return protoimpl.X.MessageStringOf(x)
403}
404
405func (*CountAggregation) ProtoMessage() {}
406
407func (x *CountAggregation) ProtoReflect() protoreflect.Message {
408	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[3]
409	if protoimpl.UnsafeEnabled && x != nil {
410		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
411		if ms.LoadMessageInfo() == nil {
412			ms.StoreMessageInfo(mi)
413		}
414		return ms
415	}
416	return mi.MessageOf(x)
417}
418
419// Deprecated: Use CountAggregation.ProtoReflect.Descriptor instead.
420func (*CountAggregation) Descriptor() ([]byte, []int) {
421	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{3}
422}
423
424type SumAggregation struct {
425	state         protoimpl.MessageState
426	sizeCache     protoimpl.SizeCache
427	unknownFields protoimpl.UnknownFields
428}
429
430func (x *SumAggregation) Reset() {
431	*x = SumAggregation{}
432	if protoimpl.UnsafeEnabled {
433		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[4]
434		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
435		ms.StoreMessageInfo(mi)
436	}
437}
438
439func (x *SumAggregation) String() string {
440	return protoimpl.X.MessageStringOf(x)
441}
442
443func (*SumAggregation) ProtoMessage() {}
444
445func (x *SumAggregation) ProtoReflect() protoreflect.Message {
446	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[4]
447	if protoimpl.UnsafeEnabled && x != nil {
448		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
449		if ms.LoadMessageInfo() == nil {
450			ms.StoreMessageInfo(mi)
451		}
452		return ms
453	}
454	return mi.MessageOf(x)
455}
456
457// Deprecated: Use SumAggregation.ProtoReflect.Descriptor instead.
458func (*SumAggregation) Descriptor() ([]byte, []int) {
459	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{4}
460}
461
462type LastValueAggregation struct {
463	state         protoimpl.MessageState
464	sizeCache     protoimpl.SizeCache
465	unknownFields protoimpl.UnknownFields
466}
467
468func (x *LastValueAggregation) Reset() {
469	*x = LastValueAggregation{}
470	if protoimpl.UnsafeEnabled {
471		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[5]
472		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
473		ms.StoreMessageInfo(mi)
474	}
475}
476
477func (x *LastValueAggregation) String() string {
478	return protoimpl.X.MessageStringOf(x)
479}
480
481func (*LastValueAggregation) ProtoMessage() {}
482
483func (x *LastValueAggregation) ProtoReflect() protoreflect.Message {
484	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[5]
485	if protoimpl.UnsafeEnabled && x != nil {
486		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
487		if ms.LoadMessageInfo() == nil {
488			ms.StoreMessageInfo(mi)
489		}
490		return ms
491	}
492	return mi.MessageOf(x)
493}
494
495// Deprecated: Use LastValueAggregation.ProtoReflect.Descriptor instead.
496func (*LastValueAggregation) Descriptor() ([]byte, []int) {
497	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{5}
498}
499
500type DistributionAggregation struct {
501	state         protoimpl.MessageState
502	sizeCache     protoimpl.SizeCache
503	unknownFields protoimpl.UnknownFields
504
505	// A Distribution may optionally contain a histogram of the values in the
506	// population. The bucket boundaries for that histogram are described by
507	// `bucket_bounds`. This defines `size(bucket_bounds) + 1` (= N)
508	// buckets. The boundaries for bucket index i are:
509	//
510	// (-infinity, bucket_bounds[i]) for i == 0
511	// [bucket_bounds[i-1], bucket_bounds[i]) for 0 < i < N-2
512	// [bucket_bounds[i-1], +infinity) for i == N-1
513	//
514	// i.e. an underflow bucket (number 0), zero or more finite buckets (1
515	// through N - 2, and an overflow bucket (N - 1), with inclusive lower
516	// bounds and exclusive upper bounds.
517	//
518	// If `bucket_bounds` has no elements (zero size), then there is no
519	// histogram associated with the Distribution. If `bucket_bounds` has only
520	// one element, there are no finite buckets, and that single element is the
521	// common boundary of the overflow and underflow buckets. The values must
522	// be monotonically increasing.
523	BucketBounds []float64 `protobuf:"fixed64,1,rep,packed,name=bucket_bounds,json=bucketBounds,proto3" json:"bucket_bounds,omitempty"`
524}
525
526func (x *DistributionAggregation) Reset() {
527	*x = DistributionAggregation{}
528	if protoimpl.UnsafeEnabled {
529		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[6]
530		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
531		ms.StoreMessageInfo(mi)
532	}
533}
534
535func (x *DistributionAggregation) String() string {
536	return protoimpl.X.MessageStringOf(x)
537}
538
539func (*DistributionAggregation) ProtoMessage() {}
540
541func (x *DistributionAggregation) ProtoReflect() protoreflect.Message {
542	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[6]
543	if protoimpl.UnsafeEnabled && x != nil {
544		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
545		if ms.LoadMessageInfo() == nil {
546			ms.StoreMessageInfo(mi)
547		}
548		return ms
549	}
550	return mi.MessageOf(x)
551}
552
553// Deprecated: Use DistributionAggregation.ProtoReflect.Descriptor instead.
554func (*DistributionAggregation) Descriptor() ([]byte, []int) {
555	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{6}
556}
557
558func (x *DistributionAggregation) GetBucketBounds() []float64 {
559	if x != nil {
560		return x.BucketBounds
561	}
562	return nil
563}
564
565// Describes a data point to be collected for a Measure.
566type Measurement struct {
567	state         protoimpl.MessageState
568	sizeCache     protoimpl.SizeCache
569	unknownFields protoimpl.UnknownFields
570
571	Tags []*Tag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"`
572	// The name of the measure to which the value is applied.
573	MeasureName string `protobuf:"bytes,2,opt,name=measure_name,json=measureName,proto3" json:"measure_name,omitempty"`
574	// The recorded value, MUST have the appropriate type to match the Measure.
575	//
576	// Types that are assignable to Value:
577	//	*Measurement_DoubleValue
578	//	*Measurement_IntValue
579	Value isMeasurement_Value `protobuf_oneof:"value"`
580	// The time when this measurement was recorded. If the implementation uses a async buffer to
581	// record measurements this may be the time when the measurement was read from the buffer.
582	Time *timestamp.Timestamp `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"`
583}
584
585func (x *Measurement) Reset() {
586	*x = Measurement{}
587	if protoimpl.UnsafeEnabled {
588		mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[7]
589		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
590		ms.StoreMessageInfo(mi)
591	}
592}
593
594func (x *Measurement) String() string {
595	return protoimpl.X.MessageStringOf(x)
596}
597
598func (*Measurement) ProtoMessage() {}
599
600func (x *Measurement) ProtoReflect() protoreflect.Message {
601	mi := &file_opencensus_proto_stats_v1_stats_proto_msgTypes[7]
602	if protoimpl.UnsafeEnabled && x != nil {
603		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
604		if ms.LoadMessageInfo() == nil {
605			ms.StoreMessageInfo(mi)
606		}
607		return ms
608	}
609	return mi.MessageOf(x)
610}
611
612// Deprecated: Use Measurement.ProtoReflect.Descriptor instead.
613func (*Measurement) Descriptor() ([]byte, []int) {
614	return file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP(), []int{7}
615}
616
617func (x *Measurement) GetTags() []*Tag {
618	if x != nil {
619		return x.Tags
620	}
621	return nil
622}
623
624func (x *Measurement) GetMeasureName() string {
625	if x != nil {
626		return x.MeasureName
627	}
628	return ""
629}
630
631func (m *Measurement) GetValue() isMeasurement_Value {
632	if m != nil {
633		return m.Value
634	}
635	return nil
636}
637
638func (x *Measurement) GetDoubleValue() float64 {
639	if x, ok := x.GetValue().(*Measurement_DoubleValue); ok {
640		return x.DoubleValue
641	}
642	return 0
643}
644
645func (x *Measurement) GetIntValue() int64 {
646	if x, ok := x.GetValue().(*Measurement_IntValue); ok {
647		return x.IntValue
648	}
649	return 0
650}
651
652func (x *Measurement) GetTime() *timestamp.Timestamp {
653	if x != nil {
654		return x.Time
655	}
656	return nil
657}
658
659type isMeasurement_Value interface {
660	isMeasurement_Value()
661}
662
663type Measurement_DoubleValue struct {
664	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
665}
666
667type Measurement_IntValue struct {
668	IntValue int64 `protobuf:"varint,4,opt,name=int_value,json=intValue,proto3,oneof"`
669}
670
671func (*Measurement_DoubleValue) isMeasurement_Value() {}
672
673func (*Measurement_IntValue) isMeasurement_Value() {}
674
675var File_opencensus_proto_stats_v1_stats_proto protoreflect.FileDescriptor
676
677var file_opencensus_proto_stats_v1_stats_proto_rawDesc = []byte{
678	0x0a, 0x25, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
679	0x74, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74,
680	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
681	0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e,
682	0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
683	0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
684	0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
685	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
686	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
687	0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x12,
688	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
689	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
690	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
691	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01,
692	0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
693	0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
694	0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e,
695	0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
696	0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
697	0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
698	0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x01, 0x12, 0x0a,
699	0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xaf, 0x04, 0x0a, 0x04, 0x56,
700	0x69, 0x65, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
701	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
702	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
703	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x65, 0x61,
704	0x73, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65,
705	0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74,
706	0x61, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x52, 0x07,
707	0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
708	0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
709	0x73, 0x12, 0x5a, 0x0a, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65,
710	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f,
711	0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
712	0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x67,
713	0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x75,
714	0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a,
715	0x0f, 0x73, 0x75, 0x6d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
716	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
717	0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e,
718	0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
719	0x6e, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x75, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
720	0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75,
721	0x65, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20,
722	0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
723	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e,
724	0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
725	0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75,
726	0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x18,
727	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x67, 0x67,
728	0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32,
729	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
730	0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72,
731	0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69,
732	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
733	0x6f, 0x6e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a,
734	0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x12, 0x0a, 0x10,
735	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
736	0x22, 0x10, 0x0a, 0x0e, 0x53, 0x75, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69,
737	0x6f, 0x6e, 0x22, 0x16, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41,
738	0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x0a, 0x17, 0x44, 0x69,
739	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
740	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f,
741	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0c, 0x62, 0x75,
742	0x63, 0x6b, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x0b, 0x4d,
743	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x61,
744	0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
745	0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74,
746	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x21,
747	0x0a, 0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
748	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d,
749	0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75,
750	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c,
751	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61,
752	0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74,
753	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
754	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
755	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
756	0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x8c,
757	0x01, 0x0a, 0x1c, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
758	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42,
759	0x0a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67,
760	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
761	0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
762	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74,
763	0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x76,
764	0x31, 0xea, 0x02, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x50,
765	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x56, 0x31, 0x62, 0x06, 0x70,
766	0x72, 0x6f, 0x74, 0x6f, 0x33,
767}
768
769var (
770	file_opencensus_proto_stats_v1_stats_proto_rawDescOnce sync.Once
771	file_opencensus_proto_stats_v1_stats_proto_rawDescData = file_opencensus_proto_stats_v1_stats_proto_rawDesc
772)
773
774func file_opencensus_proto_stats_v1_stats_proto_rawDescGZIP() []byte {
775	file_opencensus_proto_stats_v1_stats_proto_rawDescOnce.Do(func() {
776		file_opencensus_proto_stats_v1_stats_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_stats_v1_stats_proto_rawDescData)
777	})
778	return file_opencensus_proto_stats_v1_stats_proto_rawDescData
779}
780
781var file_opencensus_proto_stats_v1_stats_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
782var file_opencensus_proto_stats_v1_stats_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
783var file_opencensus_proto_stats_v1_stats_proto_goTypes = []interface{}{
784	(Measure_Type)(0),               // 0: opencensus.proto.stats.v1.Measure.Type
785	(*Tag)(nil),                     // 1: opencensus.proto.stats.v1.Tag
786	(*Measure)(nil),                 // 2: opencensus.proto.stats.v1.Measure
787	(*View)(nil),                    // 3: opencensus.proto.stats.v1.View
788	(*CountAggregation)(nil),        // 4: opencensus.proto.stats.v1.CountAggregation
789	(*SumAggregation)(nil),          // 5: opencensus.proto.stats.v1.SumAggregation
790	(*LastValueAggregation)(nil),    // 6: opencensus.proto.stats.v1.LastValueAggregation
791	(*DistributionAggregation)(nil), // 7: opencensus.proto.stats.v1.DistributionAggregation
792	(*Measurement)(nil),             // 8: opencensus.proto.stats.v1.Measurement
793	(*timestamp.Timestamp)(nil),     // 9: google.protobuf.Timestamp
794}
795var file_opencensus_proto_stats_v1_stats_proto_depIdxs = []int32{
796	0, // 0: opencensus.proto.stats.v1.Measure.type:type_name -> opencensus.proto.stats.v1.Measure.Type
797	2, // 1: opencensus.proto.stats.v1.View.measure:type_name -> opencensus.proto.stats.v1.Measure
798	4, // 2: opencensus.proto.stats.v1.View.count_aggregation:type_name -> opencensus.proto.stats.v1.CountAggregation
799	5, // 3: opencensus.proto.stats.v1.View.sum_aggregation:type_name -> opencensus.proto.stats.v1.SumAggregation
800	6, // 4: opencensus.proto.stats.v1.View.last_value_aggregation:type_name -> opencensus.proto.stats.v1.LastValueAggregation
801	7, // 5: opencensus.proto.stats.v1.View.distribution_aggregation:type_name -> opencensus.proto.stats.v1.DistributionAggregation
802	1, // 6: opencensus.proto.stats.v1.Measurement.tags:type_name -> opencensus.proto.stats.v1.Tag
803	9, // 7: opencensus.proto.stats.v1.Measurement.time:type_name -> google.protobuf.Timestamp
804	8, // [8:8] is the sub-list for method output_type
805	8, // [8:8] is the sub-list for method input_type
806	8, // [8:8] is the sub-list for extension type_name
807	8, // [8:8] is the sub-list for extension extendee
808	0, // [0:8] is the sub-list for field type_name
809}
810
811func init() { file_opencensus_proto_stats_v1_stats_proto_init() }
812func file_opencensus_proto_stats_v1_stats_proto_init() {
813	if File_opencensus_proto_stats_v1_stats_proto != nil {
814		return
815	}
816	if !protoimpl.UnsafeEnabled {
817		file_opencensus_proto_stats_v1_stats_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
818			switch v := v.(*Tag); i {
819			case 0:
820				return &v.state
821			case 1:
822				return &v.sizeCache
823			case 2:
824				return &v.unknownFields
825			default:
826				return nil
827			}
828		}
829		file_opencensus_proto_stats_v1_stats_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
830			switch v := v.(*Measure); i {
831			case 0:
832				return &v.state
833			case 1:
834				return &v.sizeCache
835			case 2:
836				return &v.unknownFields
837			default:
838				return nil
839			}
840		}
841		file_opencensus_proto_stats_v1_stats_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
842			switch v := v.(*View); i {
843			case 0:
844				return &v.state
845			case 1:
846				return &v.sizeCache
847			case 2:
848				return &v.unknownFields
849			default:
850				return nil
851			}
852		}
853		file_opencensus_proto_stats_v1_stats_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
854			switch v := v.(*CountAggregation); i {
855			case 0:
856				return &v.state
857			case 1:
858				return &v.sizeCache
859			case 2:
860				return &v.unknownFields
861			default:
862				return nil
863			}
864		}
865		file_opencensus_proto_stats_v1_stats_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
866			switch v := v.(*SumAggregation); i {
867			case 0:
868				return &v.state
869			case 1:
870				return &v.sizeCache
871			case 2:
872				return &v.unknownFields
873			default:
874				return nil
875			}
876		}
877		file_opencensus_proto_stats_v1_stats_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
878			switch v := v.(*LastValueAggregation); i {
879			case 0:
880				return &v.state
881			case 1:
882				return &v.sizeCache
883			case 2:
884				return &v.unknownFields
885			default:
886				return nil
887			}
888		}
889		file_opencensus_proto_stats_v1_stats_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
890			switch v := v.(*DistributionAggregation); i {
891			case 0:
892				return &v.state
893			case 1:
894				return &v.sizeCache
895			case 2:
896				return &v.unknownFields
897			default:
898				return nil
899			}
900		}
901		file_opencensus_proto_stats_v1_stats_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
902			switch v := v.(*Measurement); i {
903			case 0:
904				return &v.state
905			case 1:
906				return &v.sizeCache
907			case 2:
908				return &v.unknownFields
909			default:
910				return nil
911			}
912		}
913	}
914	file_opencensus_proto_stats_v1_stats_proto_msgTypes[2].OneofWrappers = []interface{}{
915		(*View_CountAggregation)(nil),
916		(*View_SumAggregation)(nil),
917		(*View_LastValueAggregation)(nil),
918		(*View_DistributionAggregation)(nil),
919	}
920	file_opencensus_proto_stats_v1_stats_proto_msgTypes[7].OneofWrappers = []interface{}{
921		(*Measurement_DoubleValue)(nil),
922		(*Measurement_IntValue)(nil),
923	}
924	type x struct{}
925	out := protoimpl.TypeBuilder{
926		File: protoimpl.DescBuilder{
927			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
928			RawDescriptor: file_opencensus_proto_stats_v1_stats_proto_rawDesc,
929			NumEnums:      1,
930			NumMessages:   8,
931			NumExtensions: 0,
932			NumServices:   0,
933		},
934		GoTypes:           file_opencensus_proto_stats_v1_stats_proto_goTypes,
935		DependencyIndexes: file_opencensus_proto_stats_v1_stats_proto_depIdxs,
936		EnumInfos:         file_opencensus_proto_stats_v1_stats_proto_enumTypes,
937		MessageInfos:      file_opencensus_proto_stats_v1_stats_proto_msgTypes,
938	}.Build()
939	File_opencensus_proto_stats_v1_stats_proto = out.File
940	file_opencensus_proto_stats_v1_stats_proto_rawDesc = nil
941	file_opencensus_proto_stats_v1_stats_proto_goTypes = nil
942	file_opencensus_proto_stats_v1_stats_proto_depIdxs = nil
943}
944