// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/monitoring/v3/metric_service.proto

package monitoring // import "google.golang.org/genproto/googleapis/monitoring/v3"

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/golang/protobuf/ptypes/duration"
import empty "github.com/golang/protobuf/ptypes/empty"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import metric "google.golang.org/genproto/googleapis/api/metric"
import monitoredres "google.golang.org/genproto/googleapis/api/monitoredres"
import status "google.golang.org/genproto/googleapis/rpc/status"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

// Controls which fields are returned by `ListTimeSeries`.
type ListTimeSeriesRequest_TimeSeriesView int32

const (
	// Returns the identity of the metric(s), the time series,
	// and the time series data.
	ListTimeSeriesRequest_FULL ListTimeSeriesRequest_TimeSeriesView = 0
	// Returns the identity of the metric and the time series resource,
	// but not the time series data.
	ListTimeSeriesRequest_HEADERS ListTimeSeriesRequest_TimeSeriesView = 1
)

var ListTimeSeriesRequest_TimeSeriesView_name = map[int32]string{
	0: "FULL",
	1: "HEADERS",
}
var ListTimeSeriesRequest_TimeSeriesView_value = map[string]int32{
	"FULL":    0,
	"HEADERS": 1,
}

func (x ListTimeSeriesRequest_TimeSeriesView) String() string {
	return proto.EnumName(ListTimeSeriesRequest_TimeSeriesView_name, int32(x))
}
func (ListTimeSeriesRequest_TimeSeriesView) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{8, 0}
}

// The `ListMonitoredResourceDescriptors` request.
type ListMonitoredResourceDescriptorsRequest struct {
	// The project on which to execute the request. The format is
	// `"projects/{project_id_or_number}"`.
	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	// An optional [filter](/monitoring/api/v3/filters) describing
	// the descriptors to be returned.  The filter can reference
	// the descriptor's type and labels. For example, the
	// following filter returns only Google Compute Engine descriptors
	// that have an `id` label:
	//
	//     resource.type = starts_with("gce_") AND resource.label:id
	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// A positive number that is the maximum number of results to return.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// If this field is not empty then it must contain the `nextPageToken` value
	// returned by a previous call to this method.  Using this field causes the
	// method to return additional results from the previous method call.
	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListMonitoredResourceDescriptorsRequest) Reset() {
	*m = ListMonitoredResourceDescriptorsRequest{}
}
func (m *ListMonitoredResourceDescriptorsRequest) String() string { return proto.CompactTextString(m) }
func (*ListMonitoredResourceDescriptorsRequest) ProtoMessage()    {}
func (*ListMonitoredResourceDescriptorsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{0}
}
func (m *ListMonitoredResourceDescriptorsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsRequest.Unmarshal(m, b)
}
func (m *ListMonitoredResourceDescriptorsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsRequest.Marshal(b, m, deterministic)
}
func (dst *ListMonitoredResourceDescriptorsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListMonitoredResourceDescriptorsRequest.Merge(dst, src)
}
func (m *ListMonitoredResourceDescriptorsRequest) XXX_Size() int {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsRequest.Size(m)
}
func (m *ListMonitoredResourceDescriptorsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListMonitoredResourceDescriptorsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListMonitoredResourceDescriptorsRequest proto.InternalMessageInfo

func (m *ListMonitoredResourceDescriptorsRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ListMonitoredResourceDescriptorsRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListMonitoredResourceDescriptorsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListMonitoredResourceDescriptorsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

// The `ListMonitoredResourceDescriptors` response.
type ListMonitoredResourceDescriptorsResponse struct {
	// The monitored resource descriptors that are available to this project
	// and that match `filter`, if present.
	ResourceDescriptors []*monitoredres.MonitoredResourceDescriptor `protobuf:"bytes,1,rep,name=resource_descriptors,json=resourceDescriptors,proto3" json:"resource_descriptors,omitempty"`
	// If there are more results than have been returned, then this field is set
	// to a non-empty value.  To see the additional results,
	// use that value as `pageToken` in the next call to this method.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListMonitoredResourceDescriptorsResponse) Reset() {
	*m = ListMonitoredResourceDescriptorsResponse{}
}
func (m *ListMonitoredResourceDescriptorsResponse) String() string { return proto.CompactTextString(m) }
func (*ListMonitoredResourceDescriptorsResponse) ProtoMessage()    {}
func (*ListMonitoredResourceDescriptorsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{1}
}
func (m *ListMonitoredResourceDescriptorsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsResponse.Unmarshal(m, b)
}
func (m *ListMonitoredResourceDescriptorsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsResponse.Marshal(b, m, deterministic)
}
func (dst *ListMonitoredResourceDescriptorsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListMonitoredResourceDescriptorsResponse.Merge(dst, src)
}
func (m *ListMonitoredResourceDescriptorsResponse) XXX_Size() int {
	return xxx_messageInfo_ListMonitoredResourceDescriptorsResponse.Size(m)
}
func (m *ListMonitoredResourceDescriptorsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListMonitoredResourceDescriptorsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListMonitoredResourceDescriptorsResponse proto.InternalMessageInfo

func (m *ListMonitoredResourceDescriptorsResponse) GetResourceDescriptors() []*monitoredres.MonitoredResourceDescriptor {
	if m != nil {
		return m.ResourceDescriptors
	}
	return nil
}

func (m *ListMonitoredResourceDescriptorsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// The `GetMonitoredResourceDescriptor` request.
type GetMonitoredResourceDescriptorRequest struct {
	// The monitored resource descriptor to get.  The format is
	// `"projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}"`.
	// The `{resource_type}` is a predefined type, such as
	// `cloudsql_database`.
	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetMonitoredResourceDescriptorRequest) Reset()         { *m = GetMonitoredResourceDescriptorRequest{} }
func (m *GetMonitoredResourceDescriptorRequest) String() string { return proto.CompactTextString(m) }
func (*GetMonitoredResourceDescriptorRequest) ProtoMessage()    {}
func (*GetMonitoredResourceDescriptorRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{2}
}
func (m *GetMonitoredResourceDescriptorRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMonitoredResourceDescriptorRequest.Unmarshal(m, b)
}
func (m *GetMonitoredResourceDescriptorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMonitoredResourceDescriptorRequest.Marshal(b, m, deterministic)
}
func (dst *GetMonitoredResourceDescriptorRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMonitoredResourceDescriptorRequest.Merge(dst, src)
}
func (m *GetMonitoredResourceDescriptorRequest) XXX_Size() int {
	return xxx_messageInfo_GetMonitoredResourceDescriptorRequest.Size(m)
}
func (m *GetMonitoredResourceDescriptorRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMonitoredResourceDescriptorRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetMonitoredResourceDescriptorRequest proto.InternalMessageInfo

func (m *GetMonitoredResourceDescriptorRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The `ListMetricDescriptors` request.
type ListMetricDescriptorsRequest struct {
	// The project on which to execute the request. The format is
	// `"projects/{project_id_or_number}"`.
	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	// If this field is empty, all custom and
	// system-defined metric descriptors are returned.
	// Otherwise, the [filter](/monitoring/api/v3/filters)
	// specifies which metric descriptors are to be
	// returned. For example, the following filter matches all
	// [custom metrics](/monitoring/custom-metrics):
	//
	//     metric.type = starts_with("custom.googleapis.com/")
	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// A positive number that is the maximum number of results to return.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// If this field is not empty then it must contain the `nextPageToken` value
	// returned by a previous call to this method.  Using this field causes the
	// method to return additional results from the previous method call.
	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListMetricDescriptorsRequest) Reset()         { *m = ListMetricDescriptorsRequest{} }
func (m *ListMetricDescriptorsRequest) String() string { return proto.CompactTextString(m) }
func (*ListMetricDescriptorsRequest) ProtoMessage()    {}
func (*ListMetricDescriptorsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{3}
}
func (m *ListMetricDescriptorsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListMetricDescriptorsRequest.Unmarshal(m, b)
}
func (m *ListMetricDescriptorsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListMetricDescriptorsRequest.Marshal(b, m, deterministic)
}
func (dst *ListMetricDescriptorsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListMetricDescriptorsRequest.Merge(dst, src)
}
func (m *ListMetricDescriptorsRequest) XXX_Size() int {
	return xxx_messageInfo_ListMetricDescriptorsRequest.Size(m)
}
func (m *ListMetricDescriptorsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListMetricDescriptorsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListMetricDescriptorsRequest proto.InternalMessageInfo

func (m *ListMetricDescriptorsRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ListMetricDescriptorsRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListMetricDescriptorsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListMetricDescriptorsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

// The `ListMetricDescriptors` response.
type ListMetricDescriptorsResponse struct {
	// The metric descriptors that are available to the project
	// and that match the value of `filter`, if present.
	MetricDescriptors []*metric.MetricDescriptor `protobuf:"bytes,1,rep,name=metric_descriptors,json=metricDescriptors,proto3" json:"metric_descriptors,omitempty"`
	// If there are more results than have been returned, then this field is set
	// to a non-empty value.  To see the additional results,
	// use that value as `pageToken` in the next call to this method.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListMetricDescriptorsResponse) Reset()         { *m = ListMetricDescriptorsResponse{} }
func (m *ListMetricDescriptorsResponse) String() string { return proto.CompactTextString(m) }
func (*ListMetricDescriptorsResponse) ProtoMessage()    {}
func (*ListMetricDescriptorsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{4}
}
func (m *ListMetricDescriptorsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListMetricDescriptorsResponse.Unmarshal(m, b)
}
func (m *ListMetricDescriptorsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListMetricDescriptorsResponse.Marshal(b, m, deterministic)
}
func (dst *ListMetricDescriptorsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListMetricDescriptorsResponse.Merge(dst, src)
}
func (m *ListMetricDescriptorsResponse) XXX_Size() int {
	return xxx_messageInfo_ListMetricDescriptorsResponse.Size(m)
}
func (m *ListMetricDescriptorsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListMetricDescriptorsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListMetricDescriptorsResponse proto.InternalMessageInfo

func (m *ListMetricDescriptorsResponse) GetMetricDescriptors() []*metric.MetricDescriptor {
	if m != nil {
		return m.MetricDescriptors
	}
	return nil
}

func (m *ListMetricDescriptorsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// The `GetMetricDescriptor` request.
type GetMetricDescriptorRequest struct {
	// The metric descriptor on which to execute the request. The format is
	// `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
	// An example value of `{metric_id}` is
	// `"compute.googleapis.com/instance/disk/read_bytes_count"`.
	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetMetricDescriptorRequest) Reset()         { *m = GetMetricDescriptorRequest{} }
func (m *GetMetricDescriptorRequest) String() string { return proto.CompactTextString(m) }
func (*GetMetricDescriptorRequest) ProtoMessage()    {}
func (*GetMetricDescriptorRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{5}
}
func (m *GetMetricDescriptorRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMetricDescriptorRequest.Unmarshal(m, b)
}
func (m *GetMetricDescriptorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMetricDescriptorRequest.Marshal(b, m, deterministic)
}
func (dst *GetMetricDescriptorRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMetricDescriptorRequest.Merge(dst, src)
}
func (m *GetMetricDescriptorRequest) XXX_Size() int {
	return xxx_messageInfo_GetMetricDescriptorRequest.Size(m)
}
func (m *GetMetricDescriptorRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMetricDescriptorRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetMetricDescriptorRequest proto.InternalMessageInfo

func (m *GetMetricDescriptorRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The `CreateMetricDescriptor` request.
type CreateMetricDescriptorRequest struct {
	// The project on which to execute the request. The format is
	// `"projects/{project_id_or_number}"`.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The new [custom metric](/monitoring/custom-metrics)
	// descriptor.
	MetricDescriptor     *metric.MetricDescriptor `protobuf:"bytes,2,opt,name=metric_descriptor,json=metricDescriptor,proto3" json:"metric_descriptor,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *CreateMetricDescriptorRequest) Reset()         { *m = CreateMetricDescriptorRequest{} }
func (m *CreateMetricDescriptorRequest) String() string { return proto.CompactTextString(m) }
func (*CreateMetricDescriptorRequest) ProtoMessage()    {}
func (*CreateMetricDescriptorRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{6}
}
func (m *CreateMetricDescriptorRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateMetricDescriptorRequest.Unmarshal(m, b)
}
func (m *CreateMetricDescriptorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateMetricDescriptorRequest.Marshal(b, m, deterministic)
}
func (dst *CreateMetricDescriptorRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateMetricDescriptorRequest.Merge(dst, src)
}
func (m *CreateMetricDescriptorRequest) XXX_Size() int {
	return xxx_messageInfo_CreateMetricDescriptorRequest.Size(m)
}
func (m *CreateMetricDescriptorRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateMetricDescriptorRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateMetricDescriptorRequest proto.InternalMessageInfo

func (m *CreateMetricDescriptorRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *CreateMetricDescriptorRequest) GetMetricDescriptor() *metric.MetricDescriptor {
	if m != nil {
		return m.MetricDescriptor
	}
	return nil
}

// The `DeleteMetricDescriptor` request.
type DeleteMetricDescriptorRequest struct {
	// The metric descriptor on which to execute the request. The format is
	// `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
	// An example of `{metric_id}` is:
	// `"custom.googleapis.com/my_test_metric"`.
	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteMetricDescriptorRequest) Reset()         { *m = DeleteMetricDescriptorRequest{} }
func (m *DeleteMetricDescriptorRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteMetricDescriptorRequest) ProtoMessage()    {}
func (*DeleteMetricDescriptorRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{7}
}
func (m *DeleteMetricDescriptorRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteMetricDescriptorRequest.Unmarshal(m, b)
}
func (m *DeleteMetricDescriptorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteMetricDescriptorRequest.Marshal(b, m, deterministic)
}
func (dst *DeleteMetricDescriptorRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteMetricDescriptorRequest.Merge(dst, src)
}
func (m *DeleteMetricDescriptorRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteMetricDescriptorRequest.Size(m)
}
func (m *DeleteMetricDescriptorRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteMetricDescriptorRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteMetricDescriptorRequest proto.InternalMessageInfo

func (m *DeleteMetricDescriptorRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The `ListTimeSeries` request.
type ListTimeSeriesRequest struct {
	// The project on which to execute the request. The format is
	// "projects/{project_id_or_number}".
	Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"`
	// A [monitoring filter](/monitoring/api/v3/filters) that specifies which time
	// series should be returned.  The filter must specify a single metric type,
	// and can additionally specify metric labels and other information. For
	// example:
	//
	//     metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
	//         metric.label.instance_name = "my-instance-name"
	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// The time interval for which results should be returned. Only time series
	// that contain data points in the specified interval are included
	// in the response.
	Interval *TimeInterval `protobuf:"bytes,4,opt,name=interval,proto3" json:"interval,omitempty"`
	// By default, the raw time series data is returned.
	// Use this field to combine multiple time series for different
	// views of the data.
	Aggregation *Aggregation `protobuf:"bytes,5,opt,name=aggregation,proto3" json:"aggregation,omitempty"`
	// Unsupported: must be left blank. The points in each time series are
	// returned in reverse time order.
	OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	// Specifies which information is returned about the time series.
	View ListTimeSeriesRequest_TimeSeriesView `protobuf:"varint,7,opt,name=view,proto3,enum=google.monitoring.v3.ListTimeSeriesRequest_TimeSeriesView" json:"view,omitempty"`
	// A positive number that is the maximum number of results to return. If
	// `page_size` is empty or more than 100,000 results, the effective
	// `page_size` is 100,000 results. If `view` is set to `FULL`, this is the
	// maximum number of `Points` returned. If `view` is set to `HEADERS`, this is
	// the maximum number of `TimeSeries` returned.
	PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// If this field is not empty then it must contain the `nextPageToken` value
	// returned by a previous call to this method.  Using this field causes the
	// method to return additional results from the previous method call.
	PageToken            string   `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListTimeSeriesRequest) Reset()         { *m = ListTimeSeriesRequest{} }
func (m *ListTimeSeriesRequest) String() string { return proto.CompactTextString(m) }
func (*ListTimeSeriesRequest) ProtoMessage()    {}
func (*ListTimeSeriesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{8}
}
func (m *ListTimeSeriesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListTimeSeriesRequest.Unmarshal(m, b)
}
func (m *ListTimeSeriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListTimeSeriesRequest.Marshal(b, m, deterministic)
}
func (dst *ListTimeSeriesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListTimeSeriesRequest.Merge(dst, src)
}
func (m *ListTimeSeriesRequest) XXX_Size() int {
	return xxx_messageInfo_ListTimeSeriesRequest.Size(m)
}
func (m *ListTimeSeriesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListTimeSeriesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListTimeSeriesRequest proto.InternalMessageInfo

func (m *ListTimeSeriesRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ListTimeSeriesRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListTimeSeriesRequest) GetInterval() *TimeInterval {
	if m != nil {
		return m.Interval
	}
	return nil
}

func (m *ListTimeSeriesRequest) GetAggregation() *Aggregation {
	if m != nil {
		return m.Aggregation
	}
	return nil
}

func (m *ListTimeSeriesRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

func (m *ListTimeSeriesRequest) GetView() ListTimeSeriesRequest_TimeSeriesView {
	if m != nil {
		return m.View
	}
	return ListTimeSeriesRequest_FULL
}

func (m *ListTimeSeriesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListTimeSeriesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

// The `ListTimeSeries` response.
type ListTimeSeriesResponse struct {
	// One or more time series that match the filter included in the request.
	TimeSeries []*TimeSeries `protobuf:"bytes,1,rep,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
	// If there are more results than have been returned, then this field is set
	// to a non-empty value.  To see the additional results,
	// use that value as `pageToken` in the next call to this method.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Query execution errors that may have caused the time series data returned
	// to be incomplete.
	ExecutionErrors      []*status.Status `protobuf:"bytes,3,rep,name=execution_errors,json=executionErrors,proto3" json:"execution_errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ListTimeSeriesResponse) Reset()         { *m = ListTimeSeriesResponse{} }
func (m *ListTimeSeriesResponse) String() string { return proto.CompactTextString(m) }
func (*ListTimeSeriesResponse) ProtoMessage()    {}
func (*ListTimeSeriesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{9}
}
func (m *ListTimeSeriesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListTimeSeriesResponse.Unmarshal(m, b)
}
func (m *ListTimeSeriesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListTimeSeriesResponse.Marshal(b, m, deterministic)
}
func (dst *ListTimeSeriesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListTimeSeriesResponse.Merge(dst, src)
}
func (m *ListTimeSeriesResponse) XXX_Size() int {
	return xxx_messageInfo_ListTimeSeriesResponse.Size(m)
}
func (m *ListTimeSeriesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListTimeSeriesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListTimeSeriesResponse proto.InternalMessageInfo

func (m *ListTimeSeriesResponse) GetTimeSeries() []*TimeSeries {
	if m != nil {
		return m.TimeSeries
	}
	return nil
}

func (m *ListTimeSeriesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

func (m *ListTimeSeriesResponse) GetExecutionErrors() []*status.Status {
	if m != nil {
		return m.ExecutionErrors
	}
	return nil
}

// The `CreateTimeSeries` request.
type CreateTimeSeriesRequest struct {
	// The project on which to execute the request. The format is
	// `"projects/{project_id_or_number}"`.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The new data to be added to a list of time series.
	// Adds at most one data point to each of several time series.  The new data
	// point must be more recent than any other point in its time series.  Each
	// `TimeSeries` value must fully specify a unique time series by supplying
	// all label values for the metric and the monitored resource.
	TimeSeries           []*TimeSeries `protobuf:"bytes,2,rep,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *CreateTimeSeriesRequest) Reset()         { *m = CreateTimeSeriesRequest{} }
func (m *CreateTimeSeriesRequest) String() string { return proto.CompactTextString(m) }
func (*CreateTimeSeriesRequest) ProtoMessage()    {}
func (*CreateTimeSeriesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{10}
}
func (m *CreateTimeSeriesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateTimeSeriesRequest.Unmarshal(m, b)
}
func (m *CreateTimeSeriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateTimeSeriesRequest.Marshal(b, m, deterministic)
}
func (dst *CreateTimeSeriesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateTimeSeriesRequest.Merge(dst, src)
}
func (m *CreateTimeSeriesRequest) XXX_Size() int {
	return xxx_messageInfo_CreateTimeSeriesRequest.Size(m)
}
func (m *CreateTimeSeriesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateTimeSeriesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateTimeSeriesRequest proto.InternalMessageInfo

func (m *CreateTimeSeriesRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *CreateTimeSeriesRequest) GetTimeSeries() []*TimeSeries {
	if m != nil {
		return m.TimeSeries
	}
	return nil
}

// Describes the result of a failed request to write data to a time series.
type CreateTimeSeriesError struct {
	// The time series, including the `Metric`, `MonitoredResource`,
	// and `Point`s (including timestamp and value) that resulted
	// in the error. This field provides all of the context that
	// would be needed to retry the operation.
	TimeSeries *TimeSeries `protobuf:"bytes,1,opt,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"`
	// The status of the requested write operation.
	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *CreateTimeSeriesError) Reset()         { *m = CreateTimeSeriesError{} }
func (m *CreateTimeSeriesError) String() string { return proto.CompactTextString(m) }
func (*CreateTimeSeriesError) ProtoMessage()    {}
func (*CreateTimeSeriesError) Descriptor() ([]byte, []int) {
	return fileDescriptor_metric_service_871726c1e2cbafff, []int{11}
}
func (m *CreateTimeSeriesError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateTimeSeriesError.Unmarshal(m, b)
}
func (m *CreateTimeSeriesError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateTimeSeriesError.Marshal(b, m, deterministic)
}
func (dst *CreateTimeSeriesError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateTimeSeriesError.Merge(dst, src)
}
func (m *CreateTimeSeriesError) XXX_Size() int {
	return xxx_messageInfo_CreateTimeSeriesError.Size(m)
}
func (m *CreateTimeSeriesError) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateTimeSeriesError.DiscardUnknown(m)
}

var xxx_messageInfo_CreateTimeSeriesError proto.InternalMessageInfo

func (m *CreateTimeSeriesError) GetTimeSeries() *TimeSeries {
	if m != nil {
		return m.TimeSeries
	}
	return nil
}

func (m *CreateTimeSeriesError) GetStatus() *status.Status {
	if m != nil {
		return m.Status
	}
	return nil
}

func init() {
	proto.RegisterType((*ListMonitoredResourceDescriptorsRequest)(nil), "google.monitoring.v3.ListMonitoredResourceDescriptorsRequest")
	proto.RegisterType((*ListMonitoredResourceDescriptorsResponse)(nil), "google.monitoring.v3.ListMonitoredResourceDescriptorsResponse")
	proto.RegisterType((*GetMonitoredResourceDescriptorRequest)(nil), "google.monitoring.v3.GetMonitoredResourceDescriptorRequest")
	proto.RegisterType((*ListMetricDescriptorsRequest)(nil), "google.monitoring.v3.ListMetricDescriptorsRequest")
	proto.RegisterType((*ListMetricDescriptorsResponse)(nil), "google.monitoring.v3.ListMetricDescriptorsResponse")
	proto.RegisterType((*GetMetricDescriptorRequest)(nil), "google.monitoring.v3.GetMetricDescriptorRequest")
	proto.RegisterType((*CreateMetricDescriptorRequest)(nil), "google.monitoring.v3.CreateMetricDescriptorRequest")
	proto.RegisterType((*DeleteMetricDescriptorRequest)(nil), "google.monitoring.v3.DeleteMetricDescriptorRequest")
	proto.RegisterType((*ListTimeSeriesRequest)(nil), "google.monitoring.v3.ListTimeSeriesRequest")
	proto.RegisterType((*ListTimeSeriesResponse)(nil), "google.monitoring.v3.ListTimeSeriesResponse")
	proto.RegisterType((*CreateTimeSeriesRequest)(nil), "google.monitoring.v3.CreateTimeSeriesRequest")
	proto.RegisterType((*CreateTimeSeriesError)(nil), "google.monitoring.v3.CreateTimeSeriesError")
	proto.RegisterEnum("google.monitoring.v3.ListTimeSeriesRequest_TimeSeriesView", ListTimeSeriesRequest_TimeSeriesView_name, ListTimeSeriesRequest_TimeSeriesView_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// MetricServiceClient is the client API for MetricService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MetricServiceClient interface {
	// Lists monitored resource descriptors that match a filter. This method does
	// not require a Stackdriver account.
	ListMonitoredResourceDescriptors(ctx context.Context, in *ListMonitoredResourceDescriptorsRequest, opts ...grpc.CallOption) (*ListMonitoredResourceDescriptorsResponse, error)
	// Gets a single monitored resource descriptor. This method does not require a
	// Stackdriver account.
	GetMonitoredResourceDescriptor(ctx context.Context, in *GetMonitoredResourceDescriptorRequest, opts ...grpc.CallOption) (*monitoredres.MonitoredResourceDescriptor, error)
	// Lists metric descriptors that match a filter. This method does not require
	// a Stackdriver account.
	ListMetricDescriptors(ctx context.Context, in *ListMetricDescriptorsRequest, opts ...grpc.CallOption) (*ListMetricDescriptorsResponse, error)
	// Gets a single metric descriptor. This method does not require a Stackdriver
	// account.
	GetMetricDescriptor(ctx context.Context, in *GetMetricDescriptorRequest, opts ...grpc.CallOption) (*metric.MetricDescriptor, error)
	// Creates a new metric descriptor.
	// User-created metric descriptors define
	// [custom metrics](/monitoring/custom-metrics).
	CreateMetricDescriptor(ctx context.Context, in *CreateMetricDescriptorRequest, opts ...grpc.CallOption) (*metric.MetricDescriptor, error)
	// Deletes a metric descriptor. Only user-created
	// [custom metrics](/monitoring/custom-metrics) can be deleted.
	DeleteMetricDescriptor(ctx context.Context, in *DeleteMetricDescriptorRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Lists time series that match a filter. This method does not require a
	// Stackdriver account.
	ListTimeSeries(ctx context.Context, in *ListTimeSeriesRequest, opts ...grpc.CallOption) (*ListTimeSeriesResponse, error)
	// Creates or adds data to one or more time series.
	// The response is empty if all time series in the request were written.
	// If any time series could not be written, a corresponding failure message is
	// included in the error response.
	CreateTimeSeries(ctx context.Context, in *CreateTimeSeriesRequest, opts ...grpc.CallOption) (*empty.Empty, error)
}

type metricServiceClient struct {
	cc *grpc.ClientConn
}

func NewMetricServiceClient(cc *grpc.ClientConn) MetricServiceClient {
	return &metricServiceClient{cc}
}

func (c *metricServiceClient) ListMonitoredResourceDescriptors(ctx context.Context, in *ListMonitoredResourceDescriptorsRequest, opts ...grpc.CallOption) (*ListMonitoredResourceDescriptorsResponse, error) {
	out := new(ListMonitoredResourceDescriptorsResponse)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/ListMonitoredResourceDescriptors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) GetMonitoredResourceDescriptor(ctx context.Context, in *GetMonitoredResourceDescriptorRequest, opts ...grpc.CallOption) (*monitoredres.MonitoredResourceDescriptor, error) {
	out := new(monitoredres.MonitoredResourceDescriptor)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/GetMonitoredResourceDescriptor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) ListMetricDescriptors(ctx context.Context, in *ListMetricDescriptorsRequest, opts ...grpc.CallOption) (*ListMetricDescriptorsResponse, error) {
	out := new(ListMetricDescriptorsResponse)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/ListMetricDescriptors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) GetMetricDescriptor(ctx context.Context, in *GetMetricDescriptorRequest, opts ...grpc.CallOption) (*metric.MetricDescriptor, error) {
	out := new(metric.MetricDescriptor)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/GetMetricDescriptor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) CreateMetricDescriptor(ctx context.Context, in *CreateMetricDescriptorRequest, opts ...grpc.CallOption) (*metric.MetricDescriptor, error) {
	out := new(metric.MetricDescriptor)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/CreateMetricDescriptor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) DeleteMetricDescriptor(ctx context.Context, in *DeleteMetricDescriptorRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/DeleteMetricDescriptor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) ListTimeSeries(ctx context.Context, in *ListTimeSeriesRequest, opts ...grpc.CallOption) (*ListTimeSeriesResponse, error) {
	out := new(ListTimeSeriesResponse)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/ListTimeSeries", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *metricServiceClient) CreateTimeSeries(ctx context.Context, in *CreateTimeSeriesRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.monitoring.v3.MetricService/CreateTimeSeries", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MetricServiceServer is the server API for MetricService service.
type MetricServiceServer interface {
	// Lists monitored resource descriptors that match a filter. This method does
	// not require a Stackdriver account.
	ListMonitoredResourceDescriptors(context.Context, *ListMonitoredResourceDescriptorsRequest) (*ListMonitoredResourceDescriptorsResponse, error)
	// Gets a single monitored resource descriptor. This method does not require a
	// Stackdriver account.
	GetMonitoredResourceDescriptor(context.Context, *GetMonitoredResourceDescriptorRequest) (*monitoredres.MonitoredResourceDescriptor, error)
	// Lists metric descriptors that match a filter. This method does not require
	// a Stackdriver account.
	ListMetricDescriptors(context.Context, *ListMetricDescriptorsRequest) (*ListMetricDescriptorsResponse, error)
	// Gets a single metric descriptor. This method does not require a Stackdriver
	// account.
	GetMetricDescriptor(context.Context, *GetMetricDescriptorRequest) (*metric.MetricDescriptor, error)
	// Creates a new metric descriptor.
	// User-created metric descriptors define
	// [custom metrics](/monitoring/custom-metrics).
	CreateMetricDescriptor(context.Context, *CreateMetricDescriptorRequest) (*metric.MetricDescriptor, error)
	// Deletes a metric descriptor. Only user-created
	// [custom metrics](/monitoring/custom-metrics) can be deleted.
	DeleteMetricDescriptor(context.Context, *DeleteMetricDescriptorRequest) (*empty.Empty, error)
	// Lists time series that match a filter. This method does not require a
	// Stackdriver account.
	ListTimeSeries(context.Context, *ListTimeSeriesRequest) (*ListTimeSeriesResponse, error)
	// Creates or adds data to one or more time series.
	// The response is empty if all time series in the request were written.
	// If any time series could not be written, a corresponding failure message is
	// included in the error response.
	CreateTimeSeries(context.Context, *CreateTimeSeriesRequest) (*empty.Empty, error)
}

func RegisterMetricServiceServer(s *grpc.Server, srv MetricServiceServer) {
	s.RegisterService(&_MetricService_serviceDesc, srv)
}

func _MetricService_ListMonitoredResourceDescriptors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListMonitoredResourceDescriptorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).ListMonitoredResourceDescriptors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/ListMonitoredResourceDescriptors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).ListMonitoredResourceDescriptors(ctx, req.(*ListMonitoredResourceDescriptorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_GetMonitoredResourceDescriptor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMonitoredResourceDescriptorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).GetMonitoredResourceDescriptor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/GetMonitoredResourceDescriptor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).GetMonitoredResourceDescriptor(ctx, req.(*GetMonitoredResourceDescriptorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_ListMetricDescriptors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListMetricDescriptorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).ListMetricDescriptors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/ListMetricDescriptors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).ListMetricDescriptors(ctx, req.(*ListMetricDescriptorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_GetMetricDescriptor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMetricDescriptorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).GetMetricDescriptor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/GetMetricDescriptor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).GetMetricDescriptor(ctx, req.(*GetMetricDescriptorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_CreateMetricDescriptor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateMetricDescriptorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).CreateMetricDescriptor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/CreateMetricDescriptor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).CreateMetricDescriptor(ctx, req.(*CreateMetricDescriptorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_DeleteMetricDescriptor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteMetricDescriptorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).DeleteMetricDescriptor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/DeleteMetricDescriptor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).DeleteMetricDescriptor(ctx, req.(*DeleteMetricDescriptorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_ListTimeSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListTimeSeriesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).ListTimeSeries(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/ListTimeSeries",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).ListTimeSeries(ctx, req.(*ListTimeSeriesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MetricService_CreateTimeSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTimeSeriesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MetricServiceServer).CreateTimeSeries(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.monitoring.v3.MetricService/CreateTimeSeries",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MetricServiceServer).CreateTimeSeries(ctx, req.(*CreateTimeSeriesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _MetricService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.monitoring.v3.MetricService",
	HandlerType: (*MetricServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListMonitoredResourceDescriptors",
			Handler:    _MetricService_ListMonitoredResourceDescriptors_Handler,
		},
		{
			MethodName: "GetMonitoredResourceDescriptor",
			Handler:    _MetricService_GetMonitoredResourceDescriptor_Handler,
		},
		{
			MethodName: "ListMetricDescriptors",
			Handler:    _MetricService_ListMetricDescriptors_Handler,
		},
		{
			MethodName: "GetMetricDescriptor",
			Handler:    _MetricService_GetMetricDescriptor_Handler,
		},
		{
			MethodName: "CreateMetricDescriptor",
			Handler:    _MetricService_CreateMetricDescriptor_Handler,
		},
		{
			MethodName: "DeleteMetricDescriptor",
			Handler:    _MetricService_DeleteMetricDescriptor_Handler,
		},
		{
			MethodName: "ListTimeSeries",
			Handler:    _MetricService_ListTimeSeries_Handler,
		},
		{
			MethodName: "CreateTimeSeries",
			Handler:    _MetricService_CreateTimeSeries_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/monitoring/v3/metric_service.proto",
}

func init() {
	proto.RegisterFile("google/monitoring/v3/metric_service.proto", fileDescriptor_metric_service_871726c1e2cbafff)
}

var fileDescriptor_metric_service_871726c1e2cbafff = []byte{
	// 1049 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
	0x14, 0x67, 0xe2, 0x34, 0x71, 0x9e, 0xd5, 0xd4, 0x9d, 0xb6, 0xae, 0xd9, 0x26, 0x95, 0xbb, 0xa8,
	0xc4, 0x75, 0xcb, 0x6e, 0x65, 0x57, 0x1c, 0x92, 0x26, 0x52, 0xfe, 0x51, 0x2a, 0x02, 0x8a, 0xd6,
	0x25, 0x87, 0x2a, 0x92, 0xb5, 0xb1, 0xa7, 0xab, 0x01, 0xef, 0xce, 0x32, 0x3b, 0x76, 0x9b, 0xa2,
	0x70, 0xe0, 0xd0, 0x3b, 0x02, 0x24, 0xf8, 0x0a, 0x39, 0x80, 0xf8, 0x0a, 0x88, 0x13, 0x57, 0xce,
	0xdc, 0xf8, 0x0a, 0xdc, 0xd1, 0xce, 0xee, 0xc6, 0xf6, 0x7a, 0x77, 0x6d, 0x73, 0xe9, 0xcd, 0x3b,
	0xef, 0xcd, 0x7b, 0xbf, 0xf7, 0x9b, 0x79, 0xef, 0x37, 0x86, 0x7b, 0x16, 0x63, 0x56, 0x97, 0xe8,
	0x36, 0x73, 0xa8, 0x60, 0x9c, 0x3a, 0x96, 0xde, 0x6f, 0xe8, 0x36, 0x11, 0x9c, 0xb6, 0x5b, 0x1e,
	0xe1, 0x7d, 0xda, 0x26, 0x9a, 0xcb, 0x99, 0x60, 0xf8, 0x7a, 0xe0, 0xaa, 0x0d, 0x5c, 0xb5, 0x7e,
	0x43, 0x59, 0x09, 0x03, 0x98, 0x2e, 0xd5, 0x4d, 0xc7, 0x61, 0xc2, 0x14, 0x94, 0x39, 0x5e, 0xb0,
	0x47, 0xb9, 0x39, 0x64, 0x0d, 0x82, 0x86, 0x86, 0xf7, 0x86, 0x0d, 0x41, 0x40, 0xd2, 0x69, 0x71,
	0xe2, 0xb1, 0x1e, 0x8f, 0x32, 0x2a, 0x77, 0x12, 0xc1, 0xb5, 0x99, 0x6d, 0x33, 0x27, 0xd3, 0x65,
	0x24, 0xd5, 0xed, 0xd0, 0x45, 0x7e, 0x9d, 0xf4, 0x5e, 0xe8, 0x9d, 0x1e, 0x97, 0x20, 0x43, 0xfb,
	0xad, 0xb8, 0x9d, 0xd8, 0xae, 0x38, 0x8d, 0x15, 0xc0, 0xdd, 0xb6, 0xee, 0x09, 0x53, 0xf4, 0xc2,
	0xca, 0xd4, 0xef, 0x10, 0xac, 0x1d, 0x50, 0x4f, 0x7c, 0x1a, 0x81, 0x37, 0x42, 0xec, 0x7b, 0xc4,
	0x6b, 0x73, 0xea, 0x0a, 0xc6, 0x3d, 0x83, 0x7c, 0xd5, 0x23, 0x9e, 0xc0, 0x18, 0xe6, 0x1d, 0xd3,
	0x26, 0xe5, 0x4b, 0x15, 0x54, 0x5d, 0x32, 0xe4, 0x6f, 0x5c, 0x82, 0x85, 0x17, 0xb4, 0x2b, 0x08,
	0x2f, 0xcf, 0xc9, 0xd5, 0xf0, 0x0b, 0xdf, 0x82, 0x25, 0xd7, 0xb4, 0x48, 0xcb, 0xa3, 0xaf, 0x49,
	0x39, 0x57, 0x41, 0xd5, 0x4b, 0x46, 0xde, 0x5f, 0x68, 0xd2, 0xd7, 0x04, 0xaf, 0x02, 0x48, 0xa3,
	0x60, 0x5f, 0x12, 0xa7, 0x3c, 0x2f, 0x37, 0x4a, 0xf7, 0x67, 0xfe, 0x82, 0xfa, 0x0b, 0x82, 0xea,
	0x64, 0x4c, 0x9e, 0xcb, 0x1c, 0x8f, 0xe0, 0xe7, 0x70, 0x3d, 0xa2, 0xbb, 0xd5, 0x19, 0xd8, 0xcb,
	0xa8, 0x92, 0xab, 0x16, 0xea, 0x6b, 0x5a, 0x78, 0xda, 0xa6, 0x4b, 0xb5, 0x8c, 0x78, 0xc6, 0x35,
	0x3e, 0x9e, 0x03, 0xbf, 0x0f, 0x57, 0x1c, 0xf2, 0x4a, 0xb4, 0x86, 0xc0, 0x06, 0x55, 0x5e, 0xf6,
	0x97, 0x0f, 0x2f, 0x00, 0x6f, 0xc0, 0xdd, 0x27, 0x24, 0x0b, 0x6e, 0x9c, 0xc1, 0xdc, 0x80, 0x41,
	0xf5, 0x0d, 0x82, 0x15, 0x59, 0xad, 0x3c, 0xec, 0xb7, 0x48, 0xfb, 0x0f, 0x08, 0x56, 0x53, 0x80,
	0x84, 0x5c, 0x7f, 0x02, 0x38, 0x6c, 0xa9, 0x71, 0xa6, 0x57, 0x46, 0x98, 0x8e, 0x85, 0x30, 0xae,
	0xda, 0xf1, 0xa0, 0x53, 0x93, 0xfb, 0x10, 0x14, 0x9f, 0xdc, 0x78, 0xc4, 0x0c, 0x46, 0xbf, 0x81,
	0xd5, 0x5d, 0x4e, 0x4c, 0x41, 0x66, 0xd8, 0x84, 0x9f, 0xc2, 0xd5, 0xb1, 0xda, 0x24, 0xa0, 0x49,
	0xa5, 0x15, 0xe3, 0xa5, 0xa9, 0x0d, 0x58, 0xdd, 0x23, 0x5d, 0x32, 0x53, 0x7e, 0xf5, 0xa7, 0x1c,
	0xdc, 0xf0, 0xd9, 0x7f, 0x46, 0x6d, 0xd2, 0x24, 0x9c, 0x92, 0xb1, 0xf3, 0x87, 0x29, 0xce, 0x7f,
	0x0b, 0xf2, 0xd4, 0x11, 0x84, 0xf7, 0xcd, 0xae, 0x3c, 0xe0, 0x42, 0x5d, 0xd5, 0x92, 0xe6, 0x9d,
	0xe6, 0xa7, 0x79, 0x1a, 0x7a, 0x1a, 0x17, 0x7b, 0xf0, 0x2e, 0x14, 0x4c, 0xcb, 0xe2, 0xc4, 0x92,
	0x93, 0x45, 0x5e, 0xb9, 0x42, 0xfd, 0x4e, 0x72, 0x88, 0xed, 0x81, 0xa3, 0x31, 0xbc, 0x0b, 0xbf,
	0x0b, 0x79, 0xc6, 0x3b, 0x84, 0xb7, 0x4e, 0x4e, 0xcb, 0x0b, 0x12, 0xde, 0xa2, 0xfc, 0xde, 0x39,
	0xc5, 0x9f, 0xc1, 0x7c, 0x9f, 0x92, 0x97, 0xe5, 0xc5, 0x0a, 0xaa, 0x2e, 0xd7, 0xd7, 0x93, 0x03,
	0x27, 0xd2, 0xa0, 0x0d, 0x56, 0x8e, 0x28, 0x79, 0x69, 0xc8, 0x38, 0xa3, 0xf7, 0x3d, 0x9f, 0x79,
	0xdf, 0x97, 0xe2, 0xf7, 0x7d, 0x0d, 0x96, 0x47, 0x63, 0xe2, 0x3c, 0xcc, 0x7f, 0xf4, 0xf9, 0xc1,
	0x41, 0xf1, 0x1d, 0x5c, 0x80, 0xc5, 0x8f, 0xf7, 0xb7, 0xf7, 0xf6, 0x8d, 0x66, 0x11, 0xa9, 0xbf,
	0x23, 0x28, 0xc5, 0x31, 0x85, 0x1d, 0xb1, 0x0d, 0x05, 0x41, 0x6d, 0xe2, 0x4b, 0x0c, 0x25, 0x51,
	0x2b, 0x54, 0xd2, 0x29, 0x0f, 0xb7, 0x83, 0xb8, 0xf8, 0x3d, 0x6d, 0x1f, 0xe0, 0x4d, 0x28, 0x92,
	0x57, 0xa4, 0xdd, 0xf3, 0x29, 0x6e, 0x11, 0xce, 0xfd, 0xd6, 0xcb, 0xc9, 0x7c, 0x38, 0xca, 0xc7,
	0xdd, 0xb6, 0xd6, 0x94, 0xd3, 0xdd, 0xb8, 0x72, 0xe1, 0xbb, 0x2f, 0x5d, 0x55, 0x17, 0x6e, 0x06,
	0x4d, 0x91, 0x7e, 0xc1, 0x86, 0xdb, 0x21, 0x56, 0xd8, 0xdc, 0xec, 0x85, 0xf9, 0x83, 0xed, 0x46,
	0x3c, 0xa5, 0x04, 0x33, 0xce, 0x1a, 0x9a, 0x99, 0xb5, 0x1a, 0x2c, 0x04, 0x3a, 0x16, 0xf6, 0x68,
	0x12, 0x07, 0xa1, 0x47, 0xfd, 0x5f, 0x80, 0xcb, 0x41, 0x2b, 0x36, 0x83, 0x97, 0x00, 0xfe, 0x1b,
	0x41, 0x65, 0x92, 0xc2, 0xe0, 0xcd, 0xf4, 0xdb, 0x39, 0x85, 0x5a, 0x2a, 0x5b, 0xff, 0x77, 0x7b,
	0x70, 0xb5, 0xd4, 0xf5, 0x6f, 0xff, 0xfa, 0xe7, 0xfb, 0xb9, 0x47, 0xb8, 0xee, 0xbf, 0x04, 0xbe,
	0xf6, 0x0f, 0x65, 0xd3, 0xe5, 0xec, 0x0b, 0xd2, 0x16, 0x9e, 0x5e, 0x3b, 0x1b, 0xbc, 0x36, 0x92,
	0xa0, 0xff, 0x81, 0xe0, 0x76, 0xb6, 0x22, 0xe1, 0x8d, 0x64, 0x78, 0x53, 0xe9, 0x98, 0x32, 0xad,
	0xac, 0xaa, 0x8f, 0x65, 0x11, 0x1f, 0xe2, 0x47, 0x49, 0x45, 0x64, 0xd6, 0xa0, 0xd7, 0xce, 0xf0,
	0x6f, 0x28, 0x98, 0x89, 0x63, 0x8a, 0x84, 0xeb, 0x19, 0xe4, 0xa6, 0xe8, 0xa8, 0xd2, 0x98, 0x69,
	0x4f, 0x78, 0x0a, 0xba, 0x2c, 0xe0, 0x1e, 0x5e, 0x4b, 0x39, 0x85, 0x31, 0x64, 0x3f, 0x23, 0xb8,
	0x96, 0xa0, 0x57, 0xf8, 0x61, 0x3a, 0xdf, 0xc9, 0x2a, 0xa1, 0x64, 0xca, 0x8e, 0x5a, 0x97, 0xc0,
	0x1e, 0xe0, 0x5a, 0x32, 0xb3, 0x71, 0x5c, 0x7a, 0xad, 0x76, 0x86, 0x7f, 0x45, 0x50, 0x4a, 0x56,
	0x46, 0x9c, 0x42, 0x4e, 0xa6, 0x8e, 0x4e, 0x40, 0xb8, 0x23, 0x11, 0x3e, 0x56, 0xa7, 0xa5, 0x6e,
	0x7d, 0x5c, 0x80, 0x7d, 0x36, 0x4b, 0xc9, 0x5a, 0x9a, 0x86, 0x38, 0x53, 0x79, 0x95, 0x52, 0xb4,
	0x29, 0x7a, 0x25, 0x6b, 0xfb, 0xfe, 0x2b, 0x39, 0x62, 0xb3, 0x36, 0x0b, 0x9b, 0x3f, 0x22, 0x58,
	0x1e, 0x95, 0x05, 0x7c, 0x7f, 0x06, 0x41, 0x53, 0x1e, 0x4c, 0xe7, 0x1c, 0x5e, 0xc4, 0xaa, 0x44,
	0xa8, 0xe2, 0x4a, 0x32, 0x9b, 0x43, 0xa3, 0xf1, 0x0d, 0x82, 0x62, 0x7c, 0xee, 0xe2, 0x0f, 0xb2,
	0xce, 0x77, 0x1c, 0x5b, 0x1a, 0x4f, 0xf7, 0x25, 0x8a, 0xbb, 0xea, 0x44, 0x14, 0xeb, 0xa8, 0xb6,
	0x73, 0x8e, 0xa0, 0xdc, 0x66, 0x76, 0x62, 0xe6, 0x1d, 0x3c, 0x32, 0x91, 0x0f, 0xfd, 0x34, 0x87,
	0xe8, 0xf9, 0x56, 0xe8, 0x6b, 0xb1, 0xae, 0xe9, 0x58, 0x1a, 0xe3, 0x96, 0x6e, 0x11, 0x47, 0x82,
	0xd0, 0x03, 0x93, 0xe9, 0x52, 0x6f, 0xf4, 0x6f, 0xd2, 0xc6, 0xe0, 0xeb, 0x7c, 0x4e, 0x79, 0x12,
	0x04, 0xd8, 0xed, 0xb2, 0x5e, 0x27, 0x1a, 0x4d, 0x7e, 0xca, 0xa3, 0xc6, 0x9f, 0x91, 0xf1, 0x58,
	0x1a, 0x8f, 0x07, 0xc6, 0xe3, 0xa3, 0xc6, 0xc9, 0x82, 0x4c, 0xd2, 0xf8, 0x2f, 0x00, 0x00, 0xff,
	0xff, 0x79, 0x2b, 0x3b, 0x90, 0x4a, 0x0e, 0x00, 0x00,
}
