// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: authapp.proto

package authapp

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

// RateLimit defines rate limiting for an endpoint.
type RateLimit struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Limit       int32                  `protobuf:"varint,1,opt,name=limit"`
	xxx_hidden_Window      *string                `protobuf:"bytes,2,opt,name=window"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*RateLimit) ProtoMessage() {}

func (x *RateLimit) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

func (x *RateLimit) GetLimit() int32 {
	if x != nil {
		return x.xxx_hidden_Limit
	}
	return 0
}

func (x *RateLimit) GetWindow() string {
	if x != nil {
		if x.xxx_hidden_Window != nil {
			return *x.xxx_hidden_Window
		}
		return ""
	}
	return ""
}

func (x *RateLimit) SetLimit(v int32) {
	x.xxx_hidden_Limit = v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 2)
}

func (x *RateLimit) SetWindow(v string) {
	x.xxx_hidden_Window = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 2)
}

func (x *RateLimit) HasLimit() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *RateLimit) HasWindow() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 1)
}

func (x *RateLimit) ClearLimit() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Limit = 0
}

func (x *RateLimit) ClearWindow() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1)
	x.xxx_hidden_Window = nil
}

type RateLimit_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Limit  *int32
	Window *string
}

func (b0 RateLimit_builder) Build() *RateLimit {
	m0 := &RateLimit{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Limit != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 2)
		x.xxx_hidden_Limit = *b.Limit
	}
	if b.Window != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 2)
		x.xxx_hidden_Window = b.Window
	}
	return m0
}

// Request message for generating a token.
type CreateTokenRequest struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Token       *string                `protobuf:"bytes,1,opt,name=token"`
	xxx_hidden_UserName    *string                `protobuf:"bytes,2,opt,name=user_name,json=userName"`
	xxx_hidden_Admin       bool                   `protobuf:"varint,3,opt,name=admin"`
	xxx_hidden_Duration    *string                `protobuf:"bytes,4,opt,name=duration"`
	xxx_hidden_Endpoints   map[string]*RateLimit  `protobuf:"bytes,5,rep,name=endpoints" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*CreateTokenRequest) ProtoMessage() {}

func (x *CreateTokenRequest) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

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

func (x *CreateTokenRequest) GetUserName() string {
	if x != nil {
		if x.xxx_hidden_UserName != nil {
			return *x.xxx_hidden_UserName
		}
		return ""
	}
	return ""
}

func (x *CreateTokenRequest) GetAdmin() bool {
	if x != nil {
		return x.xxx_hidden_Admin
	}
	return false
}

func (x *CreateTokenRequest) GetDuration() string {
	if x != nil {
		if x.xxx_hidden_Duration != nil {
			return *x.xxx_hidden_Duration
		}
		return ""
	}
	return ""
}

func (x *CreateTokenRequest) GetEndpoints() map[string]*RateLimit {
	if x != nil {
		return x.xxx_hidden_Endpoints
	}
	return nil
}

func (x *CreateTokenRequest) SetToken(v string) {
	x.xxx_hidden_Token = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 5)
}

func (x *CreateTokenRequest) SetUserName(v string) {
	x.xxx_hidden_UserName = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 5)
}

func (x *CreateTokenRequest) SetAdmin(v bool) {
	x.xxx_hidden_Admin = v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 5)
}

func (x *CreateTokenRequest) SetDuration(v string) {
	x.xxx_hidden_Duration = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 3, 5)
}

func (x *CreateTokenRequest) SetEndpoints(v map[string]*RateLimit) {
	x.xxx_hidden_Endpoints = v
}

func (x *CreateTokenRequest) HasToken() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *CreateTokenRequest) HasUserName() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 1)
}

func (x *CreateTokenRequest) HasAdmin() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 2)
}

func (x *CreateTokenRequest) HasDuration() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 3)
}

func (x *CreateTokenRequest) ClearToken() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Token = nil
}

func (x *CreateTokenRequest) ClearUserName() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1)
	x.xxx_hidden_UserName = nil
}

func (x *CreateTokenRequest) ClearAdmin() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 2)
	x.xxx_hidden_Admin = false
}

func (x *CreateTokenRequest) ClearDuration() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 3)
	x.xxx_hidden_Duration = nil
}

type CreateTokenRequest_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Token     *string
	UserName  *string
	Admin     *bool
	Duration  *string
	Endpoints map[string]*RateLimit
}

func (b0 CreateTokenRequest_builder) Build() *CreateTokenRequest {
	m0 := &CreateTokenRequest{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Token != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 5)
		x.xxx_hidden_Token = b.Token
	}
	if b.UserName != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 5)
		x.xxx_hidden_UserName = b.UserName
	}
	if b.Admin != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 5)
		x.xxx_hidden_Admin = *b.Admin
	}
	if b.Duration != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 3, 5)
		x.xxx_hidden_Duration = b.Duration
	}
	x.xxx_hidden_Endpoints = b.Endpoints
	return m0
}

// Response message for token generation.
type CreateTokenResponse struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Token       *string                `protobuf:"bytes,1,opt,name=token"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*CreateTokenResponse) ProtoMessage() {}

func (x *CreateTokenResponse) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

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

func (x *CreateTokenResponse) SetToken(v string) {
	x.xxx_hidden_Token = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 1)
}

func (x *CreateTokenResponse) HasToken() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *CreateTokenResponse) ClearToken() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Token = nil
}

type CreateTokenResponse_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Token *string
}

func (b0 CreateTokenResponse_builder) Build() *CreateTokenResponse {
	m0 := &CreateTokenResponse{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Token != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 1)
		x.xxx_hidden_Token = b.Token
	}
	return m0
}

// Request message for authentication.
type AuthenticateRequest struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Token       *string                `protobuf:"bytes,1,opt,name=token"`
	xxx_hidden_Admin       bool                   `protobuf:"varint,2,opt,name=admin"`
	xxx_hidden_Endpoint    *string                `protobuf:"bytes,3,opt,name=endpoint"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *AuthenticateRequest) Reset() {
	*x = AuthenticateRequest{}
	mi := &file_authapp_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_authapp_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)
}

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

func (x *AuthenticateRequest) GetAdmin() bool {
	if x != nil {
		return x.xxx_hidden_Admin
	}
	return false
}

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

func (x *AuthenticateRequest) SetToken(v string) {
	x.xxx_hidden_Token = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 3)
}

func (x *AuthenticateRequest) SetAdmin(v bool) {
	x.xxx_hidden_Admin = v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 3)
}

func (x *AuthenticateRequest) SetEndpoint(v string) {
	x.xxx_hidden_Endpoint = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 3)
}

func (x *AuthenticateRequest) HasToken() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *AuthenticateRequest) HasAdmin() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 1)
}

func (x *AuthenticateRequest) HasEndpoint() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 2)
}

func (x *AuthenticateRequest) ClearToken() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Token = nil
}

func (x *AuthenticateRequest) ClearAdmin() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1)
	x.xxx_hidden_Admin = false
}

func (x *AuthenticateRequest) ClearEndpoint() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 2)
	x.xxx_hidden_Endpoint = nil
}

type AuthenticateRequest_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Token    *string
	Admin    *bool
	Endpoint *string
}

func (b0 AuthenticateRequest_builder) Build() *AuthenticateRequest {
	m0 := &AuthenticateRequest{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Token != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 3)
		x.xxx_hidden_Token = b.Token
	}
	if b.Admin != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 3)
		x.xxx_hidden_Admin = *b.Admin
	}
	if b.Endpoint != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 3)
		x.xxx_hidden_Endpoint = b.Endpoint
	}
	return m0
}

// Response message for authentication.
type AuthenticateResponse struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Subject     *string                `protobuf:"bytes,1,opt,name=subject"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *AuthenticateResponse) Reset() {
	*x = AuthenticateResponse{}
	mi := &file_authapp_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_authapp_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)
}

func (x *AuthenticateResponse) GetSubject() string {
	if x != nil {
		if x.xxx_hidden_Subject != nil {
			return *x.xxx_hidden_Subject
		}
		return ""
	}
	return ""
}

func (x *AuthenticateResponse) SetSubject(v string) {
	x.xxx_hidden_Subject = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 1)
}

func (x *AuthenticateResponse) HasSubject() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *AuthenticateResponse) ClearSubject() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Subject = nil
}

type AuthenticateResponse_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Subject *string
}

func (b0 AuthenticateResponse_builder) Build() *AuthenticateResponse {
	m0 := &AuthenticateResponse{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Subject != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 1)
		x.xxx_hidden_Subject = b.Subject
	}
	return m0
}

// Request message for listing keys.
type ListKeysRequest struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListKeysRequest) ProtoMessage() {}

func (x *ListKeysRequest) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

type ListKeysRequest_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

}

func (b0 ListKeysRequest_builder) Build() *ListKeysRequest {
	m0 := &ListKeysRequest{}
	b, x := &b0, m0
	_, _ = b, x
	return m0
}

// Response message for listing keys.
type ListKeysResponse struct {
	state           protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Keys *[]*Key                `protobuf:"bytes,1,rep,name=keys"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*ListKeysResponse) ProtoMessage() {}

func (x *ListKeysResponse) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

func (x *ListKeysResponse) GetKeys() []*Key {
	if x != nil {
		if x.xxx_hidden_Keys != nil {
			return *x.xxx_hidden_Keys
		}
	}
	return nil
}

func (x *ListKeysResponse) SetKeys(v []*Key) {
	x.xxx_hidden_Keys = &v
}

type ListKeysResponse_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Keys []*Key
}

func (b0 ListKeysResponse_builder) Build() *ListKeysResponse {
	m0 := &ListKeysResponse{}
	b, x := &b0, m0
	_, _ = b, x
	x.xxx_hidden_Keys = &b.Keys
	return m0
}

// Key represents a key in the system.
type Key struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Id          *string                `protobuf:"bytes,1,opt,name=id"`
	xxx_hidden_Created     *string                `protobuf:"bytes,2,opt,name=created"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*Key) ProtoMessage() {}

func (x *Key) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

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

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

func (x *Key) SetId(v string) {
	x.xxx_hidden_Id = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 2)
}

func (x *Key) SetCreated(v string) {
	x.xxx_hidden_Created = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 2)
}

func (x *Key) HasId() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *Key) HasCreated() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 1)
}

func (x *Key) ClearId() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_Id = nil
}

func (x *Key) ClearCreated() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1)
	x.xxx_hidden_Created = nil
}

type Key_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Id      *string
	Created *string
}

func (b0 Key_builder) Build() *Key {
	m0 := &Key{}
	b, x := &b0, m0
	_, _ = b, x
	if b.Id != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 2)
		x.xxx_hidden_Id = b.Id
	}
	if b.Created != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 2)
		x.xxx_hidden_Created = b.Created
	}
	return m0
}

// Request message for adding a key.
type AddKeyRequest struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AddKeyRequest) ProtoMessage() {}

func (x *AddKeyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

type AddKeyRequest_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

}

func (b0 AddKeyRequest_builder) Build() *AddKeyRequest {
	m0 := &AddKeyRequest{}
	b, x := &b0, m0
	_, _ = b, x
	return m0
}

// Response message for adding a key.
type AddKeyResponse struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AddKeyResponse) ProtoMessage() {}

func (x *AddKeyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

type AddKeyResponse_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

}

func (b0 AddKeyResponse_builder) Build() *AddKeyResponse {
	m0 := &AddKeyResponse{}
	b, x := &b0, m0
	_, _ = b, x
	return m0
}

// Request message for removing a key.
type RemoveKeyRequest struct {
	state                  protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_KeyId       *string                `protobuf:"bytes,1,opt,name=key_id,json=keyId"`
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*RemoveKeyRequest) ProtoMessage() {}

func (x *RemoveKeyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

func (x *RemoveKeyRequest) GetKeyId() string {
	if x != nil {
		if x.xxx_hidden_KeyId != nil {
			return *x.xxx_hidden_KeyId
		}
		return ""
	}
	return ""
}

func (x *RemoveKeyRequest) SetKeyId(v string) {
	x.xxx_hidden_KeyId = &v
	protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 1)
}

func (x *RemoveKeyRequest) HasKeyId() bool {
	if x == nil {
		return false
	}
	return protoimpl.X.Present(&(x.XXX_presence[0]), 0)
}

func (x *RemoveKeyRequest) ClearKeyId() {
	protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0)
	x.xxx_hidden_KeyId = nil
}

type RemoveKeyRequest_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	KeyId *string
}

func (b0 RemoveKeyRequest_builder) Build() *RemoveKeyRequest {
	m0 := &RemoveKeyRequest{}
	b, x := &b0, m0
	_, _ = b, x
	if b.KeyId != nil {
		protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 1)
		x.xxx_hidden_KeyId = b.KeyId
	}
	return m0
}

// Response message for removing a key.
type RemoveKeyResponse struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RemoveKeyResponse) ProtoMessage() {}

func (x *RemoveKeyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_authapp_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)
}

type RemoveKeyResponse_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

}

func (b0 RemoveKeyResponse_builder) Build() *RemoveKeyResponse {
	m0 := &RemoveKeyResponse{}
	b, x := &b0, m0
	_, _ = b, x
	return m0
}

var File_authapp_proto protoreflect.FileDescriptor

const file_authapp_proto_rawDesc = "" +
	"\n" +
	"\rauthapp.proto\x12\aauthapp\"9\n" +
	"\tRateLimit\x12\x14\n" +
	"\x05limit\x18\x01 \x01(\x05R\x05limit\x12\x16\n" +
	"\x06window\x18\x02 \x01(\tR\x06window\"\x95\x02\n" +
	"\x12CreateTokenRequest\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\x12\x1b\n" +
	"\tuser_name\x18\x02 \x01(\tR\buserName\x12\x14\n" +
	"\x05admin\x18\x03 \x01(\bR\x05admin\x12\x1a\n" +
	"\bduration\x18\x04 \x01(\tR\bduration\x12H\n" +
	"\tendpoints\x18\x05 \x03(\v2*.authapp.CreateTokenRequest.EndpointsEntryR\tendpoints\x1aP\n" +
	"\x0eEndpointsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12(\n" +
	"\x05value\x18\x02 \x01(\v2\x12.authapp.RateLimitR\x05value:\x028\x01\"+\n" +
	"\x13CreateTokenResponse\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\"]\n" +
	"\x13AuthenticateRequest\x12\x14\n" +
	"\x05token\x18\x01 \x01(\tR\x05token\x12\x14\n" +
	"\x05admin\x18\x02 \x01(\bR\x05admin\x12\x1a\n" +
	"\bendpoint\x18\x03 \x01(\tR\bendpoint\"0\n" +
	"\x14AuthenticateResponse\x12\x18\n" +
	"\asubject\x18\x01 \x01(\tR\asubject\"\x11\n" +
	"\x0fListKeysRequest\"4\n" +
	"\x10ListKeysResponse\x12 \n" +
	"\x04keys\x18\x01 \x03(\v2\f.authapp.KeyR\x04keys\"/\n" +
	"\x03Key\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" +
	"\acreated\x18\x02 \x01(\tR\acreated\"\x0f\n" +
	"\rAddKeyRequest\"\x10\n" +
	"\x0eAddKeyResponse\")\n" +
	"\x10RemoveKeyRequest\x12\x15\n" +
	"\x06key_id\x18\x01 \x01(\tR\x05keyId\"\x13\n" +
	"\x11RemoveKeyResponse2\xdd\x02\n" +
	"\x04Auth\x12H\n" +
	"\vCreateToken\x12\x1b.authapp.CreateTokenRequest\x1a\x1c.authapp.CreateTokenResponse\x12K\n" +
	"\fAuthenticate\x12\x1c.authapp.AuthenticateRequest\x1a\x1d.authapp.AuthenticateResponse\x12?\n" +
	"\bListKeys\x12\x18.authapp.ListKeysRequest\x1a\x19.authapp.ListKeysResponse\x129\n" +
	"\x06AddKey\x12\x16.authapp.AddKeyRequest\x1a\x17.authapp.AddKeyResponse\x12B\n" +
	"\tRemoveKey\x12\x19.authapp.RemoveKeyRequest\x1a\x1a.authapp.RemoveKeyResponseB:Z8github.com/ardanlabs/kronk/cmd/server/app/domain/authappb\beditionsp\xe9\a"

var file_authapp_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_authapp_proto_goTypes = []any{
	(*RateLimit)(nil),            // 0: authapp.RateLimit
	(*CreateTokenRequest)(nil),   // 1: authapp.CreateTokenRequest
	(*CreateTokenResponse)(nil),  // 2: authapp.CreateTokenResponse
	(*AuthenticateRequest)(nil),  // 3: authapp.AuthenticateRequest
	(*AuthenticateResponse)(nil), // 4: authapp.AuthenticateResponse
	(*ListKeysRequest)(nil),      // 5: authapp.ListKeysRequest
	(*ListKeysResponse)(nil),     // 6: authapp.ListKeysResponse
	(*Key)(nil),                  // 7: authapp.Key
	(*AddKeyRequest)(nil),        // 8: authapp.AddKeyRequest
	(*AddKeyResponse)(nil),       // 9: authapp.AddKeyResponse
	(*RemoveKeyRequest)(nil),     // 10: authapp.RemoveKeyRequest
	(*RemoveKeyResponse)(nil),    // 11: authapp.RemoveKeyResponse
	nil,                          // 12: authapp.CreateTokenRequest.EndpointsEntry
}
var file_authapp_proto_depIdxs = []int32{
	12, // 0: authapp.CreateTokenRequest.endpoints:type_name -> authapp.CreateTokenRequest.EndpointsEntry
	7,  // 1: authapp.ListKeysResponse.keys:type_name -> authapp.Key
	0,  // 2: authapp.CreateTokenRequest.EndpointsEntry.value:type_name -> authapp.RateLimit
	1,  // 3: authapp.Auth.CreateToken:input_type -> authapp.CreateTokenRequest
	3,  // 4: authapp.Auth.Authenticate:input_type -> authapp.AuthenticateRequest
	5,  // 5: authapp.Auth.ListKeys:input_type -> authapp.ListKeysRequest
	8,  // 6: authapp.Auth.AddKey:input_type -> authapp.AddKeyRequest
	10, // 7: authapp.Auth.RemoveKey:input_type -> authapp.RemoveKeyRequest
	2,  // 8: authapp.Auth.CreateToken:output_type -> authapp.CreateTokenResponse
	4,  // 9: authapp.Auth.Authenticate:output_type -> authapp.AuthenticateResponse
	6,  // 10: authapp.Auth.ListKeys:output_type -> authapp.ListKeysResponse
	9,  // 11: authapp.Auth.AddKey:output_type -> authapp.AddKeyResponse
	11, // 12: authapp.Auth.RemoveKey:output_type -> authapp.RemoveKeyResponse
	8,  // [8:13] is the sub-list for method output_type
	3,  // [3:8] is the sub-list for method input_type
	3,  // [3:3] is the sub-list for extension type_name
	3,  // [3:3] is the sub-list for extension extendee
	0,  // [0:3] is the sub-list for field type_name
}

func init() { file_authapp_proto_init() }
func file_authapp_proto_init() {
	if File_authapp_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_authapp_proto_rawDesc), len(file_authapp_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   13,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_authapp_proto_goTypes,
		DependencyIndexes: file_authapp_proto_depIdxs,
		MessageInfos:      file_authapp_proto_msgTypes,
	}.Build()
	File_authapp_proto = out.File
	file_authapp_proto_goTypes = nil
	file_authapp_proto_depIdxs = nil
}
