// Code generated by protoc-gen-go.
// source: google/api/monitored_resource.proto
// DO NOT EDIT!

package api

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

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

// An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
// type name and a set of labels.  For example, the monitored resource
// descriptor for Google Compute Engine VM instances has a type of
// `"gce_instance"` and specifies the use of the labels `"instance_id"` and
// `"zone"` to identify particular VM instances.
//
// Different APIs can support different monitored resource types. APIs generally
// provide a `list` method that returns the monitored resource descriptors used
// by the API.
type MonitoredResourceDescriptor struct {
	// Optional. The resource name of the monitored resource descriptor:
	// `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
	// {type} is the value of the `type` field in this object and
	// {project_id} is a project ID that provides API-specific context for
	// accessing the type.  APIs that do not use project information can use the
	// resource name format `"monitoredResourceDescriptors/{type}"`.
	Name string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
	// Required. The monitored resource type. For example, the type
	// `"cloudsql_database"` represents databases in Google Cloud SQL.
	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
	// Optional. A concise name for the monitored resource type that might be
	// displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// Optional. A detailed description of the monitored resource type that might
	// be used in documentation.
	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
	// Required. A set of labels used to describe instances of this monitored
	// resource type. For example, an individual Google Cloud SQL database is
	// identified by values for the labels `"database_id"` and `"zone"`.
	Labels []*LabelDescriptor `protobuf:"bytes,4,rep,name=labels" json:"labels,omitempty"`
}

func (m *MonitoredResourceDescriptor) Reset()                    { *m = MonitoredResourceDescriptor{} }
func (m *MonitoredResourceDescriptor) String() string            { return proto.CompactTextString(m) }
func (*MonitoredResourceDescriptor) ProtoMessage()               {}
func (*MonitoredResourceDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor13, []int{0} }

func (m *MonitoredResourceDescriptor) GetLabels() []*LabelDescriptor {
	if m != nil {
		return m.Labels
	}
	return nil
}

// An object representing a resource that can be used for monitoring, logging,
// billing, or other purposes. Examples include virtual machine instances,
// databases, and storage devices such as disks. The `type` field identifies a
// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
// schema. Information in the `labels` field identifies the actual resource and
// its attributes according to the schema. For example, a particular Compute
// Engine VM instance could be represented by the following object, because the
// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
// `"instance_id"` and `"zone"`:
//
//     { "type": "gce_instance",
//       "labels": { "instance_id": "my-instance",
//                   "zone": "us-central1-a" }}
type MonitoredResource struct {
	// Required. The monitored resource type. This field must match
	// the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
	// example, the type of a Cloud SQL database is `"cloudsql_database"`.
	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
	// Required. Values for all of the labels listed in the associated monitored
	// resource descriptor. For example, Cloud SQL databases use the labels
	// `"database_id"` and `"zone"`.
	Labels map[string]string `protobuf:"bytes,2,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}

func (m *MonitoredResource) Reset()                    { *m = MonitoredResource{} }
func (m *MonitoredResource) String() string            { return proto.CompactTextString(m) }
func (*MonitoredResource) ProtoMessage()               {}
func (*MonitoredResource) Descriptor() ([]byte, []int) { return fileDescriptor13, []int{1} }

func (m *MonitoredResource) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func init() {
	proto.RegisterType((*MonitoredResourceDescriptor)(nil), "google.api.MonitoredResourceDescriptor")
	proto.RegisterType((*MonitoredResource)(nil), "google.api.MonitoredResource")
}

func init() { proto.RegisterFile("google/api/monitored_resource.proto", fileDescriptor13) }

var fileDescriptor13 = []byte{
	// 281 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x6c, 0x51, 0x4d, 0x4b, 0xc3, 0x40,
	0x10, 0x65, 0x93, 0xb6, 0xe0, 0x44, 0x44, 0x17, 0x29, 0xa1, 0xbd, 0xc4, 0x7a, 0xa9, 0x1e, 0x52,
	0xb0, 0x17, 0xf5, 0x66, 0xd1, 0x9b, 0x4a, 0xc9, 0x1f, 0x28, 0xdb, 0x64, 0x29, 0x8b, 0x49, 0x66,
	0xd9, 0xa4, 0x42, 0x7e, 0x90, 0xbf, 0xc3, 0xbf, 0x26, 0xfb, 0x11, 0x13, 0x48, 0x6f, 0xb3, 0x6f,
	0xde, 0xbc, 0xf7, 0x66, 0x07, 0x6e, 0x0f, 0x88, 0x87, 0x9c, 0xaf, 0x98, 0x14, 0xab, 0x02, 0x4b,
	0x51, 0xa3, 0xe2, 0xd9, 0x4e, 0xf1, 0x0a, 0x8f, 0x2a, 0xe5, 0xb1, 0x54, 0x58, 0x23, 0x05, 0x4b,
	0x8a, 0x99, 0x14, 0xb3, 0x69, 0x6f, 0x20, 0x67, 0x7b, 0x9e, 0x5b, 0xce, 0xe2, 0x97, 0xc0, 0xfc,
	0xa3, 0x15, 0x48, 0xdc, 0xfc, 0x2b, 0xaf, 0x52, 0x25, 0x64, 0x8d, 0x8a, 0x52, 0x18, 0x95, 0xac,
	0xe0, 0xe1, 0x38, 0x22, 0xcb, 0xb3, 0xc4, 0xd4, 0x1a, 0xab, 0x1b, 0xc9, 0x43, 0x62, 0x31, 0x5d,
	0xd3, 0x1b, 0x38, 0xcf, 0x44, 0x25, 0x73, 0xd6, 0xec, 0x0c, 0xdf, 0x33, 0xbd, 0xc0, 0x61, 0x9f,
	0x7a, 0x2c, 0x82, 0x20, 0x73, 0xc2, 0x02, 0xcb, 0xd0, 0x77, 0x8c, 0x0e, 0xa2, 0x6b, 0x98, 0x98,
	0x6c, 0x55, 0x38, 0x8a, 0xfc, 0x65, 0xf0, 0x30, 0x8f, 0xbb, 0x0d, 0xe2, 0x77, 0xdd, 0xe9, 0x92,
	0x25, 0x8e, 0xba, 0xf8, 0x21, 0x70, 0x35, 0xd8, 0xe0, 0x64, 0xc6, 0x97, 0x7f, 0x79, 0xcf, 0xc8,
	0xdf, 0xf5, 0xe5, 0x07, 0x12, 0xd6, 0xb0, 0x7a, 0x2b, 0x6b, 0xd5, 0xb4, 0x66, 0xb3, 0x27, 0x08,
	0x7a, 0x30, 0xbd, 0x04, 0xff, 0x8b, 0x37, 0xce, 0x44, 0x97, 0xf4, 0x1a, 0xc6, 0xdf, 0x2c, 0x3f,
	0xb6, 0x1f, 0x60, 0x1f, 0xcf, 0xde, 0x23, 0xd9, 0xdc, 0xc3, 0x45, 0x8a, 0x45, 0xcf, 0x72, 0x33,
	0x1d, 0x78, 0x6e, 0xf5, 0x4d, 0xb6, 0x64, 0x3f, 0x31, 0xc7, 0x59, 0xff, 0x05, 0x00, 0x00, 0xff,
	0xff, 0xa8, 0x30, 0xe3, 0x0f, 0xe7, 0x01, 0x00, 0x00,
}
