// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.1
// source: auth.proto

package gen

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Enum for challenge types
type SessionType int32

const (
	SessionType_CHALLENGE_TYPE_UNSPECIFIED SessionType = 0
	SessionType_LOGIN                      SessionType = 1
	SessionType_OAUTH                      SessionType = 2
	SessionType_OIDC                       SessionType = 3
)

// Enum value maps for SessionType.
var (
	SessionType_name = map[int32]string{
		0: "CHALLENGE_TYPE_UNSPECIFIED",
		1: "LOGIN",
		2: "OAUTH",
		3: "OIDC",
	}
	SessionType_value = map[string]int32{
		"CHALLENGE_TYPE_UNSPECIFIED": 0,
		"LOGIN":                      1,
		"OAUTH":                      2,
		"OIDC":                       3,
	}
)

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

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

func (SessionType) Descriptor() protoreflect.EnumDescriptor {
	return file_auth_proto_enumTypes[0].Descriptor()
}

func (SessionType) Type() protoreflect.EnumType {
	return &file_auth_proto_enumTypes[0]
}

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

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

// Enum for client platforms
type ClientPlatform int32

const (
	ClientPlatform_CLIENT_PLATFORM_UNSPECIFIED ClientPlatform = 0
	ClientPlatform_UNIDENTIFIED                ClientPlatform = 1
	ClientPlatform_WEB                         ClientPlatform = 2
	ClientPlatform_IOS                         ClientPlatform = 3
	ClientPlatform_ANDROID                     ClientPlatform = 4
	ClientPlatform_MACOS                       ClientPlatform = 5
	ClientPlatform_WINDOWS                     ClientPlatform = 6
	ClientPlatform_LINUX                       ClientPlatform = 7
)

// Enum value maps for ClientPlatform.
var (
	ClientPlatform_name = map[int32]string{
		0: "CLIENT_PLATFORM_UNSPECIFIED",
		1: "UNIDENTIFIED",
		2: "WEB",
		3: "IOS",
		4: "ANDROID",
		5: "MACOS",
		6: "WINDOWS",
		7: "LINUX",
	}
	ClientPlatform_value = map[string]int32{
		"CLIENT_PLATFORM_UNSPECIFIED": 0,
		"UNIDENTIFIED":                1,
		"WEB":                         2,
		"IOS":                         3,
		"ANDROID":                     4,
		"MACOS":                       5,
		"WINDOWS":                     6,
		"LINUX":                       7,
	}
)

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

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

func (ClientPlatform) Descriptor() protoreflect.EnumDescriptor {
	return file_auth_proto_enumTypes[1].Descriptor()
}

func (ClientPlatform) Type() protoreflect.EnumType {
	return &file_auth_proto_enumTypes[1]
}

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

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

type PermissionNodeActorType int32

const (
	PermissionNodeActorType_ACCOUNT PermissionNodeActorType = 0
	PermissionNodeActorType_GROUP   PermissionNodeActorType = 1
)

// Enum value maps for PermissionNodeActorType.
var (
	PermissionNodeActorType_name = map[int32]string{
		0: "ACCOUNT",
		1: "GROUP",
	}
	PermissionNodeActorType_value = map[string]int32{
		"ACCOUNT": 0,
		"GROUP":   1,
	}
)

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

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

func (PermissionNodeActorType) Descriptor() protoreflect.EnumDescriptor {
	return file_auth_proto_enumTypes[2].Descriptor()
}

func (PermissionNodeActorType) Type() protoreflect.EnumType {
	return &file_auth_proto_enumTypes[2]
}

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

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

// Represents a user session
type AuthSession struct {
	state           protoimpl.MessageState  `protogen:"open.v1"`
	Id              string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	LastGrantedAt   *timestamppb.Timestamp  `protobuf:"bytes,3,opt,name=last_granted_at,json=lastGrantedAt,proto3,oneof" json:"last_granted_at,omitempty"`
	ExpiredAt       *timestamppb.Timestamp  `protobuf:"bytes,4,opt,name=expired_at,json=expiredAt,proto3,oneof" json:"expired_at,omitempty"`
	AccountId       string                  `protobuf:"bytes,5,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	Account         *Account                `protobuf:"bytes,6,opt,name=account,proto3" json:"account,omitempty"`
	AppId           *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	ClientId        *string                 `protobuf:"bytes,10,opt,name=client_id,json=clientId,proto3,oneof" json:"client_id,omitempty"`
	ParentSessionId *string                 `protobuf:"bytes,11,opt,name=parent_session_id,json=parentSessionId,proto3,oneof" json:"parent_session_id,omitempty"`
	Client          *AuthClient             `protobuf:"bytes,12,opt,name=client,proto3" json:"client,omitempty"`
	Audiences       []string                `protobuf:"bytes,13,rep,name=audiences,proto3" json:"audiences,omitempty"`
	Scopes          []string                `protobuf:"bytes,14,rep,name=scopes,proto3" json:"scopes,omitempty"`
	IpAddress       *wrapperspb.StringValue `protobuf:"bytes,15,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	UserAgent       *wrapperspb.StringValue `protobuf:"bytes,16,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
	Type            SessionType             `protobuf:"varint,17,opt,name=type,proto3,enum=proto.SessionType" json:"type,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*AuthSession) ProtoMessage() {}

func (x *AuthSession) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 AuthSession.ProtoReflect.Descriptor instead.
func (*AuthSession) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{0}
}

func (x *AuthSession) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *AuthSession) GetLastGrantedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.LastGrantedAt
	}
	return nil
}

func (x *AuthSession) GetExpiredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiredAt
	}
	return nil
}

func (x *AuthSession) GetAccountId() string {
	if x != nil {
		return x.AccountId
	}
	return ""
}

func (x *AuthSession) GetAccount() *Account {
	if x != nil {
		return x.Account
	}
	return nil
}

func (x *AuthSession) GetAppId() *wrapperspb.StringValue {
	if x != nil {
		return x.AppId
	}
	return nil
}

func (x *AuthSession) GetClientId() string {
	if x != nil && x.ClientId != nil {
		return *x.ClientId
	}
	return ""
}

func (x *AuthSession) GetParentSessionId() string {
	if x != nil && x.ParentSessionId != nil {
		return *x.ParentSessionId
	}
	return ""
}

func (x *AuthSession) GetClient() *AuthClient {
	if x != nil {
		return x.Client
	}
	return nil
}

func (x *AuthSession) GetAudiences() []string {
	if x != nil {
		return x.Audiences
	}
	return nil
}

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

func (x *AuthSession) GetIpAddress() *wrapperspb.StringValue {
	if x != nil {
		return x.IpAddress
	}
	return nil
}

func (x *AuthSession) GetUserAgent() *wrapperspb.StringValue {
	if x != nil {
		return x.UserAgent
	}
	return nil
}

func (x *AuthSession) GetType() SessionType {
	if x != nil {
		return x.Type
	}
	return SessionType_CHALLENGE_TYPE_UNSPECIFIED
}

// Represents an authentication challenge
type AuthChallenge struct {
	state            protoimpl.MessageState  `protogen:"open.v1"`
	Id               string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ExpiredAt        *timestamppb.Timestamp  `protobuf:"bytes,2,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"`
	StepRemain       int32                   `protobuf:"varint,3,opt,name=step_remain,json=stepRemain,proto3" json:"step_remain,omitempty"`
	StepTotal        int32                   `protobuf:"varint,4,opt,name=step_total,json=stepTotal,proto3" json:"step_total,omitempty"`
	FailedAttempts   int32                   `protobuf:"varint,5,opt,name=failed_attempts,json=failedAttempts,proto3" json:"failed_attempts,omitempty"`
	BlacklistFactors []string                `protobuf:"bytes,8,rep,name=blacklist_factors,json=blacklistFactors,proto3" json:"blacklist_factors,omitempty"`
	Audiences        []string                `protobuf:"bytes,9,rep,name=audiences,proto3" json:"audiences,omitempty"`
	Scopes           []string                `protobuf:"bytes,10,rep,name=scopes,proto3" json:"scopes,omitempty"`
	IpAddress        *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	UserAgent        *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
	DeviceId         *wrapperspb.StringValue `protobuf:"bytes,13,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	Nonce            *wrapperspb.StringValue `protobuf:"bytes,14,opt,name=nonce,proto3" json:"nonce,omitempty"`
	// Point location is omitted as there is no direct proto equivalent.
	AccountId     string                  `protobuf:"bytes,15,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	DeviceName    *wrapperspb.StringValue `protobuf:"bytes,16,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
	Platform      ClientPlatform          `protobuf:"varint,17,opt,name=platform,proto3,enum=proto.ClientPlatform" json:"platform,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthChallenge) ProtoMessage() {}

func (x *AuthChallenge) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 AuthChallenge.ProtoReflect.Descriptor instead.
func (*AuthChallenge) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{1}
}

func (x *AuthChallenge) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *AuthChallenge) GetExpiredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiredAt
	}
	return nil
}

func (x *AuthChallenge) GetStepRemain() int32 {
	if x != nil {
		return x.StepRemain
	}
	return 0
}

func (x *AuthChallenge) GetStepTotal() int32 {
	if x != nil {
		return x.StepTotal
	}
	return 0
}

func (x *AuthChallenge) GetFailedAttempts() int32 {
	if x != nil {
		return x.FailedAttempts
	}
	return 0
}

func (x *AuthChallenge) GetBlacklistFactors() []string {
	if x != nil {
		return x.BlacklistFactors
	}
	return nil
}

func (x *AuthChallenge) GetAudiences() []string {
	if x != nil {
		return x.Audiences
	}
	return nil
}

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

func (x *AuthChallenge) GetIpAddress() *wrapperspb.StringValue {
	if x != nil {
		return x.IpAddress
	}
	return nil
}

func (x *AuthChallenge) GetUserAgent() *wrapperspb.StringValue {
	if x != nil {
		return x.UserAgent
	}
	return nil
}

func (x *AuthChallenge) GetDeviceId() *wrapperspb.StringValue {
	if x != nil {
		return x.DeviceId
	}
	return nil
}

func (x *AuthChallenge) GetNonce() *wrapperspb.StringValue {
	if x != nil {
		return x.Nonce
	}
	return nil
}

func (x *AuthChallenge) GetAccountId() string {
	if x != nil {
		return x.AccountId
	}
	return ""
}

func (x *AuthChallenge) GetDeviceName() *wrapperspb.StringValue {
	if x != nil {
		return x.DeviceName
	}
	return nil
}

func (x *AuthChallenge) GetPlatform() ClientPlatform {
	if x != nil {
		return x.Platform
	}
	return ClientPlatform_CLIENT_PLATFORM_UNSPECIFIED
}

type AuthClient struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Id            string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Platform      ClientPlatform          `protobuf:"varint,2,opt,name=platform,proto3,enum=proto.ClientPlatform" json:"platform,omitempty"`
	DeviceName    *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
	DeviceLabel   *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=device_label,json=deviceLabel,proto3" json:"device_label,omitempty"`
	DeviceId      string                  `protobuf:"bytes,5,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	AccountId     string                  `protobuf:"bytes,6,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthClient) ProtoMessage() {}

func (x *AuthClient) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 AuthClient.ProtoReflect.Descriptor instead.
func (*AuthClient) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{2}
}

func (x *AuthClient) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *AuthClient) GetPlatform() ClientPlatform {
	if x != nil {
		return x.Platform
	}
	return ClientPlatform_CLIENT_PLATFORM_UNSPECIFIED
}

func (x *AuthClient) GetDeviceName() *wrapperspb.StringValue {
	if x != nil {
		return x.DeviceName
	}
	return nil
}

func (x *AuthClient) GetDeviceLabel() *wrapperspb.StringValue {
	if x != nil {
		return x.DeviceLabel
	}
	return nil
}

func (x *AuthClient) GetDeviceId() string {
	if x != nil {
		return x.DeviceId
	}
	return ""
}

func (x *AuthClient) GetAccountId() string {
	if x != nil {
		return x.AccountId
	}
	return ""
}

type AuthenticateRequest struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Token         string                  `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	IpAddress     *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3,oneof" json:"ip_address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthenticateRequest) ProtoMessage() {}

func (x *AuthenticateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 AuthenticateRequest.ProtoReflect.Descriptor instead.
func (*AuthenticateRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{3}
}

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

func (x *AuthenticateRequest) GetIpAddress() *wrapperspb.StringValue {
	if x != nil {
		return x.IpAddress
	}
	return nil
}

type AuthenticateResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Valid         bool                   `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
	Message       *string                `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"`
	Session       *AuthSession           `protobuf:"bytes,3,opt,name=session,proto3,oneof" json:"session,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthenticateResponse) ProtoMessage() {}

func (x *AuthenticateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 AuthenticateResponse.ProtoReflect.Descriptor instead.
func (*AuthenticateResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{4}
}

func (x *AuthenticateResponse) GetValid() bool {
	if x != nil {
		return x.Valid
	}
	return false
}

func (x *AuthenticateResponse) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *AuthenticateResponse) GetSession() *AuthSession {
	if x != nil {
		return x.Session
	}
	return nil
}

type ValidatePinRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	AccountId     string                 `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	Pin           string                 `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidatePinRequest) ProtoMessage() {}

func (x *ValidatePinRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 ValidatePinRequest.ProtoReflect.Descriptor instead.
func (*ValidatePinRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{5}
}

func (x *ValidatePinRequest) GetAccountId() string {
	if x != nil {
		return x.AccountId
	}
	return ""
}

func (x *ValidatePinRequest) GetPin() string {
	if x != nil {
		return x.Pin
	}
	return ""
}

type ValidateCaptchaRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidateCaptchaRequest) ProtoMessage() {}

func (x *ValidateCaptchaRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 ValidateCaptchaRequest.ProtoReflect.Descriptor instead.
func (*ValidateCaptchaRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{6}
}

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

type ValidateResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Valid         bool                   `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidateResponse) ProtoMessage() {}

func (x *ValidateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 ValidateResponse.ProtoReflect.Descriptor instead.
func (*ValidateResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{7}
}

func (x *ValidateResponse) GetValid() bool {
	if x != nil {
		return x.Valid
	}
	return false
}

// Permission related messages and services
type PermissionNode struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Id            string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Actor         string                  `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"`
	Type          PermissionNodeActorType `protobuf:"varint,3,opt,name=type,proto3,enum=proto.PermissionNodeActorType" json:"type,omitempty"`
	Key           string                  `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
	Value         *structpb.Value         `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` // Using Value to represent generic type
	ExpiredAt     *timestamppb.Timestamp  `protobuf:"bytes,6,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"`
	AffectedAt    *timestamppb.Timestamp  `protobuf:"bytes,7,opt,name=affected_at,json=affectedAt,proto3" json:"affected_at,omitempty"`
	GroupId       string                  `protobuf:"bytes,8,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // Optional group ID
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PermissionNode) ProtoMessage() {}

func (x *PermissionNode) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 PermissionNode.ProtoReflect.Descriptor instead.
func (*PermissionNode) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{8}
}

func (x *PermissionNode) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PermissionNode) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *PermissionNode) GetType() PermissionNodeActorType {
	if x != nil {
		return x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

func (x *PermissionNode) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *PermissionNode) GetValue() *structpb.Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *PermissionNode) GetExpiredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiredAt
	}
	return nil
}

func (x *PermissionNode) GetAffectedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.AffectedAt
	}
	return nil
}

func (x *PermissionNode) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

type PermissionGroup struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PermissionGroup) ProtoMessage() {}

func (x *PermissionGroup) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 PermissionGroup.ProtoReflect.Descriptor instead.
func (*PermissionGroup) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{9}
}

func (x *PermissionGroup) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

func (x *PermissionGroup) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

type HasPermissionRequest struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Actor         string                   `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"`
	Key           string                   `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Type          *PermissionNodeActorType `protobuf:"varint,3,opt,name=type,proto3,enum=proto.PermissionNodeActorType,oneof" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HasPermissionRequest) ProtoMessage() {}

func (x *HasPermissionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 HasPermissionRequest.ProtoReflect.Descriptor instead.
func (*HasPermissionRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{10}
}

func (x *HasPermissionRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *HasPermissionRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *HasPermissionRequest) GetType() PermissionNodeActorType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

type HasPermissionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	HasPermission bool                   `protobuf:"varint,1,opt,name=has_permission,json=hasPermission,proto3" json:"has_permission,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HasPermissionResponse) ProtoMessage() {}

func (x *HasPermissionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 HasPermissionResponse.ProtoReflect.Descriptor instead.
func (*HasPermissionResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{11}
}

func (x *HasPermissionResponse) GetHasPermission() bool {
	if x != nil {
		return x.HasPermission
	}
	return false
}

type GetPermissionRequest struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Actor         string                   `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"`
	Type          *PermissionNodeActorType `protobuf:"varint,2,opt,name=type,proto3,enum=proto.PermissionNodeActorType,oneof" json:"type,omitempty"`
	Key           string                   `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetPermissionRequest) ProtoMessage() {}

func (x *GetPermissionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 GetPermissionRequest.ProtoReflect.Descriptor instead.
func (*GetPermissionRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{12}
}

func (x *GetPermissionRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *GetPermissionRequest) GetType() PermissionNodeActorType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

func (x *GetPermissionRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

type GetPermissionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Value         *structpb.Value        `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // Using Value to represent generic type
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetPermissionResponse) ProtoMessage() {}

func (x *GetPermissionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_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 GetPermissionResponse.ProtoReflect.Descriptor instead.
func (*GetPermissionResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{13}
}

func (x *GetPermissionResponse) GetValue() *structpb.Value {
	if x != nil {
		return x.Value
	}
	return nil
}

type AddPermissionNodeRequest struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Actor         string                   `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"`
	Type          *PermissionNodeActorType `protobuf:"varint,2,opt,name=type,proto3,enum=proto.PermissionNodeActorType,oneof" json:"type,omitempty"`
	Key           string                   `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	Value         *structpb.Value          `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	ExpiredAt     *timestamppb.Timestamp   `protobuf:"bytes,5,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"`
	AffectedAt    *timestamppb.Timestamp   `protobuf:"bytes,6,opt,name=affected_at,json=affectedAt,proto3" json:"affected_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPermissionNodeRequest) Reset() {
	*x = AddPermissionNodeRequest{}
	mi := &file_auth_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AddPermissionNodeRequest) ProtoMessage() {}

func (x *AddPermissionNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[14]
	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 AddPermissionNodeRequest.ProtoReflect.Descriptor instead.
func (*AddPermissionNodeRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{14}
}

func (x *AddPermissionNodeRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *AddPermissionNodeRequest) GetType() PermissionNodeActorType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

func (x *AddPermissionNodeRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *AddPermissionNodeRequest) GetValue() *structpb.Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *AddPermissionNodeRequest) GetExpiredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiredAt
	}
	return nil
}

func (x *AddPermissionNodeRequest) GetAffectedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.AffectedAt
	}
	return nil
}

type AddPermissionNodeResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Node          *PermissionNode        `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPermissionNodeResponse) Reset() {
	*x = AddPermissionNodeResponse{}
	mi := &file_auth_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AddPermissionNodeResponse) ProtoMessage() {}

func (x *AddPermissionNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[15]
	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 AddPermissionNodeResponse.ProtoReflect.Descriptor instead.
func (*AddPermissionNodeResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{15}
}

func (x *AddPermissionNodeResponse) GetNode() *PermissionNode {
	if x != nil {
		return x.Node
	}
	return nil
}

type AddPermissionNodeToGroupRequest struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Group         *PermissionGroup         `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	Actor         string                   `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"`
	Type          *PermissionNodeActorType `protobuf:"varint,3,opt,name=type,proto3,enum=proto.PermissionNodeActorType,oneof" json:"type,omitempty"`
	Key           string                   `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
	Value         *structpb.Value          `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
	ExpiredAt     *timestamppb.Timestamp   `protobuf:"bytes,6,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"`
	AffectedAt    *timestamppb.Timestamp   `protobuf:"bytes,7,opt,name=affected_at,json=affectedAt,proto3" json:"affected_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPermissionNodeToGroupRequest) Reset() {
	*x = AddPermissionNodeToGroupRequest{}
	mi := &file_auth_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AddPermissionNodeToGroupRequest) ProtoMessage() {}

func (x *AddPermissionNodeToGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[16]
	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 AddPermissionNodeToGroupRequest.ProtoReflect.Descriptor instead.
func (*AddPermissionNodeToGroupRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{16}
}

func (x *AddPermissionNodeToGroupRequest) GetGroup() *PermissionGroup {
	if x != nil {
		return x.Group
	}
	return nil
}

func (x *AddPermissionNodeToGroupRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *AddPermissionNodeToGroupRequest) GetType() PermissionNodeActorType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

func (x *AddPermissionNodeToGroupRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *AddPermissionNodeToGroupRequest) GetValue() *structpb.Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *AddPermissionNodeToGroupRequest) GetExpiredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiredAt
	}
	return nil
}

func (x *AddPermissionNodeToGroupRequest) GetAffectedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.AffectedAt
	}
	return nil
}

type AddPermissionNodeToGroupResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Node          *PermissionNode        `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPermissionNodeToGroupResponse) Reset() {
	*x = AddPermissionNodeToGroupResponse{}
	mi := &file_auth_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AddPermissionNodeToGroupResponse) ProtoMessage() {}

func (x *AddPermissionNodeToGroupResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[17]
	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 AddPermissionNodeToGroupResponse.ProtoReflect.Descriptor instead.
func (*AddPermissionNodeToGroupResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{17}
}

func (x *AddPermissionNodeToGroupResponse) GetNode() *PermissionNode {
	if x != nil {
		return x.Node
	}
	return nil
}

type RemovePermissionNodeRequest struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Actor         string                   `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"`
	Type          *PermissionNodeActorType `protobuf:"varint,2,opt,name=type,proto3,enum=proto.PermissionNodeActorType,oneof" json:"type,omitempty"`
	Key           string                   `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemovePermissionNodeRequest) Reset() {
	*x = RemovePermissionNodeRequest{}
	mi := &file_auth_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RemovePermissionNodeRequest) ProtoMessage() {}

func (x *RemovePermissionNodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[18]
	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 RemovePermissionNodeRequest.ProtoReflect.Descriptor instead.
func (*RemovePermissionNodeRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{18}
}

func (x *RemovePermissionNodeRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *RemovePermissionNodeRequest) GetType() PermissionNodeActorType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return PermissionNodeActorType_ACCOUNT
}

func (x *RemovePermissionNodeRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

type RemovePermissionNodeResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemovePermissionNodeResponse) Reset() {
	*x = RemovePermissionNodeResponse{}
	mi := &file_auth_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RemovePermissionNodeResponse) ProtoMessage() {}

func (x *RemovePermissionNodeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[19]
	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 RemovePermissionNodeResponse.ProtoReflect.Descriptor instead.
func (*RemovePermissionNodeResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{19}
}

func (x *RemovePermissionNodeResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

type RemovePermissionNodeFromGroupRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Group         *PermissionGroup       `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	Actor         string                 `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"`
	Key           string                 `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemovePermissionNodeFromGroupRequest) Reset() {
	*x = RemovePermissionNodeFromGroupRequest{}
	mi := &file_auth_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RemovePermissionNodeFromGroupRequest) ProtoMessage() {}

func (x *RemovePermissionNodeFromGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[20]
	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 RemovePermissionNodeFromGroupRequest.ProtoReflect.Descriptor instead.
func (*RemovePermissionNodeFromGroupRequest) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{20}
}

func (x *RemovePermissionNodeFromGroupRequest) GetGroup() *PermissionGroup {
	if x != nil {
		return x.Group
	}
	return nil
}

func (x *RemovePermissionNodeFromGroupRequest) GetActor() string {
	if x != nil {
		return x.Actor
	}
	return ""
}

func (x *RemovePermissionNodeFromGroupRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

type RemovePermissionNodeFromGroupResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemovePermissionNodeFromGroupResponse) Reset() {
	*x = RemovePermissionNodeFromGroupResponse{}
	mi := &file_auth_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RemovePermissionNodeFromGroupResponse) ProtoMessage() {}

func (x *RemovePermissionNodeFromGroupResponse) ProtoReflect() protoreflect.Message {
	mi := &file_auth_proto_msgTypes[21]
	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 RemovePermissionNodeFromGroupResponse.ProtoReflect.Descriptor instead.
func (*RemovePermissionNodeFromGroupResponse) Descriptor() ([]byte, []int) {
	return file_auth_proto_rawDescGZIP(), []int{21}
}

func (x *RemovePermissionNodeFromGroupResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

var File_auth_proto protoreflect.FileDescriptor

const file_auth_proto_rawDesc = "" +
	"\n" +
	"\n" +
	"auth.proto\x12\x05proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\raccount.proto\"\xc1\x05\n" +
	"\vAuthSession\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12G\n" +
	"\x0flast_granted_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampH\x00R\rlastGrantedAt\x88\x01\x01\x12>\n" +
	"\n" +
	"expired_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampH\x01R\texpiredAt\x88\x01\x01\x12\x1d\n" +
	"\n" +
	"account_id\x18\x05 \x01(\tR\taccountId\x12(\n" +
	"\aaccount\x18\x06 \x01(\v2\x0e.proto.AccountR\aaccount\x123\n" +
	"\x06app_id\x18\t \x01(\v2\x1c.google.protobuf.StringValueR\x05appId\x12 \n" +
	"\tclient_id\x18\n" +
	" \x01(\tH\x02R\bclientId\x88\x01\x01\x12/\n" +
	"\x11parent_session_id\x18\v \x01(\tH\x03R\x0fparentSessionId\x88\x01\x01\x12)\n" +
	"\x06client\x18\f \x01(\v2\x11.proto.AuthClientR\x06client\x12\x1c\n" +
	"\taudiences\x18\r \x03(\tR\taudiences\x12\x16\n" +
	"\x06scopes\x18\x0e \x03(\tR\x06scopes\x12;\n" +
	"\n" +
	"ip_address\x18\x0f \x01(\v2\x1c.google.protobuf.StringValueR\tipAddress\x12;\n" +
	"\n" +
	"user_agent\x18\x10 \x01(\v2\x1c.google.protobuf.StringValueR\tuserAgent\x12&\n" +
	"\x04type\x18\x11 \x01(\x0e2\x12.proto.SessionTypeR\x04typeB\x12\n" +
	"\x10_last_granted_atB\r\n" +
	"\v_expired_atB\f\n" +
	"\n" +
	"_client_idB\x14\n" +
	"\x12_parent_session_id\"\xa0\x05\n" +
	"\rAuthChallenge\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x129\n" +
	"\n" +
	"expired_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\texpiredAt\x12\x1f\n" +
	"\vstep_remain\x18\x03 \x01(\x05R\n" +
	"stepRemain\x12\x1d\n" +
	"\n" +
	"step_total\x18\x04 \x01(\x05R\tstepTotal\x12'\n" +
	"\x0ffailed_attempts\x18\x05 \x01(\x05R\x0efailedAttempts\x12+\n" +
	"\x11blacklist_factors\x18\b \x03(\tR\x10blacklistFactors\x12\x1c\n" +
	"\taudiences\x18\t \x03(\tR\taudiences\x12\x16\n" +
	"\x06scopes\x18\n" +
	" \x03(\tR\x06scopes\x12;\n" +
	"\n" +
	"ip_address\x18\v \x01(\v2\x1c.google.protobuf.StringValueR\tipAddress\x12;\n" +
	"\n" +
	"user_agent\x18\f \x01(\v2\x1c.google.protobuf.StringValueR\tuserAgent\x129\n" +
	"\tdevice_id\x18\r \x01(\v2\x1c.google.protobuf.StringValueR\bdeviceId\x122\n" +
	"\x05nonce\x18\x0e \x01(\v2\x1c.google.protobuf.StringValueR\x05nonce\x12\x1d\n" +
	"\n" +
	"account_id\x18\x0f \x01(\tR\taccountId\x12=\n" +
	"\vdevice_name\x18\x10 \x01(\v2\x1c.google.protobuf.StringValueR\n" +
	"deviceName\x121\n" +
	"\bplatform\x18\x11 \x01(\x0e2\x15.proto.ClientPlatformR\bplatform\"\x8b\x02\n" +
	"\n" +
	"AuthClient\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x121\n" +
	"\bplatform\x18\x02 \x01(\x0e2\x15.proto.ClientPlatformR\bplatform\x12=\n" +
	"\vdevice_name\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\n" +
	"deviceName\x12?\n" +
	"\fdevice_label\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\vdeviceLabel\x12\x1b\n" +
	"\tdevice_id\x18\x05 \x01(\tR\bdeviceId\x12\x1d\n" +
	"\n" +
	"account_id\x18\x06 \x01(\tR\taccountId\"|\n" +
	"\x13AuthenticateRequest\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\x12@\n" +
	"\n" +
	"ip_address\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueH\x00R\tipAddress\x88\x01\x01B\r\n" +
	"\v_ip_address\"\x96\x01\n" +
	"\x14AuthenticateResponse\x12\x14\n" +
	"\x05valid\x18\x01 \x01(\bR\x05valid\x12\x1d\n" +
	"\amessage\x18\x02 \x01(\tH\x00R\amessage\x88\x01\x01\x121\n" +
	"\asession\x18\x03 \x01(\v2\x12.proto.AuthSessionH\x01R\asession\x88\x01\x01B\n" +
	"\n" +
	"\b_messageB\n" +
	"\n" +
	"\b_session\"E\n" +
	"\x12ValidatePinRequest\x12\x1d\n" +
	"\n" +
	"account_id\x18\x01 \x01(\tR\taccountId\x12\x10\n" +
	"\x03pin\x18\x02 \x01(\tR\x03pin\".\n" +
	"\x16ValidateCaptchaRequest\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"(\n" +
	"\x10ValidateResponse\x12\x14\n" +
	"\x05valid\x18\x01 \x01(\bR\x05valid\"\xbd\x02\n" +
	"\x0ePermissionNode\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
	"\x05actor\x18\x02 \x01(\tR\x05actor\x122\n" +
	"\x04type\x18\x03 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeR\x04type\x12\x10\n" +
	"\x03key\x18\x04 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x05 \x01(\v2\x16.google.protobuf.ValueR\x05value\x129\n" +
	"\n" +
	"expired_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\texpiredAt\x12;\n" +
	"\vaffected_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"affectedAt\x12\x19\n" +
	"\bgroup_id\x18\b \x01(\tR\agroupId\"p\n" +
	"\x0fPermissionGroup\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x129\n" +
	"\n" +
	"created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\x80\x01\n" +
	"\x14HasPermissionRequest\x12\x14\n" +
	"\x05actor\x18\x01 \x01(\tR\x05actor\x12\x10\n" +
	"\x03key\x18\x02 \x01(\tR\x03key\x127\n" +
	"\x04type\x18\x03 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeH\x00R\x04type\x88\x01\x01B\a\n" +
	"\x05_type\">\n" +
	"\x15HasPermissionResponse\x12%\n" +
	"\x0ehas_permission\x18\x01 \x01(\bR\rhasPermission\"\x80\x01\n" +
	"\x14GetPermissionRequest\x12\x14\n" +
	"\x05actor\x18\x01 \x01(\tR\x05actor\x127\n" +
	"\x04type\x18\x02 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeH\x00R\x04type\x88\x01\x01\x12\x10\n" +
	"\x03key\x18\x03 \x01(\tR\x03keyB\a\n" +
	"\x05_type\"E\n" +
	"\x15GetPermissionResponse\x12,\n" +
	"\x05value\x18\x01 \x01(\v2\x16.google.protobuf.ValueR\x05value\"\xaa\x02\n" +
	"\x18AddPermissionNodeRequest\x12\x14\n" +
	"\x05actor\x18\x01 \x01(\tR\x05actor\x127\n" +
	"\x04type\x18\x02 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeH\x00R\x04type\x88\x01\x01\x12\x10\n" +
	"\x03key\x18\x03 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x04 \x01(\v2\x16.google.protobuf.ValueR\x05value\x129\n" +
	"\n" +
	"expired_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\texpiredAt\x12;\n" +
	"\vaffected_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"affectedAtB\a\n" +
	"\x05_type\"F\n" +
	"\x19AddPermissionNodeResponse\x12)\n" +
	"\x04node\x18\x01 \x01(\v2\x15.proto.PermissionNodeR\x04node\"\xdf\x02\n" +
	"\x1fAddPermissionNodeToGroupRequest\x12,\n" +
	"\x05group\x18\x01 \x01(\v2\x16.proto.PermissionGroupR\x05group\x12\x14\n" +
	"\x05actor\x18\x02 \x01(\tR\x05actor\x127\n" +
	"\x04type\x18\x03 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeH\x00R\x04type\x88\x01\x01\x12\x10\n" +
	"\x03key\x18\x04 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x05 \x01(\v2\x16.google.protobuf.ValueR\x05value\x129\n" +
	"\n" +
	"expired_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\texpiredAt\x12;\n" +
	"\vaffected_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"affectedAtB\a\n" +
	"\x05_type\"M\n" +
	" AddPermissionNodeToGroupResponse\x12)\n" +
	"\x04node\x18\x01 \x01(\v2\x15.proto.PermissionNodeR\x04node\"\x87\x01\n" +
	"\x1bRemovePermissionNodeRequest\x12\x14\n" +
	"\x05actor\x18\x01 \x01(\tR\x05actor\x127\n" +
	"\x04type\x18\x02 \x01(\x0e2\x1e.proto.PermissionNodeActorTypeH\x00R\x04type\x88\x01\x01\x12\x10\n" +
	"\x03key\x18\x03 \x01(\tR\x03keyB\a\n" +
	"\x05_type\"8\n" +
	"\x1cRemovePermissionNodeResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\"|\n" +
	"$RemovePermissionNodeFromGroupRequest\x12,\n" +
	"\x05group\x18\x01 \x01(\v2\x16.proto.PermissionGroupR\x05group\x12\x14\n" +
	"\x05actor\x18\x02 \x01(\tR\x05actor\x12\x10\n" +
	"\x03key\x18\x04 \x01(\tR\x03key\"A\n" +
	"%RemovePermissionNodeFromGroupResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess*M\n" +
	"\vSessionType\x12\x1e\n" +
	"\x1aCHALLENGE_TYPE_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05LOGIN\x10\x01\x12\t\n" +
	"\x05OAUTH\x10\x02\x12\b\n" +
	"\x04OIDC\x10\x03*\x85\x01\n" +
	"\x0eClientPlatform\x12\x1f\n" +
	"\x1bCLIENT_PLATFORM_UNSPECIFIED\x10\x00\x12\x10\n" +
	"\fUNIDENTIFIED\x10\x01\x12\a\n" +
	"\x03WEB\x10\x02\x12\a\n" +
	"\x03IOS\x10\x03\x12\v\n" +
	"\aANDROID\x10\x04\x12\t\n" +
	"\x05MACOS\x10\x05\x12\v\n" +
	"\aWINDOWS\x10\x06\x12\t\n" +
	"\x05LINUX\x10\a*1\n" +
	"\x17PermissionNodeActorType\x12\v\n" +
	"\aACCOUNT\x10\x00\x12\t\n" +
	"\x05GROUP\x10\x012\xea\x01\n" +
	"\vAuthService\x12I\n" +
	"\fAuthenticate\x12\x1a.proto.AuthenticateRequest\x1a\x1b.proto.AuthenticateResponse\"\x00\x12C\n" +
	"\vValidatePin\x12\x19.proto.ValidatePinRequest\x1a\x17.proto.ValidateResponse\"\x00\x12K\n" +
	"\x0fValidateCaptcha\x12\x1d.proto.ValidateCaptchaRequest\x1a\x17.proto.ValidateResponse\"\x002\xd9\x04\n" +
	"\x11PermissionService\x12L\n" +
	"\rHasPermission\x12\x1b.proto.HasPermissionRequest\x1a\x1c.proto.HasPermissionResponse\"\x00\x12L\n" +
	"\rGetPermission\x12\x1b.proto.GetPermissionRequest\x1a\x1c.proto.GetPermissionResponse\"\x00\x12X\n" +
	"\x11AddPermissionNode\x12\x1f.proto.AddPermissionNodeRequest\x1a .proto.AddPermissionNodeResponse\"\x00\x12m\n" +
	"\x18AddPermissionNodeToGroup\x12&.proto.AddPermissionNodeToGroupRequest\x1a'.proto.AddPermissionNodeToGroupResponse\"\x00\x12a\n" +
	"\x14RemovePermissionNode\x12\".proto.RemovePermissionNodeRequest\x1a#.proto.RemovePermissionNodeResponse\"\x00\x12|\n" +
	"\x1dRemovePermissionNodeFromGroup\x12+.proto.RemovePermissionNodeFromGroupRequest\x1a,.proto.RemovePermissionNodeFromGroupResponse\"\x00BUZ7git.solsynth.dev/goatworks/turbine/pkg/shared/proto/gen\xaa\x02\x19DysonNetwork.Shared.Protob\x06proto3"

var (
	file_auth_proto_rawDescOnce sync.Once
	file_auth_proto_rawDescData []byte
)

func file_auth_proto_rawDescGZIP() []byte {
	file_auth_proto_rawDescOnce.Do(func() {
		file_auth_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_auth_proto_rawDesc), len(file_auth_proto_rawDesc)))
	})
	return file_auth_proto_rawDescData
}

var file_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_auth_proto_goTypes = []any{
	(SessionType)(0),                              // 0: proto.SessionType
	(ClientPlatform)(0),                           // 1: proto.ClientPlatform
	(PermissionNodeActorType)(0),                  // 2: proto.PermissionNodeActorType
	(*AuthSession)(nil),                           // 3: proto.AuthSession
	(*AuthChallenge)(nil),                         // 4: proto.AuthChallenge
	(*AuthClient)(nil),                            // 5: proto.AuthClient
	(*AuthenticateRequest)(nil),                   // 6: proto.AuthenticateRequest
	(*AuthenticateResponse)(nil),                  // 7: proto.AuthenticateResponse
	(*ValidatePinRequest)(nil),                    // 8: proto.ValidatePinRequest
	(*ValidateCaptchaRequest)(nil),                // 9: proto.ValidateCaptchaRequest
	(*ValidateResponse)(nil),                      // 10: proto.ValidateResponse
	(*PermissionNode)(nil),                        // 11: proto.PermissionNode
	(*PermissionGroup)(nil),                       // 12: proto.PermissionGroup
	(*HasPermissionRequest)(nil),                  // 13: proto.HasPermissionRequest
	(*HasPermissionResponse)(nil),                 // 14: proto.HasPermissionResponse
	(*GetPermissionRequest)(nil),                  // 15: proto.GetPermissionRequest
	(*GetPermissionResponse)(nil),                 // 16: proto.GetPermissionResponse
	(*AddPermissionNodeRequest)(nil),              // 17: proto.AddPermissionNodeRequest
	(*AddPermissionNodeResponse)(nil),             // 18: proto.AddPermissionNodeResponse
	(*AddPermissionNodeToGroupRequest)(nil),       // 19: proto.AddPermissionNodeToGroupRequest
	(*AddPermissionNodeToGroupResponse)(nil),      // 20: proto.AddPermissionNodeToGroupResponse
	(*RemovePermissionNodeRequest)(nil),           // 21: proto.RemovePermissionNodeRequest
	(*RemovePermissionNodeResponse)(nil),          // 22: proto.RemovePermissionNodeResponse
	(*RemovePermissionNodeFromGroupRequest)(nil),  // 23: proto.RemovePermissionNodeFromGroupRequest
	(*RemovePermissionNodeFromGroupResponse)(nil), // 24: proto.RemovePermissionNodeFromGroupResponse
	(*timestamppb.Timestamp)(nil),                 // 25: google.protobuf.Timestamp
	(*Account)(nil),                               // 26: proto.Account
	(*wrapperspb.StringValue)(nil),                // 27: google.protobuf.StringValue
	(*structpb.Value)(nil),                        // 28: google.protobuf.Value
}
var file_auth_proto_depIdxs = []int32{
	25, // 0: proto.AuthSession.last_granted_at:type_name -> google.protobuf.Timestamp
	25, // 1: proto.AuthSession.expired_at:type_name -> google.protobuf.Timestamp
	26, // 2: proto.AuthSession.account:type_name -> proto.Account
	27, // 3: proto.AuthSession.app_id:type_name -> google.protobuf.StringValue
	5,  // 4: proto.AuthSession.client:type_name -> proto.AuthClient
	27, // 5: proto.AuthSession.ip_address:type_name -> google.protobuf.StringValue
	27, // 6: proto.AuthSession.user_agent:type_name -> google.protobuf.StringValue
	0,  // 7: proto.AuthSession.type:type_name -> proto.SessionType
	25, // 8: proto.AuthChallenge.expired_at:type_name -> google.protobuf.Timestamp
	27, // 9: proto.AuthChallenge.ip_address:type_name -> google.protobuf.StringValue
	27, // 10: proto.AuthChallenge.user_agent:type_name -> google.protobuf.StringValue
	27, // 11: proto.AuthChallenge.device_id:type_name -> google.protobuf.StringValue
	27, // 12: proto.AuthChallenge.nonce:type_name -> google.protobuf.StringValue
	27, // 13: proto.AuthChallenge.device_name:type_name -> google.protobuf.StringValue
	1,  // 14: proto.AuthChallenge.platform:type_name -> proto.ClientPlatform
	1,  // 15: proto.AuthClient.platform:type_name -> proto.ClientPlatform
	27, // 16: proto.AuthClient.device_name:type_name -> google.protobuf.StringValue
	27, // 17: proto.AuthClient.device_label:type_name -> google.protobuf.StringValue
	27, // 18: proto.AuthenticateRequest.ip_address:type_name -> google.protobuf.StringValue
	3,  // 19: proto.AuthenticateResponse.session:type_name -> proto.AuthSession
	2,  // 20: proto.PermissionNode.type:type_name -> proto.PermissionNodeActorType
	28, // 21: proto.PermissionNode.value:type_name -> google.protobuf.Value
	25, // 22: proto.PermissionNode.expired_at:type_name -> google.protobuf.Timestamp
	25, // 23: proto.PermissionNode.affected_at:type_name -> google.protobuf.Timestamp
	25, // 24: proto.PermissionGroup.created_at:type_name -> google.protobuf.Timestamp
	2,  // 25: proto.HasPermissionRequest.type:type_name -> proto.PermissionNodeActorType
	2,  // 26: proto.GetPermissionRequest.type:type_name -> proto.PermissionNodeActorType
	28, // 27: proto.GetPermissionResponse.value:type_name -> google.protobuf.Value
	2,  // 28: proto.AddPermissionNodeRequest.type:type_name -> proto.PermissionNodeActorType
	28, // 29: proto.AddPermissionNodeRequest.value:type_name -> google.protobuf.Value
	25, // 30: proto.AddPermissionNodeRequest.expired_at:type_name -> google.protobuf.Timestamp
	25, // 31: proto.AddPermissionNodeRequest.affected_at:type_name -> google.protobuf.Timestamp
	11, // 32: proto.AddPermissionNodeResponse.node:type_name -> proto.PermissionNode
	12, // 33: proto.AddPermissionNodeToGroupRequest.group:type_name -> proto.PermissionGroup
	2,  // 34: proto.AddPermissionNodeToGroupRequest.type:type_name -> proto.PermissionNodeActorType
	28, // 35: proto.AddPermissionNodeToGroupRequest.value:type_name -> google.protobuf.Value
	25, // 36: proto.AddPermissionNodeToGroupRequest.expired_at:type_name -> google.protobuf.Timestamp
	25, // 37: proto.AddPermissionNodeToGroupRequest.affected_at:type_name -> google.protobuf.Timestamp
	11, // 38: proto.AddPermissionNodeToGroupResponse.node:type_name -> proto.PermissionNode
	2,  // 39: proto.RemovePermissionNodeRequest.type:type_name -> proto.PermissionNodeActorType
	12, // 40: proto.RemovePermissionNodeFromGroupRequest.group:type_name -> proto.PermissionGroup
	6,  // 41: proto.AuthService.Authenticate:input_type -> proto.AuthenticateRequest
	8,  // 42: proto.AuthService.ValidatePin:input_type -> proto.ValidatePinRequest
	9,  // 43: proto.AuthService.ValidateCaptcha:input_type -> proto.ValidateCaptchaRequest
	13, // 44: proto.PermissionService.HasPermission:input_type -> proto.HasPermissionRequest
	15, // 45: proto.PermissionService.GetPermission:input_type -> proto.GetPermissionRequest
	17, // 46: proto.PermissionService.AddPermissionNode:input_type -> proto.AddPermissionNodeRequest
	19, // 47: proto.PermissionService.AddPermissionNodeToGroup:input_type -> proto.AddPermissionNodeToGroupRequest
	21, // 48: proto.PermissionService.RemovePermissionNode:input_type -> proto.RemovePermissionNodeRequest
	23, // 49: proto.PermissionService.RemovePermissionNodeFromGroup:input_type -> proto.RemovePermissionNodeFromGroupRequest
	7,  // 50: proto.AuthService.Authenticate:output_type -> proto.AuthenticateResponse
	10, // 51: proto.AuthService.ValidatePin:output_type -> proto.ValidateResponse
	10, // 52: proto.AuthService.ValidateCaptcha:output_type -> proto.ValidateResponse
	14, // 53: proto.PermissionService.HasPermission:output_type -> proto.HasPermissionResponse
	16, // 54: proto.PermissionService.GetPermission:output_type -> proto.GetPermissionResponse
	18, // 55: proto.PermissionService.AddPermissionNode:output_type -> proto.AddPermissionNodeResponse
	20, // 56: proto.PermissionService.AddPermissionNodeToGroup:output_type -> proto.AddPermissionNodeToGroupResponse
	22, // 57: proto.PermissionService.RemovePermissionNode:output_type -> proto.RemovePermissionNodeResponse
	24, // 58: proto.PermissionService.RemovePermissionNodeFromGroup:output_type -> proto.RemovePermissionNodeFromGroupResponse
	50, // [50:59] is the sub-list for method output_type
	41, // [41:50] is the sub-list for method input_type
	41, // [41:41] is the sub-list for extension type_name
	41, // [41:41] is the sub-list for extension extendee
	0,  // [0:41] is the sub-list for field type_name
}

func init() { file_auth_proto_init() }
func file_auth_proto_init() {
	if File_auth_proto != nil {
		return
	}
	file_account_proto_init()
	file_auth_proto_msgTypes[0].OneofWrappers = []any{}
	file_auth_proto_msgTypes[3].OneofWrappers = []any{}
	file_auth_proto_msgTypes[4].OneofWrappers = []any{}
	file_auth_proto_msgTypes[10].OneofWrappers = []any{}
	file_auth_proto_msgTypes[12].OneofWrappers = []any{}
	file_auth_proto_msgTypes[14].OneofWrappers = []any{}
	file_auth_proto_msgTypes[16].OneofWrappers = []any{}
	file_auth_proto_msgTypes[18].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_auth_proto_rawDesc), len(file_auth_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_auth_proto_goTypes,
		DependencyIndexes: file_auth_proto_depIdxs,
		EnumInfos:         file_auth_proto_enumTypes,
		MessageInfos:      file_auth_proto_msgTypes,
	}.Build()
	File_auth_proto = out.File
	file_auth_proto_goTypes = nil
	file_auth_proto_depIdxs = nil
}
