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

package serviceconfig

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

// Logging configuration of the service.
//
// The following example shows how to configure logs to be sent to the
// producer and consumer projects. In the example, the `activity_history`
// log is sent to both the producer and consumer projects, whereas the
// `purchase_history` log is only sent to the producer project.
//
//     monitored_resources:
//     - type: library.googleapis.com/branch
//       labels:
//       - key: /city
//         description: The city where the library branch is located in.
//       - key: /name
//         description: The name of the branch.
//     logs:
//     - name: activity_history
//       labels:
//       - key: /customer_id
//     - name: purchase_history
//     logging:
//       producer_destinations:
//       - monitored_resource: library.googleapis.com/branch
//         logs:
//         - activity_history
//         - purchase_history
//       consumer_destinations:
//       - monitored_resource: library.googleapis.com/branch
//         logs:
//         - activity_history
type Logging struct {
	// Logging configurations for sending logs to the producer project.
	// There can be multiple producer destinations, each one must have a
	// different monitored resource type. A log can be used in at most
	// one producer destination.
	ProducerDestinations []*Logging_LoggingDestination `protobuf:"bytes,1,rep,name=producer_destinations,json=producerDestinations,proto3" json:"producer_destinations,omitempty"`
	// Logging configurations for sending logs to the consumer project.
	// There can be multiple consumer destinations, each one must have a
	// different monitored resource type. A log can be used in at most
	// one consumer destination.
	ConsumerDestinations []*Logging_LoggingDestination `protobuf:"bytes,2,rep,name=consumer_destinations,json=consumerDestinations,proto3" json:"consumer_destinations,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

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

func (m *Logging) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Logging.Unmarshal(m, b)
}
func (m *Logging) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Logging.Marshal(b, m, deterministic)
}
func (m *Logging) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Logging.Merge(m, src)
}
func (m *Logging) XXX_Size() int {
	return xxx_messageInfo_Logging.Size(m)
}
func (m *Logging) XXX_DiscardUnknown() {
	xxx_messageInfo_Logging.DiscardUnknown(m)
}

var xxx_messageInfo_Logging proto.InternalMessageInfo

func (m *Logging) GetProducerDestinations() []*Logging_LoggingDestination {
	if m != nil {
		return m.ProducerDestinations
	}
	return nil
}

func (m *Logging) GetConsumerDestinations() []*Logging_LoggingDestination {
	if m != nil {
		return m.ConsumerDestinations
	}
	return nil
}

// Configuration of a specific logging destination (the producer project
// or the consumer project).
type Logging_LoggingDestination struct {
	// The monitored resource type. The type must be defined in the
	// [Service.monitored_resources][google.api.Service.monitored_resources] section.
	MonitoredResource string `protobuf:"bytes,3,opt,name=monitored_resource,json=monitoredResource,proto3" json:"monitored_resource,omitempty"`
	// Names of the logs to be sent to this destination. Each name must
	// be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
	// not a domain scoped name, it will be automatically prefixed with
	// the service name followed by "/".
	Logs                 []string `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Logging_LoggingDestination) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Logging_LoggingDestination.Unmarshal(m, b)
}
func (m *Logging_LoggingDestination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Logging_LoggingDestination.Marshal(b, m, deterministic)
}
func (m *Logging_LoggingDestination) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Logging_LoggingDestination.Merge(m, src)
}
func (m *Logging_LoggingDestination) XXX_Size() int {
	return xxx_messageInfo_Logging_LoggingDestination.Size(m)
}
func (m *Logging_LoggingDestination) XXX_DiscardUnknown() {
	xxx_messageInfo_Logging_LoggingDestination.DiscardUnknown(m)
}

var xxx_messageInfo_Logging_LoggingDestination proto.InternalMessageInfo

func (m *Logging_LoggingDestination) GetMonitoredResource() string {
	if m != nil {
		return m.MonitoredResource
	}
	return ""
}

func (m *Logging_LoggingDestination) GetLogs() []string {
	if m != nil {
		return m.Logs
	}
	return nil
}

func init() {
	proto.RegisterType((*Logging)(nil), "google.api.Logging")
	proto.RegisterType((*Logging_LoggingDestination)(nil), "google.api.Logging.LoggingDestination")
}

func init() {
	proto.RegisterFile("google/api/logging.proto", fileDescriptor_9505b080db6dcefe)
}

var fileDescriptor_9505b080db6dcefe = []byte{
	// 260 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x4d, 0x4b, 0xc4, 0x30,
	0x10, 0x86, 0x69, 0x77, 0x51, 0x36, 0x8a, 0x60, 0x50, 0x28, 0x9e, 0x16, 0x0f, 0xb2, 0x17, 0x53,
	0xd0, 0xa3, 0x27, 0x17, 0x45, 0x04, 0x0f, 0xa5, 0x17, 0x41, 0x0f, 0x4b, 0x4c, 0xe3, 0x30, 0xd0,
	0xce, 0x84, 0xa4, 0xf5, 0xd7, 0x78, 0xf2, 0x97, 0xca, 0xf6, 0xc3, 0x56, 0x3d, 0xed, 0x29, 0x1f,
	0xcf, 0xbc, 0x4f, 0x92, 0x89, 0x48, 0x80, 0x19, 0x4a, 0x9b, 0x6a, 0x87, 0x69, 0xc9, 0x00, 0x48,
	0xa0, 0x9c, 0xe7, 0x9a, 0xa5, 0xe8, 0x88, 0xd2, 0x0e, 0xcf, 0x3f, 0x63, 0xb1, 0xff, 0xd4, 0x51,
	0xf9, 0x2a, 0x4e, 0x9d, 0xe7, 0xa2, 0x31, 0xd6, 0x6f, 0x0a, 0x1b, 0x6a, 0x24, 0x5d, 0x23, 0x53,
	0x48, 0xa2, 0xe5, 0x6c, 0x75, 0x70, 0x75, 0xa1, 0xc6, 0x9c, 0xea, 0x33, 0xc3, 0x78, 0x37, 0x96,
	0xe7, 0x27, 0x83, 0x64, 0xb2, 0x19, 0xb6, 0x72, 0xc3, 0x14, 0x9a, 0xea, 0xaf, 0x3c, 0xde, 0x4d,
	0x3e, 0x48, 0xa6, 0xf2, 0xb3, 0x67, 0x21, 0xff, 0xd7, 0xca, 0x4b, 0x21, 0x2b, 0x26, 0xac, 0xd9,
	0xdb, 0x62, 0xe3, 0x6d, 0xe0, 0xc6, 0x1b, 0x9b, 0xcc, 0x96, 0xd1, 0x6a, 0x91, 0x1f, 0xff, 0x90,
	0xbc, 0x07, 0x52, 0x8a, 0x79, 0xc9, 0xd0, 0xbd, 0x76, 0x91, 0xb7, 0xf3, 0x35, 0x89, 0x23, 0xc3,
	0xd5, 0xe4, 0x6e, 0xeb, 0xc3, 0xfe, 0xa0, 0x6c, 0xdb, 0xca, 0x2c, 0x7a, 0xb9, 0xef, 0x19, 0x70,
	0xa9, 0x09, 0x14, 0x7b, 0x48, 0xc1, 0x52, 0xdb, 0xe8, 0xb4, 0x43, 0xda, 0x61, 0x68, 0x7f, 0x21,
	0x58, 0xff, 0x81, 0xc6, 0x1a, 0xa6, 0x77, 0x84, 0x9b, 0x5f, 0xab, 0xaf, 0x78, 0xfe, 0x70, 0x9b,
	0x3d, 0xbe, 0xed, 0xb5, 0xc1, 0xeb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x84, 0x9b, 0x80,
	0xbd, 0x01, 0x00, 0x00,
}
