// MeService -- the caller-bound surface for self-management of sessions
// and API keys -- plus the admin-side ResolveApiKey used by the auth
// middleware to map an inbound API key to its owning Identity.
//
// Milestone A (Login / Logout / GetMe) and milestone B (IssueMyKey /
// ListMyKeys / RevokeMyKey / ResolveApiKey) RPCs land here. Sessions
// listing, JWK registration, and the broader IdentityService admin
// surface (BootstrapIdentity, GetInternalIdentity, ListIdentities) are
// deferred to milestone C.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        (unknown)
// source: tars/identity/v1/identity_service.proto

package identityv1

import (
	_ "github.com/tetrateio/agentrouter-go/genapi/api/tars/auth/v1"
	_ "github.com/tetrateio/agentrouter-go/genapi/api/tars/cli/v1"
	v1 "github.com/tetrateio/agentrouter-go/genapi/api/tars/common/v1"
	_ "github.com/tetrateio/agentrouter-go/genapi/api/tars/docs/v1"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

type LoginRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Operator's OIDC issuer alias (allows multi-IdP operators to select).
	// Empty selects the default issuer for the operator domain.
	Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
	// Where the IdP should redirect after authentication. For the CLI this
	// is a localhost loopback URL bound to a free port.
	RedirectUri string `protobuf:"bytes,2,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"`
	// PKCE code challenge generated by the client.
	CodeChallenge string `protobuf:"bytes,3,opt,name=code_challenge,json=codeChallenge,proto3" json:"code_challenge,omitempty"`
	// PKCE code-challenge method. Only S256 is accepted.
	CodeChallengeMethod string `protobuf:"bytes,4,opt,name=code_challenge_method,json=codeChallengeMethod,proto3" json:"code_challenge_method,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*LoginRequest) ProtoMessage() {}

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

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

func (x *LoginRequest) GetRedirectUri() string {
	if x != nil {
		return x.RedirectUri
	}
	return ""
}

func (x *LoginRequest) GetCodeChallenge() string {
	if x != nil {
		return x.CodeChallenge
	}
	return ""
}

func (x *LoginRequest) GetCodeChallengeMethod() string {
	if x != nil {
		return x.CodeChallengeMethod
	}
	return ""
}

type LoginResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// URL the client follows to the upstream IdP.
	AuthorizationUrl string `protobuf:"bytes,1,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"`
	// Opaque state value bound to the request. Echoed by the IdP and
	// verified by the /v1/auth/callback handler.
	State         string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LoginResponse) ProtoMessage() {}

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

func (x *LoginResponse) GetAuthorizationUrl() string {
	if x != nil {
		return x.AuthorizationUrl
	}
	return ""
}

func (x *LoginResponse) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

type LogoutRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LogoutRequest) ProtoMessage() {}

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

type LogoutResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LogoutResponse) ProtoMessage() {}

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

type GetMeRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetMeRequest) ProtoMessage() {}

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

type GetMeResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Full identity record for the authenticated caller.
	Identity      *Identity `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetMeResponse) ProtoMessage() {}

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

func (x *GetMeResponse) GetIdentity() *Identity {
	if x != nil {
		return x.Identity
	}
	return nil
}

type IssueMyKeyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Human-friendly label for the key. Surfaced in `ia keys list` output.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// What the key is authorized to do. Unspecified defaults to PROMPT.
	Type ApiKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=tars.identity.v1.ApiKeyType" json:"type,omitempty"`
	// Optional caller-supplied idempotency key.
	IdempotencyKey string `protobuf:"bytes,99,opt,name=idempotency_key,json=idempotencyKey,proto3" json:"idempotency_key,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*IssueMyKeyRequest) ProtoMessage() {}

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

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

func (x *IssueMyKeyRequest) GetType() ApiKeyType {
	if x != nil {
		return x.Type
	}
	return ApiKeyType_API_KEY_TYPE_UNSPECIFIED
}

func (x *IssueMyKeyRequest) GetIdempotencyKey() string {
	if x != nil {
		return x.IdempotencyKey
	}
	return ""
}

type IssueMyKeyResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Metadata for the newly issued key (id, name, prefix, type, state).
	Key *ApiKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// Plaintext API key value. Returned exactly once at issue time.
	Secret        string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IssueMyKeyResponse) ProtoMessage() {}

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

func (x *IssueMyKeyResponse) GetKey() *ApiKey {
	if x != nil {
		return x.Key
	}
	return nil
}

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

type ListMyKeysRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Pagination cursor and page size for the listing.
	Page          *v1.PageRequest `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListMyKeysRequest) ProtoMessage() {}

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

func (x *ListMyKeysRequest) GetPage() *v1.PageRequest {
	if x != nil {
		return x.Page
	}
	return nil
}

type ListMyKeysResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The caller's API keys (metadata only; never the plaintext secret).
	Keys []*ApiKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
	// Pagination state; carries the next-page cursor when more remain.
	Page          *v1.PageResponse `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListMyKeysResponse) ProtoMessage() {}

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

func (x *ListMyKeysResponse) GetKeys() []*ApiKey {
	if x != nil {
		return x.Keys
	}
	return nil
}

func (x *ListMyKeysResponse) GetPage() *v1.PageResponse {
	if x != nil {
		return x.Page
	}
	return nil
}

type RevokeMyKeyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Id (key_<ulid>) of the caller-owned key to revoke.
	KeyId         string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RevokeMyKeyRequest) ProtoMessage() {}

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

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

type RevokeMyKeyResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RevokeMyKeyResponse) ProtoMessage() {}

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

type ResolveApiKeyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Plaintext API key value (sent over mTLS only).
	Key           string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResolveApiKeyRequest) ProtoMessage() {}

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

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

type ResolveApiKeyResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Identity that owns the resolved key.
	Identity *Identity `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
	// Metadata for the resolved key (id, type, state, owning identity).
	Key           *ApiKey `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResolveApiKeyResponse) ProtoMessage() {}

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

func (x *ResolveApiKeyResponse) GetIdentity() *Identity {
	if x != nil {
		return x.Identity
	}
	return nil
}

func (x *ResolveApiKeyResponse) GetKey() *ApiKey {
	if x != nil {
		return x.Key
	}
	return nil
}

var File_tars_identity_v1_identity_service_proto protoreflect.FileDescriptor

const file_tars_identity_v1_identity_service_proto_rawDesc = "" +
	"\n" +
	"'tars/identity/v1/identity_service.proto\x12\x10tars.identity.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1ftars/auth/v1/auth_options.proto\x1a\x15tars/cli/v1/cli.proto\x1a\x1atars/common/v1/types.proto\x1a\x17tars/docs/v1/docs.proto\x1a\x1etars/identity/v1/api_key.proto\x1a\x1ftars/identity/v1/identity.proto\"\xb3\x01\n" +
	"\fLoginRequest\x12\x16\n" +
	"\x06issuer\x18\x01 \x01(\tR\x06issuer\x12&\n" +
	"\fredirect_uri\x18\x02 \x01(\tB\x03\xe0A\x02R\vredirectUri\x12*\n" +
	"\x0ecode_challenge\x18\x03 \x01(\tB\x03\xe0A\x02R\rcodeChallenge\x127\n" +
	"\x15code_challenge_method\x18\x04 \x01(\tB\x03\xe0A\x02R\x13codeChallengeMethod\"\\\n" +
	"\rLoginResponse\x120\n" +
	"\x11authorization_url\x18\x01 \x01(\tB\x03\xe0A\x03R\x10authorizationUrl\x12\x19\n" +
	"\x05state\x18\x02 \x01(\tB\x03\xe0A\x03R\x05state\"\x0f\n" +
	"\rLogoutRequest\"\x10\n" +
	"\x0eLogoutResponse\"\x0e\n" +
	"\fGetMeRequest\"G\n" +
	"\rGetMeResponse\x126\n" +
	"\bidentity\x18\x01 \x01(\v2\x1a.tars.identity.v1.IdentityR\bidentity\"\x87\x01\n" +
	"\x11IssueMyKeyRequest\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x02R\x04name\x120\n" +
	"\x04type\x18\x02 \x01(\x0e2\x1c.tars.identity.v1.ApiKeyTypeR\x04type\x12'\n" +
	"\x0fidempotency_key\x18c \x01(\tR\x0eidempotencyKey\"]\n" +
	"\x12IssueMyKeyResponse\x12*\n" +
	"\x03key\x18\x01 \x01(\v2\x18.tars.identity.v1.ApiKeyR\x03key\x12\x1b\n" +
	"\x06secret\x18\x02 \x01(\tB\x03\xe0A\x03R\x06secret\"D\n" +
	"\x11ListMyKeysRequest\x12/\n" +
	"\x04page\x18\x01 \x01(\v2\x1b.tars.common.v1.PageRequestR\x04page\"t\n" +
	"\x12ListMyKeysResponse\x12,\n" +
	"\x04keys\x18\x01 \x03(\v2\x18.tars.identity.v1.ApiKeyR\x04keys\x120\n" +
	"\x04page\x18\x02 \x01(\v2\x1c.tars.common.v1.PageResponseR\x04page\"0\n" +
	"\x12RevokeMyKeyRequest\x12\x1a\n" +
	"\x06key_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05keyId\"\x15\n" +
	"\x13RevokeMyKeyResponse\"-\n" +
	"\x14ResolveApiKeyRequest\x12\x15\n" +
	"\x03key\x18\x01 \x01(\tB\x03\xe0A\x02R\x03key\"{\n" +
	"\x15ResolveApiKeyResponse\x126\n" +
	"\bidentity\x18\x01 \x01(\v2\x1a.tars.identity.v1.IdentityR\bidentity\x12*\n" +
	"\x03key\x18\x02 \x01(\v2\x18.tars.identity.v1.ApiKeyR\x03key2\xd0\a\n" +
	"\tMeService\x12\x8b\x01\n" +
	"\x05Login\x12\x1e.tars.identity.v1.LoginRequest\x1a\x1f.tars.identity.v1.LoginResponse\"A\x92\xb5\x18\x02(\x01\xa2\xb5\x18\x13Initiate OIDC login\xaa\xb5\x18\aAccount\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/auth/login\x12\x90\x01\n" +
	"\x06Logout\x12\x1f.tars.identity.v1.LogoutRequest\x1a .tars.identity.v1.LogoutResponse\"C\x8a\xb5\x18\x03\n" +
	"\x01\x03\x92\xb5\x18\b:\x06logout\xa2\xb5\x18\aLog out\xaa\xb5\x18\aAccount\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/auth/logout\x12\x92\x01\n" +
	"\x05GetMe\x12\x1e.tars.identity.v1.GetMeRequest\x1a\x1f.tars.identity.v1.GetMeResponse\"H\x8a\xb5\x18\x04\n" +
	"\x02\x03\x01\x92\xb5\x18\b:\x06whoami\xa2\xb5\x18\x14Get current identity\xaa\xb5\x18\aAccount\x82\xd3\xe4\x93\x02\b\x12\x06/v1/me\x90\x02\x01\x12\xa8\x01\n" +
	"\n" +
	"IssueMyKey\x12#.tars.identity.v1.IssueMyKeyRequest\x1a$.tars.identity.v1.IssueMyKeyResponse\"O\x8a\xb5\x18\x03\n" +
	"\x01\x03\x92\xb5\x18\x0e:\x04keys:\x06create\xa2\xb5\x18\x10Issue an API key\xaa\xb5\x18\bAPI Keys\x82\xd3\xe4\x93\x02\x10:\x01*\"\v/v1/me/keys\x12\xa4\x01\n" +
	"\n" +
	"ListMyKeys\x12#.tars.identity.v1.ListMyKeysRequest\x1a$.tars.identity.v1.ListMyKeysResponse\"K\x8a\xb5\x18\x04\n" +
	"\x02\x03\x01\x92\xb5\x18\f:\x04keys:\x04list\xa2\xb5\x18\rList API keys\xaa\xb5\x18\bAPI Keys\x82\xd3\xe4\x93\x02\r\x12\v/v1/me/keys\x90\x02\x01\x12\xba\x01\n" +
	"\vRevokeMyKey\x12$.tars.identity.v1.RevokeMyKeyRequest\x1a%.tars.identity.v1.RevokeMyKeyResponse\"^\x8a\xb5\x18\x03\n" +
	"\x01\x03\x92\xb5\x18\x16\x1a\x06key_id:\x04keys:\x06revoke\xa2\xb5\x18\x11Revoke an API key\xaa\xb5\x18\bAPI Keys\x82\xd3\xe4\x93\x02\x16*\x14/v1/me/keys/{key_id}2\x8f\x01\n" +
	"\x0fIdentityService\x12|\n" +
	"\rResolveApiKey\x12&.tars.identity.v1.ResolveApiKeyRequest\x1a'.tars.identity.v1.ResolveApiKeyResponse\"\x1a\x8a\xb5\x18\r\n" +
	"\x01\x02\x12\binternal\x92\xb5\x18\x02(\x01\x90\x02\x01B\xcb\x01\n" +
	"\x14com.tars.identity.v1B\x14IdentityServiceProtoP\x01Z;github.com/tetrateio/fraser/api/tars/identity/v1;identityv1\xa2\x02\x03TIX\xaa\x02\x10Tars.Identity.V1\xca\x02\x10Tars\\Identity\\V1\xe2\x02\x1cTars\\Identity\\V1\\GPBMetadata\xea\x02\x12Tars::Identity::V1b\x06proto3"

var (
	file_tars_identity_v1_identity_service_proto_rawDescOnce sync.Once
	file_tars_identity_v1_identity_service_proto_rawDescData []byte
)

func file_tars_identity_v1_identity_service_proto_rawDescGZIP() []byte {
	file_tars_identity_v1_identity_service_proto_rawDescOnce.Do(func() {
		file_tars_identity_v1_identity_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_tars_identity_v1_identity_service_proto_rawDesc), len(file_tars_identity_v1_identity_service_proto_rawDesc)))
	})
	return file_tars_identity_v1_identity_service_proto_rawDescData
}

var file_tars_identity_v1_identity_service_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_tars_identity_v1_identity_service_proto_goTypes = []any{
	(*LoginRequest)(nil),          // 0: tars.identity.v1.LoginRequest
	(*LoginResponse)(nil),         // 1: tars.identity.v1.LoginResponse
	(*LogoutRequest)(nil),         // 2: tars.identity.v1.LogoutRequest
	(*LogoutResponse)(nil),        // 3: tars.identity.v1.LogoutResponse
	(*GetMeRequest)(nil),          // 4: tars.identity.v1.GetMeRequest
	(*GetMeResponse)(nil),         // 5: tars.identity.v1.GetMeResponse
	(*IssueMyKeyRequest)(nil),     // 6: tars.identity.v1.IssueMyKeyRequest
	(*IssueMyKeyResponse)(nil),    // 7: tars.identity.v1.IssueMyKeyResponse
	(*ListMyKeysRequest)(nil),     // 8: tars.identity.v1.ListMyKeysRequest
	(*ListMyKeysResponse)(nil),    // 9: tars.identity.v1.ListMyKeysResponse
	(*RevokeMyKeyRequest)(nil),    // 10: tars.identity.v1.RevokeMyKeyRequest
	(*RevokeMyKeyResponse)(nil),   // 11: tars.identity.v1.RevokeMyKeyResponse
	(*ResolveApiKeyRequest)(nil),  // 12: tars.identity.v1.ResolveApiKeyRequest
	(*ResolveApiKeyResponse)(nil), // 13: tars.identity.v1.ResolveApiKeyResponse
	(*Identity)(nil),              // 14: tars.identity.v1.Identity
	(ApiKeyType)(0),               // 15: tars.identity.v1.ApiKeyType
	(*ApiKey)(nil),                // 16: tars.identity.v1.ApiKey
	(*v1.PageRequest)(nil),        // 17: tars.common.v1.PageRequest
	(*v1.PageResponse)(nil),       // 18: tars.common.v1.PageResponse
}
var file_tars_identity_v1_identity_service_proto_depIdxs = []int32{
	14, // 0: tars.identity.v1.GetMeResponse.identity:type_name -> tars.identity.v1.Identity
	15, // 1: tars.identity.v1.IssueMyKeyRequest.type:type_name -> tars.identity.v1.ApiKeyType
	16, // 2: tars.identity.v1.IssueMyKeyResponse.key:type_name -> tars.identity.v1.ApiKey
	17, // 3: tars.identity.v1.ListMyKeysRequest.page:type_name -> tars.common.v1.PageRequest
	16, // 4: tars.identity.v1.ListMyKeysResponse.keys:type_name -> tars.identity.v1.ApiKey
	18, // 5: tars.identity.v1.ListMyKeysResponse.page:type_name -> tars.common.v1.PageResponse
	14, // 6: tars.identity.v1.ResolveApiKeyResponse.identity:type_name -> tars.identity.v1.Identity
	16, // 7: tars.identity.v1.ResolveApiKeyResponse.key:type_name -> tars.identity.v1.ApiKey
	0,  // 8: tars.identity.v1.MeService.Login:input_type -> tars.identity.v1.LoginRequest
	2,  // 9: tars.identity.v1.MeService.Logout:input_type -> tars.identity.v1.LogoutRequest
	4,  // 10: tars.identity.v1.MeService.GetMe:input_type -> tars.identity.v1.GetMeRequest
	6,  // 11: tars.identity.v1.MeService.IssueMyKey:input_type -> tars.identity.v1.IssueMyKeyRequest
	8,  // 12: tars.identity.v1.MeService.ListMyKeys:input_type -> tars.identity.v1.ListMyKeysRequest
	10, // 13: tars.identity.v1.MeService.RevokeMyKey:input_type -> tars.identity.v1.RevokeMyKeyRequest
	12, // 14: tars.identity.v1.IdentityService.ResolveApiKey:input_type -> tars.identity.v1.ResolveApiKeyRequest
	1,  // 15: tars.identity.v1.MeService.Login:output_type -> tars.identity.v1.LoginResponse
	3,  // 16: tars.identity.v1.MeService.Logout:output_type -> tars.identity.v1.LogoutResponse
	5,  // 17: tars.identity.v1.MeService.GetMe:output_type -> tars.identity.v1.GetMeResponse
	7,  // 18: tars.identity.v1.MeService.IssueMyKey:output_type -> tars.identity.v1.IssueMyKeyResponse
	9,  // 19: tars.identity.v1.MeService.ListMyKeys:output_type -> tars.identity.v1.ListMyKeysResponse
	11, // 20: tars.identity.v1.MeService.RevokeMyKey:output_type -> tars.identity.v1.RevokeMyKeyResponse
	13, // 21: tars.identity.v1.IdentityService.ResolveApiKey:output_type -> tars.identity.v1.ResolveApiKeyResponse
	15, // [15:22] is the sub-list for method output_type
	8,  // [8:15] is the sub-list for method input_type
	8,  // [8:8] is the sub-list for extension type_name
	8,  // [8:8] is the sub-list for extension extendee
	0,  // [0:8] is the sub-list for field type_name
}

func init() { file_tars_identity_v1_identity_service_proto_init() }
func file_tars_identity_v1_identity_service_proto_init() {
	if File_tars_identity_v1_identity_service_proto != nil {
		return
	}
	file_tars_identity_v1_api_key_proto_init()
	file_tars_identity_v1_identity_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_tars_identity_v1_identity_service_proto_rawDesc), len(file_tars_identity_v1_identity_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   14,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_tars_identity_v1_identity_service_proto_goTypes,
		DependencyIndexes: file_tars_identity_v1_identity_service_proto_depIdxs,
		MessageInfos:      file_tars_identity_v1_identity_service_proto_msgTypes,
	}.Build()
	File_tars_identity_v1_identity_service_proto = out.File
	file_tars_identity_v1_identity_service_proto_goTypes = nil
	file_tars_identity_v1_identity_service_proto_depIdxs = nil
}
