1// Copyright 2015 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.25.0-devel
18// 	protoc        v3.12.2
19// source: google/api/metric.proto
20
21package metric
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
28	api "google.golang.org/genproto/googleapis/api"
29	label "google.golang.org/genproto/googleapis/api/label"
30	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
31	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
32	durationpb "google.golang.org/protobuf/types/known/durationpb"
33)
34
35const (
36	// Verify that this generated code is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
38	// Verify that runtime/protoimpl is sufficiently up-to-date.
39	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
40)
41
42// This is a compile-time assertion that a sufficiently up-to-date version
43// of the legacy proto package is being used.
44const _ = proto.ProtoPackageIsVersion4
45
46// The kind of measurement. It describes how the data is reported.
47// For information on setting the start time and end time based on
48// the MetricKind, see [TimeInterval][google.monitoring.v3.TimeInterval].
49type MetricDescriptor_MetricKind int32
50
51const (
52	// Do not use this default value.
53	MetricDescriptor_METRIC_KIND_UNSPECIFIED MetricDescriptor_MetricKind = 0
54	// An instantaneous measurement of a value.
55	MetricDescriptor_GAUGE MetricDescriptor_MetricKind = 1
56	// The change in a value during a time interval.
57	MetricDescriptor_DELTA MetricDescriptor_MetricKind = 2
58	// A value accumulated over a time interval.  Cumulative
59	// measurements in a time series should have the same start time
60	// and increasing end times, until an event resets the cumulative
61	// value to zero and sets a new start time for the following
62	// points.
63	MetricDescriptor_CUMULATIVE MetricDescriptor_MetricKind = 3
64)
65
66// Enum value maps for MetricDescriptor_MetricKind.
67var (
68	MetricDescriptor_MetricKind_name = map[int32]string{
69		0: "METRIC_KIND_UNSPECIFIED",
70		1: "GAUGE",
71		2: "DELTA",
72		3: "CUMULATIVE",
73	}
74	MetricDescriptor_MetricKind_value = map[string]int32{
75		"METRIC_KIND_UNSPECIFIED": 0,
76		"GAUGE":                   1,
77		"DELTA":                   2,
78		"CUMULATIVE":              3,
79	}
80)
81
82func (x MetricDescriptor_MetricKind) Enum() *MetricDescriptor_MetricKind {
83	p := new(MetricDescriptor_MetricKind)
84	*p = x
85	return p
86}
87
88func (x MetricDescriptor_MetricKind) String() string {
89	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
90}
91
92func (MetricDescriptor_MetricKind) Descriptor() protoreflect.EnumDescriptor {
93	return file_google_api_metric_proto_enumTypes[0].Descriptor()
94}
95
96func (MetricDescriptor_MetricKind) Type() protoreflect.EnumType {
97	return &file_google_api_metric_proto_enumTypes[0]
98}
99
100func (x MetricDescriptor_MetricKind) Number() protoreflect.EnumNumber {
101	return protoreflect.EnumNumber(x)
102}
103
104// Deprecated: Use MetricDescriptor_MetricKind.Descriptor instead.
105func (MetricDescriptor_MetricKind) EnumDescriptor() ([]byte, []int) {
106	return file_google_api_metric_proto_rawDescGZIP(), []int{0, 0}
107}
108
109// The value type of a metric.
110type MetricDescriptor_ValueType int32
111
112const (
113	// Do not use this default value.
114	MetricDescriptor_VALUE_TYPE_UNSPECIFIED MetricDescriptor_ValueType = 0
115	// The value is a boolean.
116	// This value type can be used only if the metric kind is `GAUGE`.
117	MetricDescriptor_BOOL MetricDescriptor_ValueType = 1
118	// The value is a signed 64-bit integer.
119	MetricDescriptor_INT64 MetricDescriptor_ValueType = 2
120	// The value is a double precision floating point number.
121	MetricDescriptor_DOUBLE MetricDescriptor_ValueType = 3
122	// The value is a text string.
123	// This value type can be used only if the metric kind is `GAUGE`.
124	MetricDescriptor_STRING MetricDescriptor_ValueType = 4
125	// The value is a [`Distribution`][google.api.Distribution].
126	MetricDescriptor_DISTRIBUTION MetricDescriptor_ValueType = 5
127	// The value is money.
128	MetricDescriptor_MONEY MetricDescriptor_ValueType = 6
129)
130
131// Enum value maps for MetricDescriptor_ValueType.
132var (
133	MetricDescriptor_ValueType_name = map[int32]string{
134		0: "VALUE_TYPE_UNSPECIFIED",
135		1: "BOOL",
136		2: "INT64",
137		3: "DOUBLE",
138		4: "STRING",
139		5: "DISTRIBUTION",
140		6: "MONEY",
141	}
142	MetricDescriptor_ValueType_value = map[string]int32{
143		"VALUE_TYPE_UNSPECIFIED": 0,
144		"BOOL":                   1,
145		"INT64":                  2,
146		"DOUBLE":                 3,
147		"STRING":                 4,
148		"DISTRIBUTION":           5,
149		"MONEY":                  6,
150	}
151)
152
153func (x MetricDescriptor_ValueType) Enum() *MetricDescriptor_ValueType {
154	p := new(MetricDescriptor_ValueType)
155	*p = x
156	return p
157}
158
159func (x MetricDescriptor_ValueType) String() string {
160	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
161}
162
163func (MetricDescriptor_ValueType) Descriptor() protoreflect.EnumDescriptor {
164	return file_google_api_metric_proto_enumTypes[1].Descriptor()
165}
166
167func (MetricDescriptor_ValueType) Type() protoreflect.EnumType {
168	return &file_google_api_metric_proto_enumTypes[1]
169}
170
171func (x MetricDescriptor_ValueType) Number() protoreflect.EnumNumber {
172	return protoreflect.EnumNumber(x)
173}
174
175// Deprecated: Use MetricDescriptor_ValueType.Descriptor instead.
176func (MetricDescriptor_ValueType) EnumDescriptor() ([]byte, []int) {
177	return file_google_api_metric_proto_rawDescGZIP(), []int{0, 1}
178}
179
180// Defines a metric type and its schema. Once a metric descriptor is created,
181// deleting or altering it stops data collection and makes the metric type's
182// existing data unusable.
183//
184type MetricDescriptor struct {
185	state         protoimpl.MessageState
186	sizeCache     protoimpl.SizeCache
187	unknownFields protoimpl.UnknownFields
188
189	// The resource name of the metric descriptor.
190	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
191	// The metric type, including its DNS name prefix. The type is not
192	// URL-encoded. All user-defined metric types have the DNS name
193	// `custom.googleapis.com` or `external.googleapis.com`. Metric types should
194	// use a natural hierarchical grouping. For example:
195	//
196	//     "custom.googleapis.com/invoice/paid/amount"
197	//     "external.googleapis.com/prometheus/up"
198	//     "appengine.googleapis.com/http/server/response_latencies"
199	Type string `protobuf:"bytes,8,opt,name=type,proto3" json:"type,omitempty"`
200	// The set of labels that can be used to describe a specific
201	// instance of this metric type. For example, the
202	// `appengine.googleapis.com/http/server/response_latencies` metric
203	// type has a label for the HTTP response code, `response_code`, so
204	// you can look at latencies for successful responses or just
205	// for responses that failed.
206	Labels []*label.LabelDescriptor `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
207	// Whether the metric records instantaneous values, changes to a value, etc.
208	// Some combinations of `metric_kind` and `value_type` might not be supported.
209	MetricKind MetricDescriptor_MetricKind `protobuf:"varint,3,opt,name=metric_kind,json=metricKind,proto3,enum=google.api.MetricDescriptor_MetricKind" json:"metric_kind,omitempty"`
210	// Whether the measurement is an integer, a floating-point number, etc.
211	// Some combinations of `metric_kind` and `value_type` might not be supported.
212	ValueType MetricDescriptor_ValueType `protobuf:"varint,4,opt,name=value_type,json=valueType,proto3,enum=google.api.MetricDescriptor_ValueType" json:"value_type,omitempty"`
213	// The units in which the metric value is reported. It is only applicable
214	// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
215	// defines the representation of the stored metric values.
216	//
217	// Different systems might scale the values to be more easily displayed (so a
218	// value of `0.02kBy` _might_ be displayed as `20By`, and a value of
219	// `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
220	// `kBy`, then the value of the metric is always in thousands of bytes, no
221	// matter how it might be displayed.
222	//
223	// If you want a custom metric to record the exact number of CPU-seconds used
224	// by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
225	// `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005
226	// CPU-seconds, then the value is written as `12005`.
227	//
228	// Alternatively, if you want a custom metric to record data in a more
229	// granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
230	// `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`),
231	// or use `Kis{CPU}` and write `11.723` (which is `12005/1024`).
232	//
233	// The supported units are a subset of [The Unified Code for Units of
234	// Measure](https://unitsofmeasure.org/ucum.html) standard:
235	//
236	// **Basic units (UNIT)**
237	//
238	// * `bit`   bit
239	// * `By`    byte
240	// * `s`     second
241	// * `min`   minute
242	// * `h`     hour
243	// * `d`     day
244	// * `1`     dimensionless
245	//
246	// **Prefixes (PREFIX)**
247	//
248	// * `k`     kilo    (10^3)
249	// * `M`     mega    (10^6)
250	// * `G`     giga    (10^9)
251	// * `T`     tera    (10^12)
252	// * `P`     peta    (10^15)
253	// * `E`     exa     (10^18)
254	// * `Z`     zetta   (10^21)
255	// * `Y`     yotta   (10^24)
256	//
257	// * `m`     milli   (10^-3)
258	// * `u`     micro   (10^-6)
259	// * `n`     nano    (10^-9)
260	// * `p`     pico    (10^-12)
261	// * `f`     femto   (10^-15)
262	// * `a`     atto    (10^-18)
263	// * `z`     zepto   (10^-21)
264	// * `y`     yocto   (10^-24)
265	//
266	// * `Ki`    kibi    (2^10)
267	// * `Mi`    mebi    (2^20)
268	// * `Gi`    gibi    (2^30)
269	// * `Ti`    tebi    (2^40)
270	// * `Pi`    pebi    (2^50)
271	//
272	// **Grammar**
273	//
274	// The grammar also includes these connectors:
275	//
276	// * `/`    division or ratio (as an infix operator). For examples,
277	//          `kBy/{email}` or `MiBy/10ms` (although you should almost never
278	//          have `/s` in a metric `unit`; rates should always be computed at
279	//          query time from the underlying cumulative or delta value).
280	// * `.`    multiplication or composition (as an infix operator). For
281	//          examples, `GBy.d` or `k{watt}.h`.
282	//
283	// The grammar for a unit is as follows:
284	//
285	//     Expression = Component { "." Component } { "/" Component } ;
286	//
287	//     Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
288	//               | Annotation
289	//               | "1"
290	//               ;
291	//
292	//     Annotation = "{" NAME "}" ;
293	//
294	// Notes:
295	//
296	// * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
297	//    is used alone, then the unit is equivalent to `1`. For examples,
298	//    `{request}/s == 1/s`, `By{transmitted}/s == By/s`.
299	// * `NAME` is a sequence of non-blank printable ASCII characters not
300	//    containing `{` or `}`.
301	// * `1` represents a unitary [dimensionless
302	//    unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
303	//    as in `1/s`. It is typically used when none of the basic units are
304	//    appropriate. For example, "new users per day" can be represented as
305	//    `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new
306	//    users). Alternatively, "thousands of page views per day" would be
307	//    represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric
308	//    value of `5.3` would mean "5300 page views per day").
309	// * `%` represents dimensionless value of 1/100, and annotates values giving
310	//    a percentage (so the metric values are typically in the range of 0..100,
311	//    and a metric value `3` means "3 percent").
312	// * `10^2.%` indicates a metric contains a ratio, typically in the range
313	//    0..1, that will be multiplied by 100 and displayed as a percentage
314	//    (so a metric value `0.03` means "3 percent").
315	Unit string `protobuf:"bytes,5,opt,name=unit,proto3" json:"unit,omitempty"`
316	// A detailed description of the metric, which can be used in documentation.
317	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
318	// A concise name for the metric, which can be displayed in user interfaces.
319	// Use sentence case without an ending period, for example "Request count".
320	// This field is optional but it is recommended to be set for any metrics
321	// associated with user-visible concepts, such as Quota.
322	DisplayName string `protobuf:"bytes,7,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
323	// Optional. Metadata which can be used to guide usage of the metric.
324	Metadata *MetricDescriptor_MetricDescriptorMetadata `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"`
325	// Optional. The launch stage of the metric definition.
326	LaunchStage api.LaunchStage `protobuf:"varint,12,opt,name=launch_stage,json=launchStage,proto3,enum=google.api.LaunchStage" json:"launch_stage,omitempty"`
327	// Read-only. If present, then a [time
328	// series][google.monitoring.v3.TimeSeries], which is identified partially by
329	// a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
330	// with this metric type can only be associated with one of the monitored
331	// resource types listed here.
332	MonitoredResourceTypes []string `protobuf:"bytes,13,rep,name=monitored_resource_types,json=monitoredResourceTypes,proto3" json:"monitored_resource_types,omitempty"`
333}
334
335func (x *MetricDescriptor) Reset() {
336	*x = MetricDescriptor{}
337	if protoimpl.UnsafeEnabled {
338		mi := &file_google_api_metric_proto_msgTypes[0]
339		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
340		ms.StoreMessageInfo(mi)
341	}
342}
343
344func (x *MetricDescriptor) String() string {
345	return protoimpl.X.MessageStringOf(x)
346}
347
348func (*MetricDescriptor) ProtoMessage() {}
349
350func (x *MetricDescriptor) ProtoReflect() protoreflect.Message {
351	mi := &file_google_api_metric_proto_msgTypes[0]
352	if protoimpl.UnsafeEnabled && x != nil {
353		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
354		if ms.LoadMessageInfo() == nil {
355			ms.StoreMessageInfo(mi)
356		}
357		return ms
358	}
359	return mi.MessageOf(x)
360}
361
362// Deprecated: Use MetricDescriptor.ProtoReflect.Descriptor instead.
363func (*MetricDescriptor) Descriptor() ([]byte, []int) {
364	return file_google_api_metric_proto_rawDescGZIP(), []int{0}
365}
366
367func (x *MetricDescriptor) GetName() string {
368	if x != nil {
369		return x.Name
370	}
371	return ""
372}
373
374func (x *MetricDescriptor) GetType() string {
375	if x != nil {
376		return x.Type
377	}
378	return ""
379}
380
381func (x *MetricDescriptor) GetLabels() []*label.LabelDescriptor {
382	if x != nil {
383		return x.Labels
384	}
385	return nil
386}
387
388func (x *MetricDescriptor) GetMetricKind() MetricDescriptor_MetricKind {
389	if x != nil {
390		return x.MetricKind
391	}
392	return MetricDescriptor_METRIC_KIND_UNSPECIFIED
393}
394
395func (x *MetricDescriptor) GetValueType() MetricDescriptor_ValueType {
396	if x != nil {
397		return x.ValueType
398	}
399	return MetricDescriptor_VALUE_TYPE_UNSPECIFIED
400}
401
402func (x *MetricDescriptor) GetUnit() string {
403	if x != nil {
404		return x.Unit
405	}
406	return ""
407}
408
409func (x *MetricDescriptor) GetDescription() string {
410	if x != nil {
411		return x.Description
412	}
413	return ""
414}
415
416func (x *MetricDescriptor) GetDisplayName() string {
417	if x != nil {
418		return x.DisplayName
419	}
420	return ""
421}
422
423func (x *MetricDescriptor) GetMetadata() *MetricDescriptor_MetricDescriptorMetadata {
424	if x != nil {
425		return x.Metadata
426	}
427	return nil
428}
429
430func (x *MetricDescriptor) GetLaunchStage() api.LaunchStage {
431	if x != nil {
432		return x.LaunchStage
433	}
434	return api.LaunchStage_LAUNCH_STAGE_UNSPECIFIED
435}
436
437func (x *MetricDescriptor) GetMonitoredResourceTypes() []string {
438	if x != nil {
439		return x.MonitoredResourceTypes
440	}
441	return nil
442}
443
444// A specific metric, identified by specifying values for all of the
445// labels of a [`MetricDescriptor`][google.api.MetricDescriptor].
446type Metric struct {
447	state         protoimpl.MessageState
448	sizeCache     protoimpl.SizeCache
449	unknownFields protoimpl.UnknownFields
450
451	// An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
452	// For example, `custom.googleapis.com/invoice/paid/amount`.
453	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
454	// The set of label values that uniquely identify this metric. All
455	// labels listed in the `MetricDescriptor` must be assigned values.
456	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
457}
458
459func (x *Metric) Reset() {
460	*x = Metric{}
461	if protoimpl.UnsafeEnabled {
462		mi := &file_google_api_metric_proto_msgTypes[1]
463		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
464		ms.StoreMessageInfo(mi)
465	}
466}
467
468func (x *Metric) String() string {
469	return protoimpl.X.MessageStringOf(x)
470}
471
472func (*Metric) ProtoMessage() {}
473
474func (x *Metric) ProtoReflect() protoreflect.Message {
475	mi := &file_google_api_metric_proto_msgTypes[1]
476	if protoimpl.UnsafeEnabled && x != nil {
477		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
478		if ms.LoadMessageInfo() == nil {
479			ms.StoreMessageInfo(mi)
480		}
481		return ms
482	}
483	return mi.MessageOf(x)
484}
485
486// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
487func (*Metric) Descriptor() ([]byte, []int) {
488	return file_google_api_metric_proto_rawDescGZIP(), []int{1}
489}
490
491func (x *Metric) GetType() string {
492	if x != nil {
493		return x.Type
494	}
495	return ""
496}
497
498func (x *Metric) GetLabels() map[string]string {
499	if x != nil {
500		return x.Labels
501	}
502	return nil
503}
504
505// Additional annotations that can be used to guide the usage of a metric.
506type MetricDescriptor_MetricDescriptorMetadata struct {
507	state         protoimpl.MessageState
508	sizeCache     protoimpl.SizeCache
509	unknownFields protoimpl.UnknownFields
510
511	// Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
512	//
513	// Deprecated: Do not use.
514	LaunchStage api.LaunchStage `protobuf:"varint,1,opt,name=launch_stage,json=launchStage,proto3,enum=google.api.LaunchStage" json:"launch_stage,omitempty"`
515	// The sampling period of metric data points. For metrics which are written
516	// periodically, consecutive data points are stored at this time interval,
517	// excluding data loss due to errors. Metrics with a higher granularity have
518	// a smaller sampling period.
519	SamplePeriod *durationpb.Duration `protobuf:"bytes,2,opt,name=sample_period,json=samplePeriod,proto3" json:"sample_period,omitempty"`
520	// The delay of data points caused by ingestion. Data points older than this
521	// age are guaranteed to be ingested and available to be read, excluding
522	// data loss due to errors.
523	IngestDelay *durationpb.Duration `protobuf:"bytes,3,opt,name=ingest_delay,json=ingestDelay,proto3" json:"ingest_delay,omitempty"`
524}
525
526func (x *MetricDescriptor_MetricDescriptorMetadata) Reset() {
527	*x = MetricDescriptor_MetricDescriptorMetadata{}
528	if protoimpl.UnsafeEnabled {
529		mi := &file_google_api_metric_proto_msgTypes[2]
530		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
531		ms.StoreMessageInfo(mi)
532	}
533}
534
535func (x *MetricDescriptor_MetricDescriptorMetadata) String() string {
536	return protoimpl.X.MessageStringOf(x)
537}
538
539func (*MetricDescriptor_MetricDescriptorMetadata) ProtoMessage() {}
540
541func (x *MetricDescriptor_MetricDescriptorMetadata) ProtoReflect() protoreflect.Message {
542	mi := &file_google_api_metric_proto_msgTypes[2]
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 MetricDescriptor_MetricDescriptorMetadata.ProtoReflect.Descriptor instead.
554func (*MetricDescriptor_MetricDescriptorMetadata) Descriptor() ([]byte, []int) {
555	return file_google_api_metric_proto_rawDescGZIP(), []int{0, 0}
556}
557
558// Deprecated: Do not use.
559func (x *MetricDescriptor_MetricDescriptorMetadata) GetLaunchStage() api.LaunchStage {
560	if x != nil {
561		return x.LaunchStage
562	}
563	return api.LaunchStage_LAUNCH_STAGE_UNSPECIFIED
564}
565
566func (x *MetricDescriptor_MetricDescriptorMetadata) GetSamplePeriod() *durationpb.Duration {
567	if x != nil {
568		return x.SamplePeriod
569	}
570	return nil
571}
572
573func (x *MetricDescriptor_MetricDescriptorMetadata) GetIngestDelay() *durationpb.Duration {
574	if x != nil {
575		return x.IngestDelay
576	}
577	return nil
578}
579
580var File_google_api_metric_proto protoreflect.FileDescriptor
581
582var file_google_api_metric_proto_rawDesc = []byte{
583	0x0a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x74,
584	0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
585	0x65, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
586	0x69, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x67,
587	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68,
588	0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
589	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
590	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x07, 0x0a,
591	0x10, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
592	0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
593	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
594	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x6c, 0x61, 0x62,
595	0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
596	0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x63,
597	0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x48,
598	0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20,
599	0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
600	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
601	0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x6d, 0x65,
602	0x74, 0x72, 0x69, 0x63, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75,
603	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67,
604	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
605	0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
606	0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
607	0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75,
608	0x6e, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
609	0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
610	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
611	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73,
612	0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
613	0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f,
614	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65,
615	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44,
616	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
617	0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x0c, 0x6c,
618	0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
619	0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
620	0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6c, 0x61, 0x75, 0x6e,
621	0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
622	0x6f, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79,
623	0x70, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
624	0x6f, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
625	0x73, 0x1a, 0xd8, 0x01, 0x0a, 0x18, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63,
626	0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e,
627	0x0a, 0x0c, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01,
628	0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70,
629	0x69, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x02, 0x18,
630	0x01, 0x52, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3e,
631	0x0a, 0x0d, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18,
632	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
633	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
634	0x52, 0x0c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x3c,
635	0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03,
636	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
637	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
638	0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x4f, 0x0a, 0x0a,
639	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x45,
640	0x54, 0x52, 0x49, 0x43, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
641	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45,
642	0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x10, 0x02, 0x12, 0x0e, 0x0a,
643	0x0a, 0x43, 0x55, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x22, 0x71, 0x0a,
644	0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x41,
645	0x4c, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
646	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01,
647	0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44,
648	0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e,
649	0x47, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54,
650	0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x45, 0x59, 0x10, 0x06,
651	0x22, 0x8f, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74,
652	0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
653	0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
654	0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74,
655	0x72, 0x69, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
656	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
657	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
658	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
659	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
660	0x38, 0x01, 0x42, 0x5f, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
661	0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x74,
662	0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
663	0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
664	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d,
665	0x65, 0x74, 0x72, 0x69, 0x63, 0x3b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0xa2, 0x02, 0x04, 0x47,
666	0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
667}
668
669var (
670	file_google_api_metric_proto_rawDescOnce sync.Once
671	file_google_api_metric_proto_rawDescData = file_google_api_metric_proto_rawDesc
672)
673
674func file_google_api_metric_proto_rawDescGZIP() []byte {
675	file_google_api_metric_proto_rawDescOnce.Do(func() {
676		file_google_api_metric_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_metric_proto_rawDescData)
677	})
678	return file_google_api_metric_proto_rawDescData
679}
680
681var file_google_api_metric_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
682var file_google_api_metric_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
683var file_google_api_metric_proto_goTypes = []interface{}{
684	(MetricDescriptor_MetricKind)(0),                  // 0: google.api.MetricDescriptor.MetricKind
685	(MetricDescriptor_ValueType)(0),                   // 1: google.api.MetricDescriptor.ValueType
686	(*MetricDescriptor)(nil),                          // 2: google.api.MetricDescriptor
687	(*Metric)(nil),                                    // 3: google.api.Metric
688	(*MetricDescriptor_MetricDescriptorMetadata)(nil), // 4: google.api.MetricDescriptor.MetricDescriptorMetadata
689	nil,                           // 5: google.api.Metric.LabelsEntry
690	(*label.LabelDescriptor)(nil), // 6: google.api.LabelDescriptor
691	(api.LaunchStage)(0),          // 7: google.api.LaunchStage
692	(*durationpb.Duration)(nil),   // 8: google.protobuf.Duration
693}
694var file_google_api_metric_proto_depIdxs = []int32{
695	6, // 0: google.api.MetricDescriptor.labels:type_name -> google.api.LabelDescriptor
696	0, // 1: google.api.MetricDescriptor.metric_kind:type_name -> google.api.MetricDescriptor.MetricKind
697	1, // 2: google.api.MetricDescriptor.value_type:type_name -> google.api.MetricDescriptor.ValueType
698	4, // 3: google.api.MetricDescriptor.metadata:type_name -> google.api.MetricDescriptor.MetricDescriptorMetadata
699	7, // 4: google.api.MetricDescriptor.launch_stage:type_name -> google.api.LaunchStage
700	5, // 5: google.api.Metric.labels:type_name -> google.api.Metric.LabelsEntry
701	7, // 6: google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage:type_name -> google.api.LaunchStage
702	8, // 7: google.api.MetricDescriptor.MetricDescriptorMetadata.sample_period:type_name -> google.protobuf.Duration
703	8, // 8: google.api.MetricDescriptor.MetricDescriptorMetadata.ingest_delay:type_name -> google.protobuf.Duration
704	9, // [9:9] is the sub-list for method output_type
705	9, // [9:9] is the sub-list for method input_type
706	9, // [9:9] is the sub-list for extension type_name
707	9, // [9:9] is the sub-list for extension extendee
708	0, // [0:9] is the sub-list for field type_name
709}
710
711func init() { file_google_api_metric_proto_init() }
712func file_google_api_metric_proto_init() {
713	if File_google_api_metric_proto != nil {
714		return
715	}
716	if !protoimpl.UnsafeEnabled {
717		file_google_api_metric_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
718			switch v := v.(*MetricDescriptor); i {
719			case 0:
720				return &v.state
721			case 1:
722				return &v.sizeCache
723			case 2:
724				return &v.unknownFields
725			default:
726				return nil
727			}
728		}
729		file_google_api_metric_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
730			switch v := v.(*Metric); i {
731			case 0:
732				return &v.state
733			case 1:
734				return &v.sizeCache
735			case 2:
736				return &v.unknownFields
737			default:
738				return nil
739			}
740		}
741		file_google_api_metric_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
742			switch v := v.(*MetricDescriptor_MetricDescriptorMetadata); i {
743			case 0:
744				return &v.state
745			case 1:
746				return &v.sizeCache
747			case 2:
748				return &v.unknownFields
749			default:
750				return nil
751			}
752		}
753	}
754	type x struct{}
755	out := protoimpl.TypeBuilder{
756		File: protoimpl.DescBuilder{
757			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
758			RawDescriptor: file_google_api_metric_proto_rawDesc,
759			NumEnums:      2,
760			NumMessages:   4,
761			NumExtensions: 0,
762			NumServices:   0,
763		},
764		GoTypes:           file_google_api_metric_proto_goTypes,
765		DependencyIndexes: file_google_api_metric_proto_depIdxs,
766		EnumInfos:         file_google_api_metric_proto_enumTypes,
767		MessageInfos:      file_google_api_metric_proto_msgTypes,
768	}.Build()
769	File_google_api_metric_proto = out.File
770	file_google_api_metric_proto_rawDesc = nil
771	file_google_api_metric_proto_goTypes = nil
772	file_google_api_metric_proto_depIdxs = nil
773}
774