// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.4
// 	protoc        v5.29.0
// source: app/v1/authn/oauth.proto

package v1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	kernel "github.com/aileron-gateway/aileron-gateway/apis/kernel"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// PKCEMethod is the PKCE code challenge methods.
// Method is defined in https://datatracker.ietf.org/doc/rfc7636/
type PKCEMethod int32

const (
	PKCEMethod_S256  PKCEMethod = 0 // "S256"
	PKCEMethod_Plain PKCEMethod = 1 // "plain"
)

// Enum value maps for PKCEMethod.
var (
	PKCEMethod_name = map[int32]string{
		0: "S256",
		1: "Plain",
	}
	PKCEMethod_value = map[string]int32{
		"S256":  0,
		"Plain": 1,
	}
)

func (x PKCEMethod) Enum() *PKCEMethod {
	p := new(PKCEMethod)
	*p = x
	return p
}

func (x PKCEMethod) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PKCEMethod) Descriptor() protoreflect.EnumDescriptor {
	return file_app_v1_authn_oauth_proto_enumTypes[0].Descriptor()
}

func (PKCEMethod) Type() protoreflect.EnumType {
	return &file_app_v1_authn_oauth_proto_enumTypes[0]
}

func (x PKCEMethod) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PKCEMethod.Descriptor instead.
func (PKCEMethod) EnumDescriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{0}
}

// ClientAuthMethod is the method of authentication
// used for OAuth client authentication.
type ClientAuthMethod int32

const (
	ClientAuthMethod_FormAuth                ClientAuthMethod = 0 // Form authentication
	ClientAuthMethod_BasicAuth               ClientAuthMethod = 1 // Basic authentication
	ClientAuthMethod_ClientSecretJWT         ClientAuthMethod = 2 // Authentication by JWT signed with a client secret
	ClientAuthMethod_PrivateKeyJWT           ClientAuthMethod = 3 // Authentication by JWT signed with a client secret
	ClientAuthMethod_TLSClientAuth           ClientAuthMethod = 4 // Authentication by PKI-based X.509 certificates
	ClientAuthMethod_SelfSignedTLSClientAuth ClientAuthMethod = 5 // Authentication by self-signed X.509 certificates
)

// Enum value maps for ClientAuthMethod.
var (
	ClientAuthMethod_name = map[int32]string{
		0: "FormAuth",
		1: "BasicAuth",
		2: "ClientSecretJWT",
		3: "PrivateKeyJWT",
		4: "TLSClientAuth",
		5: "SelfSignedTLSClientAuth",
	}
	ClientAuthMethod_value = map[string]int32{
		"FormAuth":                0,
		"BasicAuth":               1,
		"ClientSecretJWT":         2,
		"PrivateKeyJWT":           3,
		"TLSClientAuth":           4,
		"SelfSignedTLSClientAuth": 5,
	}
)

func (x ClientAuthMethod) Enum() *ClientAuthMethod {
	p := new(ClientAuthMethod)
	*p = x
	return p
}

func (x ClientAuthMethod) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClientAuthMethod) Descriptor() protoreflect.EnumDescriptor {
	return file_app_v1_authn_oauth_proto_enumTypes[1].Descriptor()
}

func (ClientAuthMethod) Type() protoreflect.EnumType {
	return &file_app_v1_authn_oauth_proto_enumTypes[1]
}

func (x ClientAuthMethod) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ClientAuthMethod.Descriptor instead.
func (ClientAuthMethod) EnumDescriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{1}
}

// ResponseModeMethod is the method of response_mode parmeter
// used for authorization responses.
// Method is defined in https://openid.net/specs/openid-financial-api-jarm.html
type ResponseModeMethod int32

const (
	ResponseModeMethod_ResponseModeJWT         ResponseModeMethod = 0
	ResponseModeMethod_ResponseModeQueryJWT    ResponseModeMethod = 1
	ResponseModeMethod_ResponseModeFragmentJWT ResponseModeMethod = 2
	ResponseModeMethod_ResponseModeFormPostJWT ResponseModeMethod = 3
)

// Enum value maps for ResponseModeMethod.
var (
	ResponseModeMethod_name = map[int32]string{
		0: "ResponseModeJWT",
		1: "ResponseModeQueryJWT",
		2: "ResponseModeFragmentJWT",
		3: "ResponseModeFormPostJWT",
	}
	ResponseModeMethod_value = map[string]int32{
		"ResponseModeJWT":         0,
		"ResponseModeQueryJWT":    1,
		"ResponseModeFragmentJWT": 2,
		"ResponseModeFormPostJWT": 3,
	}
)

func (x ResponseModeMethod) Enum() *ResponseModeMethod {
	p := new(ResponseModeMethod)
	*p = x
	return p
}

func (x ResponseModeMethod) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResponseModeMethod) Descriptor() protoreflect.EnumDescriptor {
	return file_app_v1_authn_oauth_proto_enumTypes[2].Descriptor()
}

func (ResponseModeMethod) Type() protoreflect.EnumType {
	return &file_app_v1_authn_oauth_proto_enumTypes[2]
}

func (x ResponseModeMethod) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResponseModeMethod.Descriptor instead.
func (ResponseModeMethod) EnumDescriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{2}
}

// OAuthAuthenticationHandler resource definition.
// apiVersion="app/v1", kind="OAuthAuthenticationHandler".
type OAuthAuthenticationHandler struct {
	state         protoimpl.MessageState          `protogen:"open.v1"`
	APIVersion    string                          `protobuf:"bytes,1,opt,name=APIVersion,json=apiVersion,proto3" json:"APIVersion,omitempty"`
	Kind          string                          `protobuf:"bytes,2,opt,name=Kind,json=kind,proto3" json:"Kind,omitempty"`
	Metadata      *kernel.Metadata                `protobuf:"bytes,3,opt,name=Metadata,json=metadata,proto3" json:"Metadata,omitempty"`
	Spec          *OAuthAuthenticationHandlerSpec `protobuf:"bytes,4,opt,name=Spec,json=spec,proto3" json:"Spec,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuthAuthenticationHandler) Reset() {
	*x = OAuthAuthenticationHandler{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuthAuthenticationHandler) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuthAuthenticationHandler) ProtoMessage() {}

func (x *OAuthAuthenticationHandler) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuthAuthenticationHandler.ProtoReflect.Descriptor instead.
func (*OAuthAuthenticationHandler) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{0}
}

func (x *OAuthAuthenticationHandler) GetAPIVersion() string {
	if x != nil {
		return x.APIVersion
	}
	return ""
}

func (x *OAuthAuthenticationHandler) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *OAuthAuthenticationHandler) GetMetadata() *kernel.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *OAuthAuthenticationHandler) GetSpec() *OAuthAuthenticationHandlerSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

// OAuthAuthenticationHandlerSpec is the specifications for the OAuthAuthenticationHandler object.
type OAuthAuthenticationHandlerSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// Logger is the reference to a Logger object.
	// Referred object must implement Logger interface.
	// Default Logger is used when not set.
	Logger *kernel.Reference `protobuf:"bytes,1,opt,name=Logger,json=logger,proto3" json:"Logger,omitempty"`
	// [OPTIONAL]
	// ErrorHandler is the reference to a ErrorHandler object.
	// Referred object must implement ErrorHandler interface.
	// Default error handler is used when not set.
	ErrorHandler *kernel.Reference `protobuf:"bytes,2,opt,name=ErrorHandler,json=errorHandler,proto3" json:"ErrorHandler,omitempty"`
	// [REQUIRED]
	// Contexts is the authentication context.
	// This field is optional but should be set at least 1 context
	// to make authentication work.
	// Default is not set.
	Contexts []*Context `protobuf:"bytes,3,rep,name=Contexts,json=contexts,proto3" json:"Contexts,omitempty"`
	// [OPTIONAL]
	// ClaimsKey is the key to save claims in the context and make it usable
	// from authorization middleware.
	// Default is not set.
	ContextQueryKey string `protobuf:"bytes,4,opt,name=ContextQueryKey,json=contextQueryKey,proto3" json:"ContextQueryKey,omitempty"`
	// [OPTIONAL]
	// ClaimsKey is the key to save claims in the context and make it usable
	// from authorization middleware.
	// Default is not set, or empty .
	ContextHeaderKey string `protobuf:"bytes,5,opt,name=ContextHeaderKey,json=contextHeaderKey,proto3" json:"ContextHeaderKey,omitempty"`
	// [REQUIRED]
	// Handlers are the options of OAuth authentication handlers.
	//
	// Types that are valid to be assigned to Handlers:
	//
	//	*OAuthAuthenticationHandlerSpec_AuthorizationCodeHandler
	//	*OAuthAuthenticationHandlerSpec_ClientCredentialsHandler
	//	*OAuthAuthenticationHandlerSpec_ResourceServerHandler
	//	*OAuthAuthenticationHandlerSpec_ROPCHandler
	Handlers      isOAuthAuthenticationHandlerSpec_Handlers `protobuf_oneof:"Handlers"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuthAuthenticationHandlerSpec) Reset() {
	*x = OAuthAuthenticationHandlerSpec{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuthAuthenticationHandlerSpec) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuthAuthenticationHandlerSpec) ProtoMessage() {}

func (x *OAuthAuthenticationHandlerSpec) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuthAuthenticationHandlerSpec.ProtoReflect.Descriptor instead.
func (*OAuthAuthenticationHandlerSpec) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{1}
}

func (x *OAuthAuthenticationHandlerSpec) GetLogger() *kernel.Reference {
	if x != nil {
		return x.Logger
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetErrorHandler() *kernel.Reference {
	if x != nil {
		return x.ErrorHandler
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetContexts() []*Context {
	if x != nil {
		return x.Contexts
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetContextQueryKey() string {
	if x != nil {
		return x.ContextQueryKey
	}
	return ""
}

func (x *OAuthAuthenticationHandlerSpec) GetContextHeaderKey() string {
	if x != nil {
		return x.ContextHeaderKey
	}
	return ""
}

func (x *OAuthAuthenticationHandlerSpec) GetHandlers() isOAuthAuthenticationHandlerSpec_Handlers {
	if x != nil {
		return x.Handlers
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetAuthorizationCodeHandler() *AuthorizationCodeHandler {
	if x != nil {
		if x, ok := x.Handlers.(*OAuthAuthenticationHandlerSpec_AuthorizationCodeHandler); ok {
			return x.AuthorizationCodeHandler
		}
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetClientCredentialsHandler() *ClientCredentialsHandler {
	if x != nil {
		if x, ok := x.Handlers.(*OAuthAuthenticationHandlerSpec_ClientCredentialsHandler); ok {
			return x.ClientCredentialsHandler
		}
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetResourceServerHandler() *ResourceServerHandler {
	if x != nil {
		if x, ok := x.Handlers.(*OAuthAuthenticationHandlerSpec_ResourceServerHandler); ok {
			return x.ResourceServerHandler
		}
	}
	return nil
}

func (x *OAuthAuthenticationHandlerSpec) GetROPCHandler() *ROPCHandler {
	if x != nil {
		if x, ok := x.Handlers.(*OAuthAuthenticationHandlerSpec_ROPCHandler); ok {
			return x.ROPCHandler
		}
	}
	return nil
}

type isOAuthAuthenticationHandlerSpec_Handlers interface {
	isOAuthAuthenticationHandlerSpec_Handlers()
}

type OAuthAuthenticationHandlerSpec_AuthorizationCodeHandler struct {
	AuthorizationCodeHandler *AuthorizationCodeHandler `protobuf:"bytes,10,opt,name=AuthorizationCodeHandler,json=authorizationCodeHandler,proto3,oneof"`
}

type OAuthAuthenticationHandlerSpec_ClientCredentialsHandler struct {
	ClientCredentialsHandler *ClientCredentialsHandler `protobuf:"bytes,11,opt,name=ClientCredentialsHandler,json=clientCredentialsHandler,proto3,oneof"`
}

type OAuthAuthenticationHandlerSpec_ResourceServerHandler struct {
	ResourceServerHandler *ResourceServerHandler `protobuf:"bytes,12,opt,name=ResourceServerHandler,json=resourceServerHandler,proto3,oneof"`
}

type OAuthAuthenticationHandlerSpec_ROPCHandler struct {
	ROPCHandler *ROPCHandler `protobuf:"bytes,13,opt,name=ROPCHandler,json=ropcHandler,proto3,oneof"`
}

func (*OAuthAuthenticationHandlerSpec_AuthorizationCodeHandler) isOAuthAuthenticationHandlerSpec_Handlers() {
}

func (*OAuthAuthenticationHandlerSpec_ClientCredentialsHandler) isOAuthAuthenticationHandlerSpec_Handlers() {
}

func (*OAuthAuthenticationHandlerSpec_ResourceServerHandler) isOAuthAuthenticationHandlerSpec_Handlers() {
}

func (*OAuthAuthenticationHandlerSpec_ROPCHandler) isOAuthAuthenticationHandlerSpec_Handlers() {}

// ProviderEndpoints is the endpoints of OAuth provider.
type ProviderEndpoints struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Authorization string                 `protobuf:"bytes,1,opt,name=Authorization,json=authorization,proto3" json:"Authorization,omitempty"`
	Token         string                 `protobuf:"bytes,2,opt,name=Token,json=token,proto3" json:"Token,omitempty"`
	Userinfo      string                 `protobuf:"bytes,3,opt,name=Userinfo,json=userinfo,proto3" json:"Userinfo,omitempty"`
	Introspection string                 `protobuf:"bytes,4,opt,name=Introspection,json=introspection,proto3" json:"Introspection,omitempty"`
	Revocation    string                 `protobuf:"bytes,5,opt,name=Revocation,json=revocation,proto3" json:"Revocation,omitempty"`
	JWKs          string                 `protobuf:"bytes,6,opt,name=JWKs,json=jwks,proto3" json:"JWKs,omitempty"`
	Discovery     string                 `protobuf:"bytes,7,opt,name=Discovery,json=discovery,proto3" json:"Discovery,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ProviderEndpoints) Reset() {
	*x = ProviderEndpoints{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ProviderEndpoints) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProviderEndpoints) ProtoMessage() {}

func (x *ProviderEndpoints) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProviderEndpoints.ProtoReflect.Descriptor instead.
func (*ProviderEndpoints) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{2}
}

func (x *ProviderEndpoints) GetAuthorization() string {
	if x != nil {
		return x.Authorization
	}
	return ""
}

func (x *ProviderEndpoints) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ProviderEndpoints) GetUserinfo() string {
	if x != nil {
		return x.Userinfo
	}
	return ""
}

func (x *ProviderEndpoints) GetIntrospection() string {
	if x != nil {
		return x.Introspection
	}
	return ""
}

func (x *ProviderEndpoints) GetRevocation() string {
	if x != nil {
		return x.Revocation
	}
	return ""
}

func (x *ProviderEndpoints) GetJWKs() string {
	if x != nil {
		return x.JWKs
	}
	return ""
}

func (x *ProviderEndpoints) GetDiscovery() string {
	if x != nil {
		return x.Discovery
	}
	return ""
}

// OAuthProvider is the configuration of OAuth provider.
type OAuthProvider struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Issuer        string                 `protobuf:"bytes,1,opt,name=Issuer,json=issuer,proto3" json:"Issuer,omitempty"`
	BaseURL       string                 `protobuf:"bytes,2,opt,name=BaseURL,json=baseURL,proto3" json:"BaseURL,omitempty"`
	Endpoints     *ProviderEndpoints     `protobuf:"bytes,3,opt,name=Endpoints,json=endpoints,proto3" json:"Endpoints,omitempty"`
	RoundTripper  *kernel.Reference      `protobuf:"bytes,4,opt,name=RoundTripper,json=roundTripper,proto3" json:"RoundTripper,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuthProvider) Reset() {
	*x = OAuthProvider{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuthProvider) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuthProvider) ProtoMessage() {}

func (x *OAuthProvider) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuthProvider.ProtoReflect.Descriptor instead.
func (*OAuthProvider) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{3}
}

func (x *OAuthProvider) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

func (x *OAuthProvider) GetBaseURL() string {
	if x != nil {
		return x.BaseURL
	}
	return ""
}

func (x *OAuthProvider) GetEndpoints() *ProviderEndpoints {
	if x != nil {
		return x.Endpoints
	}
	return nil
}

func (x *OAuthProvider) GetRoundTripper() *kernel.Reference {
	if x != nil {
		return x.RoundTripper
	}
	return nil
}

// OAuthClient is the configuration of OAuth client.
type OAuthClient struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ID            string                 `protobuf:"bytes,1,opt,name=ID,json=id,proto3" json:"ID,omitempty"`
	Secret        string                 `protobuf:"bytes,2,opt,name=Secret,json=secret,proto3" json:"Secret,omitempty"`
	Audience      string                 `protobuf:"bytes,3,opt,name=Audience,json=audience,proto3" json:"Audience,omitempty"`
	Scopes        []string               `protobuf:"bytes,4,rep,name=Scopes,json=scopes,proto3" json:"Scopes,omitempty"`
	JWTHandler    *JWTHandlerSpec        `protobuf:"bytes,5,opt,name=JWTHandler,json=jwtHandler,proto3" json:"JWTHandler,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuthClient) Reset() {
	*x = OAuthClient{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuthClient) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuthClient) ProtoMessage() {}

func (x *OAuthClient) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuthClient.ProtoReflect.Descriptor instead.
func (*OAuthClient) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{4}
}

func (x *OAuthClient) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

func (x *OAuthClient) GetSecret() string {
	if x != nil {
		return x.Secret
	}
	return ""
}

func (x *OAuthClient) GetAudience() string {
	if x != nil {
		return x.Audience
	}
	return ""
}

func (x *OAuthClient) GetScopes() []string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

func (x *OAuthClient) GetJWTHandler() *JWTHandlerSpec {
	if x != nil {
		return x.JWTHandler
	}
	return nil
}

type ClientRequester struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// RoundTripper is the reference to a HTTP round tripper object.
	// A default round trupper will be used when not set.
	// Default is not set.
	RoundTripper *kernel.Reference `protobuf:"bytes,1,opt,name=RoundTripper,json=roundTripper,proto3" json:"RoundTripper,omitempty"`
	// [OPTIONAL]
	// ClientAuthMethod is the OAuth client authentication method.
	// Form or Basic authentication is available for now.
	// Default is [Form].
	ClientAuthMethod ClientAuthMethod `protobuf:"varint,2,opt,name=ClientAuthMethod,json=clientAuthMethod,proto3,enum=app.v1.ClientAuthMethod" json:"ClientAuthMethod,omitempty"`
	// [OPTIONAL]
	// ExtraHeader is the additional HTTP request headers
	// set when request is sent by the client.
	// Default is not set.
	ExtraHeader map[string]string `protobuf:"bytes,3,rep,name=ExtraHeader,json=extraHeader,proto3" json:"ExtraHeader,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// [OPTIONAL]
	// ExtraQuery is the additional HTTP query parameters
	// for form request body which is set when request is sent by the client.
	// Default is not set.
	ExtraQuery    map[string]string `protobuf:"bytes,4,rep,name=ExtraQuery,json=extraQuery,proto3" json:"ExtraQuery,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ClientRequester) Reset() {
	*x = ClientRequester{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ClientRequester) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientRequester) ProtoMessage() {}

func (x *ClientRequester) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientRequester.ProtoReflect.Descriptor instead.
func (*ClientRequester) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{5}
}

func (x *ClientRequester) GetRoundTripper() *kernel.Reference {
	if x != nil {
		return x.RoundTripper
	}
	return nil
}

func (x *ClientRequester) GetClientAuthMethod() ClientAuthMethod {
	if x != nil {
		return x.ClientAuthMethod
	}
	return ClientAuthMethod_FormAuth
}

func (x *ClientRequester) GetExtraHeader() map[string]string {
	if x != nil {
		return x.ExtraHeader
	}
	return nil
}

func (x *ClientRequester) GetExtraQuery() map[string]string {
	if x != nil {
		return x.ExtraQuery
	}
	return nil
}

type Context struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [REQUIRED]
	// Provider is the configurations of OAuth provider.
	Name string `protobuf:"bytes,1,opt,name=Name,json=name,proto3" json:"Name,omitempty"`
	// [REQUIRED]
	// Provider is the configurations of OAuth provider.
	Provider *OAuthProvider `protobuf:"bytes,2,opt,name=Provider,json=provider,proto3" json:"Provider,omitempty"`
	// [REQUIRED]
	// Client is the configurations of OAuth client.
	Client *OAuthClient `protobuf:"bytes,3,opt,name=Client,json=client,proto3" json:"Client,omitempty"`
	// [OPTIONAL]
	// TokenRedeemer is the configuration for token requests.
	TokenRedeemer *ClientRequester `protobuf:"bytes,4,opt,name=TokenRedeemer,json=tokenRedeemer,proto3" json:"TokenRedeemer,omitempty"`
	// [OPTIONAL]
	// TokenRedeemer is the configuration for token introspection requests.
	TokenIntrospector *ClientRequester `protobuf:"bytes,5,opt,name=TokenIntrospector,json=tokenIntrospector,proto3" json:"TokenIntrospector,omitempty"`
	// [OPTIONAL]
	// JWTHandler is the configuration for JWT handlers.
	JWTHandler *JWTHandlerSpec `protobuf:"bytes,6,opt,name=JWTHandler,json=jwtHandler,proto3" json:"JWTHandler,omitempty"`
	// [OPTIONAL]
	// EnableIntrospection
	// If false, JWTs are validated locally
	// Enabling both local validation and validation by introspection
	// is not supported.
	// Default is [false].
	EnableIntrospection bool `protobuf:"varint,7,opt,name=EnableIntrospection,json=enableIntrospection,proto3" json:"EnableIntrospection,omitempty"`
	// [OPTIONAL]
	// ClaimsKey is the key to save claims in the context and make it usable
	// from authorization middleware.
	// Default is ["AuthnClaims"].
	ClaimsKey string `protobuf:"bytes,8,opt,name=ClaimsKey,json=claimsKey,proto3" json:"ClaimsKey,omitempty"`
	// [OPTIONAL]
	// ATProxyHeader is the header name to proxy access token if exists.
	// Token is not proxied when the value is empty.
	// Default is [""].
	ATProxyHeader string `protobuf:"bytes,9,opt,name=ATProxyHeader,json=atProxyHeader,proto3" json:"ATProxyHeader,omitempty"`
	// [OPTIONAL]
	// IDTProxyHeader is the header name to proxy ID token if exists.
	// Token is not proxied when the value is empty.
	// Default is [""].
	IDTProxyHeader string           `protobuf:"bytes,10,opt,name=IDTProxyHeader,json=idtProxyHeader,proto3" json:"IDTProxyHeader,omitempty"`
	ATValidation   *TokenValidation `protobuf:"bytes,11,opt,name=ATValidation,json=atValidation,proto3" json:"ATValidation,omitempty"`
	IDTValidation  *TokenValidation `protobuf:"bytes,12,opt,name=IDTValidation,json=idtValidation,proto3" json:"IDTValidation,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Context) Reset() {
	*x = Context{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Context) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Context) ProtoMessage() {}

func (x *Context) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Context.ProtoReflect.Descriptor instead.
func (*Context) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{6}
}

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

func (x *Context) GetProvider() *OAuthProvider {
	if x != nil {
		return x.Provider
	}
	return nil
}

func (x *Context) GetClient() *OAuthClient {
	if x != nil {
		return x.Client
	}
	return nil
}

func (x *Context) GetTokenRedeemer() *ClientRequester {
	if x != nil {
		return x.TokenRedeemer
	}
	return nil
}

func (x *Context) GetTokenIntrospector() *ClientRequester {
	if x != nil {
		return x.TokenIntrospector
	}
	return nil
}

func (x *Context) GetJWTHandler() *JWTHandlerSpec {
	if x != nil {
		return x.JWTHandler
	}
	return nil
}

func (x *Context) GetEnableIntrospection() bool {
	if x != nil {
		return x.EnableIntrospection
	}
	return false
}

func (x *Context) GetClaimsKey() string {
	if x != nil {
		return x.ClaimsKey
	}
	return ""
}

func (x *Context) GetATProxyHeader() string {
	if x != nil {
		return x.ATProxyHeader
	}
	return ""
}

func (x *Context) GetIDTProxyHeader() string {
	if x != nil {
		return x.IDTProxyHeader
	}
	return ""
}

func (x *Context) GetATValidation() *TokenValidation {
	if x != nil {
		return x.ATValidation
	}
	return nil
}

func (x *Context) GetIDTValidation() *TokenValidation {
	if x != nil {
		return x.IDTValidation
	}
	return nil
}

type AuthorizationRequestObject struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// RequestURIPath specifies the URI for the request object by reference
	// used for OpenID Connect authorization requests.
	// If this field is set, it allows OpenID Connect requests to be passed by reference.
	// Note: To use RequestObjectURI, EnabledRequestObject must be set to true.
	RequestURI string `protobuf:"bytes,1,opt,name=RequestURI,json=requestURI,proto3" json:"RequestURI,omitempty"`
	// [OPTIONAL]
	// JWTHandler is the configuration for JWT handlers.
	// JWTHandler is a required parameter of AuthorizationRequestObject.
	JWTHandler *JWTHandlerSpec `protobuf:"bytes,2,opt,name=JWTHandler,json=jwtHandler,proto3" json:"JWTHandler,omitempty"`
	// [OPTIONAL]
	// Exp specifies the remaining time in seconds before the request object expires.
	// Default is [0].
	Exp int64 `protobuf:"varint,3,opt,name=Exp,json=exp,proto3" json:"Exp,omitempty"`
	// [OPTIONAL]
	// NbfLeeway compensates for clock skew by adding a grace period in seconds to the nbf claim.
	// Default is [0].
	Nbf int64 `protobuf:"varint,4,opt,name=Nbf,json=nbf,proto3" json:"Nbf,omitempty"`
	// [OPTIONAL]
	// Disablecache set to true adds a Base64URL-encoded SHA-256 hash to request_uri to disable caching.
	// Default is [false].
	DisableCache  bool `protobuf:"varint,5,opt,name=DisableCache,json=disableCache,proto3" json:"DisableCache,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AuthorizationRequestObject) Reset() {
	*x = AuthorizationRequestObject{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthorizationRequestObject) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthorizationRequestObject) ProtoMessage() {}

func (x *AuthorizationRequestObject) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthorizationRequestObject.ProtoReflect.Descriptor instead.
func (*AuthorizationRequestObject) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{7}
}

func (x *AuthorizationRequestObject) GetRequestURI() string {
	if x != nil {
		return x.RequestURI
	}
	return ""
}

func (x *AuthorizationRequestObject) GetJWTHandler() *JWTHandlerSpec {
	if x != nil {
		return x.JWTHandler
	}
	return nil
}

func (x *AuthorizationRequestObject) GetExp() int64 {
	if x != nil {
		return x.Exp
	}
	return 0
}

func (x *AuthorizationRequestObject) GetNbf() int64 {
	if x != nil {
		return x.Nbf
	}
	return 0
}

func (x *AuthorizationRequestObject) GetDisableCache() bool {
	if x != nil {
		return x.DisableCache
	}
	return false
}

type AuthorizationResponseJARM struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// ResponseModeMethod is the method of response_mode parmeter
	// used for authorization request.
	// Default is [ResponseModeJWT].
	ResponseMode ResponseModeMethod `protobuf:"varint,1,opt,name=ResponseMode,json=responseMode,proto3,enum=app.v1.ResponseModeMethod" json:"ResponseMode,omitempty"`
	// [OPTIONAL]
	// JWTHandler is the configuration for JWT handlers.
	JWTHandler    *JWTHandlerSpec `protobuf:"bytes,2,opt,name=JWTHandler,json=jwtHandler,proto3" json:"JWTHandler,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AuthorizationResponseJARM) Reset() {
	*x = AuthorizationResponseJARM{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthorizationResponseJARM) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthorizationResponseJARM) ProtoMessage() {}

func (x *AuthorizationResponseJARM) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthorizationResponseJARM.ProtoReflect.Descriptor instead.
func (*AuthorizationResponseJARM) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{8}
}

func (x *AuthorizationResponseJARM) GetResponseMode() ResponseModeMethod {
	if x != nil {
		return x.ResponseMode
	}
	return ResponseModeMethod_ResponseModeJWT
}

func (x *AuthorizationResponseJARM) GetJWTHandler() *JWTHandlerSpec {
	if x != nil {
		return x.JWTHandler
	}
	return nil
}

type AuthorizationCodeHandler struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	DisableState        bool                   `protobuf:"varint,1,opt,name=DisableState,json=disableState,proto3" json:"DisableState,omitempty"`
	DisableNonce        bool                   `protobuf:"varint,2,opt,name=DisableNonce,json=disableNonce,proto3" json:"DisableNonce,omitempty"`
	DisablePKCE         bool                   `protobuf:"varint,3,opt,name=DisablePKCE,json=disablePKCE,proto3" json:"DisablePKCE,omitempty"`
	PKCEMethod          PKCEMethod             `protobuf:"varint,4,opt,name=PKCEMethod,json=pkceMethod,proto3,enum=app.v1.PKCEMethod" json:"PKCEMethod,omitempty"`
	LoginPath           string                 `protobuf:"bytes,5,opt,name=LoginPath,json=loginPath,proto3" json:"LoginPath,omitempty"`
	CallbackURL         string                 `protobuf:"bytes,6,opt,name=CallbackURL,json=callbackURL,proto3" json:"CallbackURL,omitempty"`
	RedirectPath        string                 `protobuf:"bytes,7,opt,name=RedirectPath,json=redirectPath,proto3" json:"RedirectPath,omitempty"`
	RedirectKey         string                 `protobuf:"bytes,8,opt,name=RedirectKey,json=redirectKey,proto3" json:"RedirectKey,omitempty"`
	RedirectPathPattern string                 `protobuf:"bytes,9,opt,name=RedirectPathPattern,json=redirectPathPattern,proto3" json:"RedirectPathPattern,omitempty"`
	// [OPTIONAL]
	// RedirectToLogin is the flag to redirect unauthenticated users
	// to the login url.
	// This value is prior to the UnauthorizeAny when set to true.
	// Default ["false"].
	RedirectToLogin bool `protobuf:"varint,10,opt,name=RedirectToLogin,json=redirectToLogin,proto3" json:"RedirectToLogin,omitempty"`
	// [OPTIONAL]
	// UnauthorizeAny disallow to access any path except for login path
	// when users are not authenticated.
	// If this field is set to false, users are redirected to login path
	// when they have not been authenticated yet.
	// If true, unauthorized error will be returned.
	// This value is prior to the RestoreRequest when set to true.
	// Default is ["false"]
	UnauthorizeAny bool `protobuf:"varint,11,opt,name=UnauthorizeAny,json=unauthorizeAny,proto3" json:"UnauthorizeAny,omitempty"`
	// [OPTIONAL]
	// RestoreRequest allow users to access any path
	// even they have not been authenticated yet.
	// Initial API requests will temporarily  be stored in the session
	// while users are taking authentication processes and
	// be restored after they come back to callback path
	// after authentication.
	// Default is ["false"]
	RestoreRequest bool `protobuf:"varint,12,opt,name=RestoreRequest,json=restoreRequest,proto3" json:"RestoreRequest,omitempty"`
	// [OPTIONAL]
	// URLParams is the list of additional url parameters
	// for authentication request.
	// Default is not set.
	URLParams []string `protobuf:"bytes,13,rep,name=URLParams,json=urlParams,proto3" json:"URLParams,omitempty"`
	// [Optional]
	// UserInfoPath is the URL path to access the UserInfo endpoint of the OpenID provider.
	// If not set, AILERON's downstream applications cannot access the UserInfo endpoint.
	UserInfoPath string `protobuf:"bytes,14,opt,name=UserInfoPath,json=userInfoPath,proto3" json:"UserInfoPath,omitempty"`
	// [OPTIONAL]
	// EnabledFAPI ensures client security by following the
	// Financial-grade API specifications.
	// Default is [false].
	EnabledFAPI bool `protobuf:"varint,15,opt,name=EnabledFAPI,json=enabledFAPI,proto3" json:"EnabledFAPI,omitempty"`
	// [OPTIONAL]
	// RequestObject specifies whether the request object method
	// is used for OpenID Connect authorization requests.
	RequestObject *AuthorizationRequestObject `protobuf:"bytes,16,opt,name=RequestObject,json=requestObject,proto3" json:"RequestObject,omitempty"`
	// [OPTIONAL]
	// JARM specifies whether the response mode method
	// is used for authorization responses.
	JARM          *AuthorizationResponseJARM `protobuf:"bytes,17,opt,name=JARM,json=jarm,proto3" json:"JARM,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AuthorizationCodeHandler) Reset() {
	*x = AuthorizationCodeHandler{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthorizationCodeHandler) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthorizationCodeHandler) ProtoMessage() {}

func (x *AuthorizationCodeHandler) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthorizationCodeHandler.ProtoReflect.Descriptor instead.
func (*AuthorizationCodeHandler) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{9}
}

func (x *AuthorizationCodeHandler) GetDisableState() bool {
	if x != nil {
		return x.DisableState
	}
	return false
}

func (x *AuthorizationCodeHandler) GetDisableNonce() bool {
	if x != nil {
		return x.DisableNonce
	}
	return false
}

func (x *AuthorizationCodeHandler) GetDisablePKCE() bool {
	if x != nil {
		return x.DisablePKCE
	}
	return false
}

func (x *AuthorizationCodeHandler) GetPKCEMethod() PKCEMethod {
	if x != nil {
		return x.PKCEMethod
	}
	return PKCEMethod_S256
}

func (x *AuthorizationCodeHandler) GetLoginPath() string {
	if x != nil {
		return x.LoginPath
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetCallbackURL() string {
	if x != nil {
		return x.CallbackURL
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetRedirectPath() string {
	if x != nil {
		return x.RedirectPath
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetRedirectKey() string {
	if x != nil {
		return x.RedirectKey
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetRedirectPathPattern() string {
	if x != nil {
		return x.RedirectPathPattern
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetRedirectToLogin() bool {
	if x != nil {
		return x.RedirectToLogin
	}
	return false
}

func (x *AuthorizationCodeHandler) GetUnauthorizeAny() bool {
	if x != nil {
		return x.UnauthorizeAny
	}
	return false
}

func (x *AuthorizationCodeHandler) GetRestoreRequest() bool {
	if x != nil {
		return x.RestoreRequest
	}
	return false
}

func (x *AuthorizationCodeHandler) GetURLParams() []string {
	if x != nil {
		return x.URLParams
	}
	return nil
}

func (x *AuthorizationCodeHandler) GetUserInfoPath() string {
	if x != nil {
		return x.UserInfoPath
	}
	return ""
}

func (x *AuthorizationCodeHandler) GetEnabledFAPI() bool {
	if x != nil {
		return x.EnabledFAPI
	}
	return false
}

func (x *AuthorizationCodeHandler) GetRequestObject() *AuthorizationRequestObject {
	if x != nil {
		return x.RequestObject
	}
	return nil
}

func (x *AuthorizationCodeHandler) GetJARM() *AuthorizationResponseJARM {
	if x != nil {
		return x.JARM
	}
	return nil
}

// ClientCredentialsHandler is the specification of ClientCredentialsHandler object.
type ClientCredentialsHandler struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ClientCredentialsHandler) Reset() {
	*x = ClientCredentialsHandler{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ClientCredentialsHandler) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientCredentialsHandler) ProtoMessage() {}

func (x *ClientCredentialsHandler) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientCredentialsHandler.ProtoReflect.Descriptor instead.
func (*ClientCredentialsHandler) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{10}
}

// ResourceServerHandler is the specification of ResourceServerHandler object.
type ResourceServerHandler struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// Header key name to get access token from.
	// Default is ["Authorization"]
	HeaderKey string `protobuf:"bytes,1,opt,name=HeaderKey,json=headerKey,proto3" json:"HeaderKey,omitempty"`
	// [OPTIONAL]
	// EnabledFAPI enables token validation by following the
	// Financial-grade API specifications.
	// Default is [false].
	EnabledFAPI   bool `protobuf:"varint,2,opt,name=EnabledFAPI,json=enabledFAPI,proto3" json:"EnabledFAPI,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResourceServerHandler) Reset() {
	*x = ResourceServerHandler{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResourceServerHandler) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResourceServerHandler) ProtoMessage() {}

func (x *ResourceServerHandler) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResourceServerHandler.ProtoReflect.Descriptor instead.
func (*ResourceServerHandler) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{11}
}

func (x *ResourceServerHandler) GetHeaderKey() string {
	if x != nil {
		return x.HeaderKey
	}
	return ""
}

func (x *ResourceServerHandler) GetEnabledFAPI() bool {
	if x != nil {
		return x.EnabledFAPI
	}
	return false
}

type ROPCHandler struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// RedeemTokenPath is the url path to redeem access token
	// by exchangind with the username and password.
	// If not set, username and password have to be sent
	// for every requests.
	RedeemTokenPath string `protobuf:"bytes,1,opt,name=RedeemTokenPath,json=redeemTokenPath,proto3" json:"RedeemTokenPath,omitempty"`
	// [OPTIONAL]
	// UsernameKey is the key to obtain username from
	// Post form request body.
	// Both UsernameKey and PasswordKey have to be set
	// when sending the username and password with
	// Post form request. Otherwise, they should be
	// sent with authorization basic header.
	UsernameKey string `protobuf:"bytes,2,opt,name=UsernameKey,json=usernameKey,proto3" json:"UsernameKey,omitempty"`
	// [OPTIONAL]
	// PasswordKey is the key to obtain password from
	// Post form request body.
	// Both UsernameKey and PasswordKey have to be set
	// when sending the username and password with
	// Post form request. Otherwise, they should be
	// sent with authorization basic header.
	PasswordKey   string `protobuf:"bytes,3,opt,name=PasswordKey,json=passwordKey,proto3" json:"PasswordKey,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ROPCHandler) Reset() {
	*x = ROPCHandler{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ROPCHandler) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ROPCHandler) ProtoMessage() {}

func (x *ROPCHandler) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ROPCHandler.ProtoReflect.Descriptor instead.
func (*ROPCHandler) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{12}
}

func (x *ROPCHandler) GetRedeemTokenPath() string {
	if x != nil {
		return x.RedeemTokenPath
	}
	return ""
}

func (x *ROPCHandler) GetUsernameKey() string {
	if x != nil {
		return x.UsernameKey
	}
	return ""
}

func (x *ROPCHandler) GetPasswordKey() string {
	if x != nil {
		return x.PasswordKey
	}
	return ""
}

type TokenValidation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// SkipUnexpired is the flag to skip token validation
	// if the token is not expired.
	// This flag works only when the exp claim is
	// available in the tokens and the tokens are
	// restored from session objects.
	// That means the authentication flow that do not use
	// session cannot use this flag.
	// Default is [false].
	SkipUnexpired bool `protobuf:"varint,1,opt,name=SkipUnexpired,json=skipUnexpired,proto3" json:"SkipUnexpired,omitempty"`
	// [OPTIONAL]
	// Iss is the valid value of iss claim
	// that is used for token validations.
	// Set "-" to disable iss claim validation.
	// Default is the provider's issuer.
	Iss string `protobuf:"bytes,2,opt,name=Iss,json=iss,proto3" json:"Iss,omitempty"`
	// [OPTIONAL]
	// Aud is the valid value of aud claim
	// that is used for token validations.
	// Set "-" to disable aud claim validation.
	// Default is the client id.
	Aud string `protobuf:"bytes,3,opt,name=Aud,json=aud,proto3" json:"Aud,omitempty"`
	// [OPTIONAL]
	// ExpOptional is the flag to make the exp claim optional.
	// If true, validation of the exp claim is done only when
	// the exp was present in the claims.
	// If false, exp claim is mandate and always be validated.
	// This field is bounded to the
	// https://pkg.go.dev/github.com/golang-jwt/jwt/v5#WithExpirationRequired
	// Default is [false].
	ExpOptional bool `protobuf:"varint,4,opt,name=ExpOptional,json=expOptional,proto3" json:"ExpOptional,omitempty"`
	// [OPTIONAL]
	// IatDisabled is the flag to disable validation of iat claim.
	// If true, validation of the iat claim is skipped even
	// the iat was found in the claims.
	// If false, iat claim is validated only when the iat
	// is present in the claims.
	// This field is bounded to the
	// https://pkg.go.dev/github.com/golang-jwt/jwt/v5#WithIssuedAt
	// Default is [false].
	IatDisabled bool `protobuf:"varint,5,opt,name=IatDisabled,json=iatDisabled,proto3" json:"IatDisabled,omitempty"`
	// [OPTIONAL]
	// Leeway is the time duration in second.
	// exp claim will be (exp + leeway), nbf claim will be (nbf - leeway),
	// iat claim will be (iat - leeway < now).
	// This field is bounded to the
	// https://pkg.go.dev/github.com/golang-jwt/jwt/v5#WithLeeway
	// Default is [5] second.
	Leeway int32 `protobuf:"varint,6,opt,name=Leeway,json=leeway,proto3" json:"Leeway,omitempty"`
	// [OPTIONAL]
	// ValidMethods is the allowed algorithms list of JWT singning methods.
	// Only JWTs signed with the algorithms listed here are valid.
	// If not set, all algorithms are allowed.
	// This field is bounded to the
	// https://pkg.go.dev/github.com/golang-jwt/jwt/v5#WithValidMethods
	// Default is not set.
	ValidMethods  []string `protobuf:"bytes,7,rep,name=ValidMethods,json=validMethods,proto3" json:"ValidMethods,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TokenValidation) Reset() {
	*x = TokenValidation{}
	mi := &file_app_v1_authn_oauth_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TokenValidation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TokenValidation) ProtoMessage() {}

func (x *TokenValidation) ProtoReflect() protoreflect.Message {
	mi := &file_app_v1_authn_oauth_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TokenValidation.ProtoReflect.Descriptor instead.
func (*TokenValidation) Descriptor() ([]byte, []int) {
	return file_app_v1_authn_oauth_proto_rawDescGZIP(), []int{13}
}

func (x *TokenValidation) GetSkipUnexpired() bool {
	if x != nil {
		return x.SkipUnexpired
	}
	return false
}

func (x *TokenValidation) GetIss() string {
	if x != nil {
		return x.Iss
	}
	return ""
}

func (x *TokenValidation) GetAud() string {
	if x != nil {
		return x.Aud
	}
	return ""
}

func (x *TokenValidation) GetExpOptional() bool {
	if x != nil {
		return x.ExpOptional
	}
	return false
}

func (x *TokenValidation) GetIatDisabled() bool {
	if x != nil {
		return x.IatDisabled
	}
	return false
}

func (x *TokenValidation) GetLeeway() int32 {
	if x != nil {
		return x.Leeway
	}
	return 0
}

func (x *TokenValidation) GetValidMethods() []string {
	if x != nil {
		return x.ValidMethods
	}
	return nil
}

var File_app_v1_authn_oauth_proto protoreflect.FileDescriptor

var file_app_v1_authn_oauth_proto_rawDesc = string([]byte{
	0x0a, 0x18, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x2f, 0x6f,
	0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x70, 0x2e,
	0x76, 0x31, 0x1a, 0x10, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x77, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x15, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x4f, 0x41, 0x75,
	0x74, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x04, 0x53, 0x70, 0x65,
	0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31,
	0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52,
	0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xe8, 0x04, 0x0a, 0x1e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41,
	0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x29, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x67,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65,
	0x6c, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x6c, 0x6f, 0x67,
	0x67, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e,
	0x65, 0x6c, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x08, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61,
	0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x08, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x65,
	0x78, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65,
	0x79, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x5e, 0x0a,
	0x18, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
	0x64, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x20, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x72, 0x48, 0x00, 0x52, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x5e, 0x0a,
	0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
	0x6c, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x20, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x72, 0x48, 0x00, 0x52, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x55, 0x0a,
	0x15, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61,
	0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x72,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0b, 0x52, 0x4f, 0x50, 0x43, 0x48, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x4f, 0x50, 0x43, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x48, 0x00,
	0x52, 0x0b, 0x72, 0x6f, 0x70, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x42, 0x11, 0x0a,
	0x08, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01,
	0x22, 0xe3, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x64,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61,
	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x24,
	0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4a, 0x57, 0x4b, 0x73, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6a, 0x77, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x73, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x73,
	0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0d, 0x4f, 0x41, 0x75, 0x74, 0x68,
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x73, 0x75,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72,
	0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x37, 0x0a, 0x09, 0x45, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x69, 0x70,
	0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e,
	0x65, 0x6c, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x54, 0x72, 0x69, 0x70, 0x70, 0x65, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x0b, 0x4f,
	0x41, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65,
	0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x4a, 0x57, 0x54, 0x48, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70,
	0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x57, 0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x53, 0x70,
	0x65, 0x63, 0x52, 0x0a, 0x6a, 0x77, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x22, 0xa2,
	0x03, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x65, 0x72, 0x12, 0x35, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x69, 0x70, 0x70,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65,
	0x6c, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x54, 0x72, 0x69, 0x70, 0x70, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x10, 0x43, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x10, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
	0x4a, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x45, 0x78,
	0x74, 0x72, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
	0x65, 0x78, 0x74, 0x72, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0a, 0x45,
	0x78, 0x74, 0x72, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x72, 0x61, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x72, 0x61, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0xd5, 0x04, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4f,
	0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e,
	0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x64, 0x65,
	0x65, 0x6d, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x65, 0x6d,
	0x65, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f,
	0x73, 0x70, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x74,
	0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x0a, 0x4a, 0x57, 0x54,
	0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x57, 0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x6a, 0x77, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x72, 0x12, 0x30, 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f,
	0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x4b, 0x65, 0x79,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x4b, 0x65,
	0x79, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x54, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x78,
	0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x44, 0x54, 0x50, 0x72,
	0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0e, 0x69, 0x64, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x3b, 0x0a, 0x0c, 0x41, 0x54, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c,
	0x61, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d,
	0x49, 0x44, 0x54, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x69, 0x64,
	0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xce, 0x01, 0x0a, 0x1a,
	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x52, 0x49, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x55, 0x52, 0x49, 0x12, 0x36, 0x0a, 0x0a, 0x4a, 0x57,
	0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x57, 0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x6a, 0x77, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x72, 0x12, 0x19, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42,
	0x07, 0xba, 0x48, 0x04, 0x22, 0x02, 0x28, 0x00, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x19, 0x0a,
	0x03, 0x4e, 0x62, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x07, 0xba, 0x48, 0x04, 0x22,
	0x02, 0x28, 0x00, 0x52, 0x03, 0x6e, 0x62, 0x66, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 0x93, 0x01, 0x0a,
	0x19, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x41, 0x52, 0x4d, 0x12, 0x3e, 0x0a, 0x0c, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0c, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x4a, 0x57,
	0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x57, 0x54, 0x48, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x6a, 0x77, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x72, 0x22, 0xcf, 0x05, 0x0a, 0x18, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12,
	0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f,
	0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x50, 0x4b, 0x43, 0x45, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x4b, 0x43, 0x45, 0x12, 0x32, 0x0a, 0x0a, 0x50, 0x4b, 0x43,
	0x45, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4b, 0x43, 0x45, 0x4d, 0x65, 0x74, 0x68, 0x6f,
	0x64, 0x52, 0x0a, 0x70, 0x6b, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a,
	0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43,
	0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x52, 0x4c, 0x12, 0x22, 0x0a,
	0x0c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74,
	0x68, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50,
	0x61, 0x74, 0x68, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x13, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x50, 0x61,
	0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
	0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12,
	0x26, 0x0a, 0x0e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e,
	0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f,
	0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x6f,
	0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0e, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1c, 0x0a, 0x09, 0x55, 0x52, 0x4c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a,
	0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74,
	0x68, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x41, 0x50, 0x49,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46,
	0x41, 0x50, 0x49, 0x12, 0x48, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x70,
	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0d,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, 0x0a,
	0x04, 0x4a, 0x41, 0x52, 0x4d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70,
	0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x41, 0x52, 0x4d, 0x52, 0x04,
	0x6a, 0x61, 0x72, 0x6d, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x72,
	0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
	0x22, 0x57, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x46, 0x41, 0x50, 0x49, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x41, 0x50, 0x49, 0x22, 0x7b, 0x0a, 0x0b, 0x52, 0x4f, 0x50,
	0x43, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x65,
	0x65, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61,
	0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x22, 0xdb, 0x01, 0x0a, 0x0f, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b,
	0x69, 0x70, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0d, 0x73, 0x6b, 0x69, 0x70, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64,
	0x12, 0x10, 0x0a, 0x03, 0x49, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x69,
	0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x75, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x61, 0x75, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x61, 0x74, 0x44, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x61, 0x74,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x65, 0x77,
	0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x65, 0x77, 0x61, 0x79,
	0x12, 0x22, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73,
	0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74,
	0x68, 0x6f, 0x64, 0x73, 0x2a, 0x21, 0x0a, 0x0a, 0x50, 0x4b, 0x43, 0x45, 0x4d, 0x65, 0x74, 0x68,
	0x6f, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x32, 0x35, 0x36, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05,
	0x50, 0x6c, 0x61, 0x69, 0x6e, 0x10, 0x01, 0x2a, 0x87, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0c, 0x0a, 0x08,
	0x46, 0x6f, 0x72, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x61,
	0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4a, 0x57, 0x54, 0x10, 0x02, 0x12, 0x11,
	0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4a, 0x57, 0x54, 0x10,
	0x03, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x4c, 0x53, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75,
	0x74, 0x68, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x65, 0x6c, 0x66, 0x53, 0x69, 0x67, 0x6e,
	0x65, 0x64, 0x54, 0x4c, 0x53, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x10,
	0x05, 0x2a, 0x7d, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x6f, 0x64,
	0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x4a, 0x57, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x4a, 0x57, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x57,
	0x54, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d,
	0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x4a, 0x57, 0x54, 0x10, 0x03,
	0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
	0x69, 0x6c, 0x65, 0x72, 0x6f, 0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61,
	0x69, 0x6c, 0x65, 0x72, 0x6f, 0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61,
	0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
})

var (
	file_app_v1_authn_oauth_proto_rawDescOnce sync.Once
	file_app_v1_authn_oauth_proto_rawDescData []byte
)

func file_app_v1_authn_oauth_proto_rawDescGZIP() []byte {
	file_app_v1_authn_oauth_proto_rawDescOnce.Do(func() {
		file_app_v1_authn_oauth_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_app_v1_authn_oauth_proto_rawDesc), len(file_app_v1_authn_oauth_proto_rawDesc)))
	})
	return file_app_v1_authn_oauth_proto_rawDescData
}

var file_app_v1_authn_oauth_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_app_v1_authn_oauth_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_app_v1_authn_oauth_proto_goTypes = []any{
	(PKCEMethod)(0),                        // 0: app.v1.PKCEMethod
	(ClientAuthMethod)(0),                  // 1: app.v1.ClientAuthMethod
	(ResponseModeMethod)(0),                // 2: app.v1.ResponseModeMethod
	(*OAuthAuthenticationHandler)(nil),     // 3: app.v1.OAuthAuthenticationHandler
	(*OAuthAuthenticationHandlerSpec)(nil), // 4: app.v1.OAuthAuthenticationHandlerSpec
	(*ProviderEndpoints)(nil),              // 5: app.v1.ProviderEndpoints
	(*OAuthProvider)(nil),                  // 6: app.v1.OAuthProvider
	(*OAuthClient)(nil),                    // 7: app.v1.OAuthClient
	(*ClientRequester)(nil),                // 8: app.v1.ClientRequester
	(*Context)(nil),                        // 9: app.v1.Context
	(*AuthorizationRequestObject)(nil),     // 10: app.v1.AuthorizationRequestObject
	(*AuthorizationResponseJARM)(nil),      // 11: app.v1.AuthorizationResponseJARM
	(*AuthorizationCodeHandler)(nil),       // 12: app.v1.AuthorizationCodeHandler
	(*ClientCredentialsHandler)(nil),       // 13: app.v1.ClientCredentialsHandler
	(*ResourceServerHandler)(nil),          // 14: app.v1.ResourceServerHandler
	(*ROPCHandler)(nil),                    // 15: app.v1.ROPCHandler
	(*TokenValidation)(nil),                // 16: app.v1.TokenValidation
	nil,                                    // 17: app.v1.ClientRequester.ExtraHeaderEntry
	nil,                                    // 18: app.v1.ClientRequester.ExtraQueryEntry
	(*kernel.Metadata)(nil),                // 19: kernel.Metadata
	(*kernel.Reference)(nil),               // 20: kernel.Reference
	(*JWTHandlerSpec)(nil),                 // 21: app.v1.JWTHandlerSpec
}
var file_app_v1_authn_oauth_proto_depIdxs = []int32{
	19, // 0: app.v1.OAuthAuthenticationHandler.Metadata:type_name -> kernel.Metadata
	4,  // 1: app.v1.OAuthAuthenticationHandler.Spec:type_name -> app.v1.OAuthAuthenticationHandlerSpec
	20, // 2: app.v1.OAuthAuthenticationHandlerSpec.Logger:type_name -> kernel.Reference
	20, // 3: app.v1.OAuthAuthenticationHandlerSpec.ErrorHandler:type_name -> kernel.Reference
	9,  // 4: app.v1.OAuthAuthenticationHandlerSpec.Contexts:type_name -> app.v1.Context
	12, // 5: app.v1.OAuthAuthenticationHandlerSpec.AuthorizationCodeHandler:type_name -> app.v1.AuthorizationCodeHandler
	13, // 6: app.v1.OAuthAuthenticationHandlerSpec.ClientCredentialsHandler:type_name -> app.v1.ClientCredentialsHandler
	14, // 7: app.v1.OAuthAuthenticationHandlerSpec.ResourceServerHandler:type_name -> app.v1.ResourceServerHandler
	15, // 8: app.v1.OAuthAuthenticationHandlerSpec.ROPCHandler:type_name -> app.v1.ROPCHandler
	5,  // 9: app.v1.OAuthProvider.Endpoints:type_name -> app.v1.ProviderEndpoints
	20, // 10: app.v1.OAuthProvider.RoundTripper:type_name -> kernel.Reference
	21, // 11: app.v1.OAuthClient.JWTHandler:type_name -> app.v1.JWTHandlerSpec
	20, // 12: app.v1.ClientRequester.RoundTripper:type_name -> kernel.Reference
	1,  // 13: app.v1.ClientRequester.ClientAuthMethod:type_name -> app.v1.ClientAuthMethod
	17, // 14: app.v1.ClientRequester.ExtraHeader:type_name -> app.v1.ClientRequester.ExtraHeaderEntry
	18, // 15: app.v1.ClientRequester.ExtraQuery:type_name -> app.v1.ClientRequester.ExtraQueryEntry
	6,  // 16: app.v1.Context.Provider:type_name -> app.v1.OAuthProvider
	7,  // 17: app.v1.Context.Client:type_name -> app.v1.OAuthClient
	8,  // 18: app.v1.Context.TokenRedeemer:type_name -> app.v1.ClientRequester
	8,  // 19: app.v1.Context.TokenIntrospector:type_name -> app.v1.ClientRequester
	21, // 20: app.v1.Context.JWTHandler:type_name -> app.v1.JWTHandlerSpec
	16, // 21: app.v1.Context.ATValidation:type_name -> app.v1.TokenValidation
	16, // 22: app.v1.Context.IDTValidation:type_name -> app.v1.TokenValidation
	21, // 23: app.v1.AuthorizationRequestObject.JWTHandler:type_name -> app.v1.JWTHandlerSpec
	2,  // 24: app.v1.AuthorizationResponseJARM.ResponseMode:type_name -> app.v1.ResponseModeMethod
	21, // 25: app.v1.AuthorizationResponseJARM.JWTHandler:type_name -> app.v1.JWTHandlerSpec
	0,  // 26: app.v1.AuthorizationCodeHandler.PKCEMethod:type_name -> app.v1.PKCEMethod
	10, // 27: app.v1.AuthorizationCodeHandler.RequestObject:type_name -> app.v1.AuthorizationRequestObject
	11, // 28: app.v1.AuthorizationCodeHandler.JARM:type_name -> app.v1.AuthorizationResponseJARM
	29, // [29:29] is the sub-list for method output_type
	29, // [29:29] is the sub-list for method input_type
	29, // [29:29] is the sub-list for extension type_name
	29, // [29:29] is the sub-list for extension extendee
	0,  // [0:29] is the sub-list for field type_name
}

func init() { file_app_v1_authn_oauth_proto_init() }
func file_app_v1_authn_oauth_proto_init() {
	if File_app_v1_authn_oauth_proto != nil {
		return
	}
	file_app_v1_jwt_proto_init()
	file_app_v1_authn_oauth_proto_msgTypes[1].OneofWrappers = []any{
		(*OAuthAuthenticationHandlerSpec_AuthorizationCodeHandler)(nil),
		(*OAuthAuthenticationHandlerSpec_ClientCredentialsHandler)(nil),
		(*OAuthAuthenticationHandlerSpec_ResourceServerHandler)(nil),
		(*OAuthAuthenticationHandlerSpec_ROPCHandler)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_app_v1_authn_oauth_proto_rawDesc), len(file_app_v1_authn_oauth_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_app_v1_authn_oauth_proto_goTypes,
		DependencyIndexes: file_app_v1_authn_oauth_proto_depIdxs,
		EnumInfos:         file_app_v1_authn_oauth_proto_enumTypes,
		MessageInfos:      file_app_v1_authn_oauth_proto_msgTypes,
	}.Build()
	File_app_v1_authn_oauth_proto = out.File
	file_app_v1_authn_oauth_proto_goTypes = nil
	file_app_v1_authn_oauth_proto_depIdxs = nil
}
