// Code generated by protoc-gen-go.
// source: google/api/context.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

// `Context` defines which contexts an API requests.
//
// Example:
//
//     context:
//       rules:
//       - selector: "*"
//         requested:
//         - google.rpc.context.ProjectContext
//         - google.rpc.context.OriginContext
//
// The above specifies that all methods in the API request
// `google.rpc.context.ProjectContext` and
// `google.rpc.context.OriginContext`.
//
// Available context types are defined in package
// `google.rpc.context`.
type Context struct {
	// List of rules for context, applicable to methods.
	Rules []*ContextRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
}

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

func (m *Context) GetRules() []*ContextRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

// A context rule provides information about the context for an individual API
// element.
type ContextRule struct {
	// Selects the methods to which this rule applies.
	//
	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
	Selector string `protobuf:"bytes,1,opt,name=selector" json:"selector,omitempty"`
	// A list of full type names of requested contexts.
	Requested []string `protobuf:"bytes,2,rep,name=requested" json:"requested,omitempty"`
	// A list of full type names of provided contexts.
	Provided []string `protobuf:"bytes,3,rep,name=provided" json:"provided,omitempty"`
}

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

func init() {
	proto.RegisterType((*Context)(nil), "google.api.Context")
	proto.RegisterType((*ContextRule)(nil), "google.api.ContextRule")
}

func init() { proto.RegisterFile("google/api/context.proto", fileDescriptor5) }

var fileDescriptor5 = []byte{
	// 183 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0x48, 0xcf, 0xcf, 0x4f,
	0xcf, 0x49, 0xd5, 0x4f, 0x2c, 0xc8, 0xd4, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xad, 0x28, 0xd1, 0x2b,
	0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0xc8, 0xe8, 0x25, 0x16, 0x64, 0x2a, 0x59, 0x70, 0xb1,
	0x3b, 0x43, 0x24, 0x85, 0x74, 0xb9, 0x58, 0x8b, 0x4a, 0x73, 0x52, 0x8b, 0x25, 0x18, 0x15, 0x98,
	0x35, 0xb8, 0x8d, 0xc4, 0xf5, 0x10, 0xca, 0xf4, 0xa0, 0x6a, 0x82, 0x4a, 0x73, 0x52, 0x83, 0x20,
	0xaa, 0x94, 0x92, 0xb9, 0xb8, 0x91, 0x44, 0x85, 0xa4, 0xb8, 0x38, 0x8a, 0x53, 0x73, 0x52, 0x93,
	0x4b, 0xf2, 0x8b, 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0xe0, 0x7c, 0x21, 0x19, 0x2e, 0xce,
	0xa2, 0xd4, 0xc2, 0xd2, 0xd4, 0xe2, 0x92, 0xd4, 0x14, 0x09, 0x26, 0x05, 0x66, 0x0d, 0xce, 0x20,
	0x84, 0x00, 0x48, 0x67, 0x41, 0x51, 0x7e, 0x59, 0x66, 0x4a, 0x6a, 0x8a, 0x04, 0x33, 0x58, 0x12,
	0xce, 0x77, 0x52, 0xe0, 0xe2, 0x4b, 0xce, 0xcf, 0x45, 0x72, 0x89, 0x13, 0x0f, 0xd4, 0xd2, 0x00,
	0x90, 0x57, 0x02, 0x18, 0x93, 0xd8, 0xc0, 0x7e, 0x32, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x4e,
	0x97, 0x49, 0xf0, 0xef, 0x00, 0x00, 0x00,
}
