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