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

package servicecontrol

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google/api"
import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp"

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

// Defines the importance of the data contained in the operation.
type Operation_Importance int32

const (
	// The operation doesn't contain significant monetary value or audit
	// trail. The API implementation may cache and aggregate the data.
	// There is no deduplication based on `operation_id`. The data
	// may be lost when rare and unexpected system failures occur.
	Operation_LOW Operation_Importance = 0
	// The operation contains significant monetary value or audit trail.
	// The API implementation doesn't cache and aggregate the data.
	// Deduplication based on `operation_id` is performed for monetary
	// values. If the method returns successfully, it's guaranteed that
	// the data are persisted in durable storage.
	Operation_HIGH Operation_Importance = 1
)

var Operation_Importance_name = map[int32]string{
	0: "LOW",
	1: "HIGH",
}
var Operation_Importance_value = map[string]int32{
	"LOW":  0,
	"HIGH": 1,
}

func (x Operation_Importance) String() string {
	return proto.EnumName(Operation_Importance_name, int32(x))
}
func (Operation_Importance) EnumDescriptor() ([]byte, []int) { return fileDescriptor4, []int{0, 0} }

// Represents information regarding an operation.
type Operation struct {
	// Identity of the operation. It must be unique within the scope of the
	// service that the operation is generated. If the service calls
	// Check() and Report() on the same operation, the two calls should carry
	// the same id.
	//
	// UUID version 4 is recommended, though not required.
	// In the scenarios where an operation is computed from existing information
	// and an idempotent id is desirable for deduplication purpose, UUID version 5
	// is recommended. See RFC 4122 for details.
	OperationId string `protobuf:"bytes,1,opt,name=operation_id,json=operationId" json:"operation_id,omitempty"`
	// Fully qualified name of the operation.
	// Example of an RPC method name used as operation name:
	//     google.example.library.v1.LibraryService.CreateShelf
	// Example of a service defined operation name:
	//     compute.googleapis.com/InstanceHeartbeat
	OperationName string `protobuf:"bytes,2,opt,name=operation_name,json=operationName" json:"operation_name,omitempty"`
	// Identity of the consumer who is using the service.
	// This field should be filled in for the operations initiated by a
	// consumer, but not for service initiated operations that are
	// not related to a specific consumer.
	//
	// The accepted format is dependent on the implementation.
	// The Google Service Control implementation accepts four forms:
	// "project:<project_id>", "project_number:<project_number>",
	// "api_key:<api_key>" and "spatula_header:<spatula_header>".
	ConsumerId string `protobuf:"bytes,3,opt,name=consumer_id,json=consumerId" json:"consumer_id,omitempty"`
	// Start time of the operation.
	// Required.
	StartTime *google_protobuf3.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
	// End time of the operation.
	// Required when the operation is used in ControllerService.Report,
	// but optional when the operation is used in ControllerService.Check.
	EndTime *google_protobuf3.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
	// Labels describing the operation. Only the following labels are allowed:
	//
	// Labels describing the monitored resource. The labels must be defined in
	// the service configuration.
	//
	// Default labels of the metric values. When specified, labels defined in the
	// metric value overrule.
	//
	// Labels are defined and documented by Google Cloud Platform. For example:
	// `cloud.googleapis.com/location: "us-east1"`.
	Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Represents information about this operation. Each MetricValueSet
	// corresponds to a metric defined in the service configuration.
	// The data type used in the MetricValueSet must agree with
	// the data type specified in the metric definition.
	//
	// Within a single operation, it is not allowed to have more than one
	// MetricValue instances that have the same metric names and identical
	// label value combinations. The existence of such duplicated MetricValue
	// instances in a request causes the entire request being rejected with
	// an invalid argument error.
	MetricValueSets []*MetricValueSet `protobuf:"bytes,7,rep,name=metric_value_sets,json=metricValueSets" json:"metric_value_sets,omitempty"`
	// Represents information to be logged.
	LogEntries []*LogEntry `protobuf:"bytes,8,rep,name=log_entries,json=logEntries" json:"log_entries,omitempty"`
	// Represents the properties needed for quota check. Applicable only if this
	// operation is for a quota check request.
	QuotaProperties *QuotaProperties `protobuf:"bytes,9,opt,name=quota_properties,json=quotaProperties" json:"quota_properties,omitempty"`
	// The importance of the data contained in the operation.
	Importance Operation_Importance `protobuf:"varint,11,opt,name=importance,enum=google.api.servicecontrol.v1.Operation_Importance" json:"importance,omitempty"`
}

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

func (m *Operation) GetStartTime() *google_protobuf3.Timestamp {
	if m != nil {
		return m.StartTime
	}
	return nil
}

func (m *Operation) GetEndTime() *google_protobuf3.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

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

func (m *Operation) GetMetricValueSets() []*MetricValueSet {
	if m != nil {
		return m.MetricValueSets
	}
	return nil
}

func (m *Operation) GetLogEntries() []*LogEntry {
	if m != nil {
		return m.LogEntries
	}
	return nil
}

func (m *Operation) GetQuotaProperties() *QuotaProperties {
	if m != nil {
		return m.QuotaProperties
	}
	return nil
}

func init() {
	proto.RegisterType((*Operation)(nil), "google.api.servicecontrol.v1.Operation")
	proto.RegisterEnum("google.api.servicecontrol.v1.Operation_Importance", Operation_Importance_name, Operation_Importance_value)
}

func init() { proto.RegisterFile("google/api/servicecontrol/v1/operation.proto", fileDescriptor4) }

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