// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.31.1
// source: omni/specs/auth.proto

package specs

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	_ "github.com/siderolabs/talos/pkg/machinery/api/machine"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)

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 PublicKeySpec_Type int32

const (
	PublicKeySpec_UNKNOWN PublicKeySpec_Type = 0
	PublicKeySpec_PGP     PublicKeySpec_Type = 1
	PublicKeySpec_PLAIN   PublicKeySpec_Type = 2
)

// Enum value maps for PublicKeySpec_Type.
var (
	PublicKeySpec_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "PGP",
		2: "PLAIN",
	}
	PublicKeySpec_Type_value = map[string]int32{
		"UNKNOWN": 0,
		"PGP":     1,
		"PLAIN":   2,
	}
)

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

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

func (PublicKeySpec_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_omni_specs_auth_proto_enumTypes[0].Descriptor()
}

func (PublicKeySpec_Type) Type() protoreflect.EnumType {
	return &file_omni_specs_auth_proto_enumTypes[0]
}

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

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

// AuthConfigSpec describes the authentication configuration.
type AuthConfigSpec struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Auth0         *AuthConfigSpec_Auth0    `protobuf:"bytes,1,opt,name=auth0,proto3" json:"auth0,omitempty"`
	Webauthn      *AuthConfigSpec_Webauthn `protobuf:"bytes,2,opt,name=webauthn,proto3" json:"webauthn,omitempty"`
	Suspended     bool                     `protobuf:"varint,3,opt,name=suspended,proto3" json:"suspended,omitempty"`
	Saml          *AuthConfigSpec_SAML     `protobuf:"bytes,4,opt,name=saml,proto3" json:"saml,omitempty"`
	Oidc          *AuthConfigSpec_OIDC     `protobuf:"bytes,5,opt,name=oidc,proto3" json:"oidc,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthConfigSpec) ProtoMessage() {}

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

func (x *AuthConfigSpec) GetAuth0() *AuthConfigSpec_Auth0 {
	if x != nil {
		return x.Auth0
	}
	return nil
}

func (x *AuthConfigSpec) GetWebauthn() *AuthConfigSpec_Webauthn {
	if x != nil {
		return x.Webauthn
	}
	return nil
}

func (x *AuthConfigSpec) GetSuspended() bool {
	if x != nil {
		return x.Suspended
	}
	return false
}

func (x *AuthConfigSpec) GetSaml() *AuthConfigSpec_SAML {
	if x != nil {
		return x.Saml
	}
	return nil
}

func (x *AuthConfigSpec) GetOidc() *AuthConfigSpec_OIDC {
	if x != nil {
		return x.Oidc
	}
	return nil
}

// SAMLAssertionSpec describes SAML assertion.
type SAMLAssertionSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Data keeps JSON encoded SAML assertion.
	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	// Email is the identity that was read from the assertion.
	Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
	// Used marks SAML assertion as used.
	Used          bool `protobuf:"varint,3,opt,name=used,proto3" json:"used,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SAMLAssertionSpec) ProtoMessage() {}

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

func (x *SAMLAssertionSpec) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *SAMLAssertionSpec) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *SAMLAssertionSpec) GetUsed() bool {
	if x != nil {
		return x.Used
	}
	return false
}

// UserSpec describes a user.
type UserSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Scopes are deprecated, use roles instead.
	//
	// Deprecated: will be removed once all environments are migrated to use roles.
	// TODO: remove after all environments are migrated to use roles.
	Scopes        []string `protobuf:"bytes,2,rep,name=scopes,proto3" json:"scopes,omitempty"`
	Role          string   `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UserSpec) ProtoMessage() {}

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

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

func (x *UserSpec) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

// IdentitySpec describes a user identity.
type IdentitySpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        string                 `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IdentitySpec) ProtoMessage() {}

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

func (x *IdentitySpec) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

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

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

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

func (*Identity) ProtoMessage() {}

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

func (x *Identity) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

// PublicKeySpec describes a user or service account public key.
type PublicKeySpec struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	PublicKey []byte                 `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// Scopes are deprecated, use roles instead.
	//
	// Deprecated: will be removed once all environments are migrated to use roles.
	// TODO: remove after all environments are migrated to use roles.
	Scopes        []string               `protobuf:"bytes,2,rep,name=scopes,proto3" json:"scopes,omitempty"`
	Expiration    *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expiration,proto3" json:"expiration,omitempty"`
	Confirmed     bool                   `protobuf:"varint,4,opt,name=confirmed,proto3" json:"confirmed,omitempty"`
	Identity      *Identity              `protobuf:"bytes,5,opt,name=identity,proto3" json:"identity,omitempty"`
	Role          string                 `protobuf:"bytes,6,opt,name=role,proto3" json:"role,omitempty"`
	Type          PublicKeySpec_Type     `protobuf:"varint,7,opt,name=type,proto3,enum=specs.PublicKeySpec_Type" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PublicKeySpec) ProtoMessage() {}

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

func (x *PublicKeySpec) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

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

func (x *PublicKeySpec) GetExpiration() *timestamppb.Timestamp {
	if x != nil {
		return x.Expiration
	}
	return nil
}

func (x *PublicKeySpec) GetConfirmed() bool {
	if x != nil {
		return x.Confirmed
	}
	return false
}

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

func (x *PublicKeySpec) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (x *PublicKeySpec) GetType() PublicKeySpec_Type {
	if x != nil {
		return x.Type
	}
	return PublicKeySpec_UNKNOWN
}

// AccessPolicyUserGroup describes a user group in the ACLs context.
type AccessPolicyUserGroup struct {
	state         protoimpl.MessageState        `protogen:"open.v1"`
	Users         []*AccessPolicyUserGroup_User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessPolicyUserGroup) ProtoMessage() {}

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

func (x *AccessPolicyUserGroup) GetUsers() []*AccessPolicyUserGroup_User {
	if x != nil {
		return x.Users
	}
	return nil
}

// AccessPolicyClusterGroup describes a cluster group in the ACLs context.
type AccessPolicyClusterGroup struct {
	state         protoimpl.MessageState              `protogen:"open.v1"`
	Clusters      []*AccessPolicyClusterGroup_Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessPolicyClusterGroup) ProtoMessage() {}

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

func (x *AccessPolicyClusterGroup) GetClusters() []*AccessPolicyClusterGroup_Cluster {
	if x != nil {
		return x.Clusters
	}
	return nil
}

// AccessPolicyRule describes a rule in the ACLs context.
type AccessPolicyRule struct {
	state         protoimpl.MessageState       `protogen:"open.v1"`
	Users         []string                     `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	Clusters      []string                     `protobuf:"bytes,2,rep,name=clusters,proto3" json:"clusters,omitempty"`
	Kubernetes    *AccessPolicyRule_Kubernetes `protobuf:"bytes,3,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
	Role          string                       `protobuf:"bytes,4,opt,name=role,proto3" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessPolicyRule) ProtoMessage() {}

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

func (x *AccessPolicyRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *AccessPolicyRule) GetClusters() []string {
	if x != nil {
		return x.Clusters
	}
	return nil
}

func (x *AccessPolicyRule) GetKubernetes() *AccessPolicyRule_Kubernetes {
	if x != nil {
		return x.Kubernetes
	}
	return nil
}

func (x *AccessPolicyRule) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

type AccessPolicyTest struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Name          string                     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	User          *AccessPolicyTest_User     `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	Cluster       *AccessPolicyTest_Cluster  `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
	Expected      *AccessPolicyTest_Expected `protobuf:"bytes,4,opt,name=expected,proto3" json:"expected,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessPolicyTest) ProtoMessage() {}

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

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

func (x *AccessPolicyTest) GetUser() *AccessPolicyTest_User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *AccessPolicyTest) GetCluster() *AccessPolicyTest_Cluster {
	if x != nil {
		return x.Cluster
	}
	return nil
}

func (x *AccessPolicyTest) GetExpected() *AccessPolicyTest_Expected {
	if x != nil {
		return x.Expected
	}
	return nil
}

// AccessPolicySpec describes the access policy configuration.
type AccessPolicySpec struct {
	state         protoimpl.MessageState               `protogen:"open.v1"`
	UserGroups    map[string]*AccessPolicyUserGroup    `protobuf:"bytes,1,rep,name=user_groups,json=userGroups,proto3" json:"user_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	ClusterGroups map[string]*AccessPolicyClusterGroup `protobuf:"bytes,2,rep,name=cluster_groups,json=clusterGroups,proto3" json:"cluster_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Rules         []*AccessPolicyRule                  `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
	Tests         []*AccessPolicyTest                  `protobuf:"bytes,4,rep,name=tests,proto3" json:"tests,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessPolicySpec) ProtoMessage() {}

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

func (x *AccessPolicySpec) GetUserGroups() map[string]*AccessPolicyUserGroup {
	if x != nil {
		return x.UserGroups
	}
	return nil
}

func (x *AccessPolicySpec) GetClusterGroups() map[string]*AccessPolicyClusterGroup {
	if x != nil {
		return x.ClusterGroups
	}
	return nil
}

func (x *AccessPolicySpec) GetRules() []*AccessPolicyRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

func (x *AccessPolicySpec) GetTests() []*AccessPolicyTest {
	if x != nil {
		return x.Tests
	}
	return nil
}

// SAMLLabelRuleSpec describes a rule on how to map Identity labels to Omni roles.
type SAMLLabelRuleSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// MatchLabels is the list of labels to match the user's Identity against this rule.
	MatchLabels []string `protobuf:"bytes,1,rep,name=match_labels,json=matchLabels,proto3" json:"match_labels,omitempty"`
	// AssignRoleOnRegistration is the role to be assigned to the user if this rule matches.
	//
	// Deprecated: use AssignRole instead.
	AssignRoleOnRegistration string `protobuf:"bytes,2,opt,name=assign_role_on_registration,json=assignRoleOnRegistration,proto3" json:"assign_role_on_registration,omitempty"`
	// AssignRole to the user matched by this rule.
	AssignRole string `protobuf:"bytes,3,opt,name=assign_role,json=assignRole,proto3" json:"assign_role,omitempty"`
	// UpdateOnEachLogin makes the rule to be applied every time user logs in.
	UpdateOnEachLogin bool `protobuf:"varint,4,opt,name=update_on_each_login,json=updateOnEachLogin,proto3" json:"update_on_each_login,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*SAMLLabelRuleSpec) ProtoMessage() {}

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

func (x *SAMLLabelRuleSpec) GetMatchLabels() []string {
	if x != nil {
		return x.MatchLabels
	}
	return nil
}

func (x *SAMLLabelRuleSpec) GetAssignRoleOnRegistration() string {
	if x != nil {
		return x.AssignRoleOnRegistration
	}
	return ""
}

func (x *SAMLLabelRuleSpec) GetAssignRole() string {
	if x != nil {
		return x.AssignRole
	}
	return ""
}

func (x *SAMLLabelRuleSpec) GetUpdateOnEachLogin() bool {
	if x != nil {
		return x.UpdateOnEachLogin
	}
	return false
}

// IdentityLastActiveSpec tracks the last time a user or service account was active.
type IdentityLastActiveSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LastActive    *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=last_active,json=lastActive,proto3" json:"last_active,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IdentityLastActiveSpec) ProtoMessage() {}

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

func (x *IdentityLastActiveSpec) GetLastActive() *timestamppb.Timestamp {
	if x != nil {
		return x.LastActive
	}
	return nil
}

// IdentityStatusSpec aggregates identity, user, and activity data into a single resource.
type IdentityStatusSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserId        string                 `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	Role          string                 `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	LastActive    string                 `protobuf:"bytes,3,opt,name=last_active,json=lastActive,proto3" json:"last_active,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IdentityStatusSpec) ProtoMessage() {}

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

func (x *IdentityStatusSpec) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *IdentityStatusSpec) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (x *IdentityStatusSpec) GetLastActive() string {
	if x != nil {
		return x.LastActive
	}
	return ""
}

type ServiceAccountStatusSpec struct {
	state         protoimpl.MessageState                   `protogen:"open.v1"`
	Role          string                                   `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
	PublicKeys    []*ServiceAccountStatusSpec_PgpPublicKey `protobuf:"bytes,2,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ServiceAccountStatusSpec) ProtoMessage() {}

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

func (x *ServiceAccountStatusSpec) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (x *ServiceAccountStatusSpec) GetPublicKeys() []*ServiceAccountStatusSpec_PgpPublicKey {
	if x != nil {
		return x.PublicKeys
	}
	return nil
}

// EulaAcceptanceSpec records the instance-wide EULA acceptance.
type EulaAcceptanceSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// AcceptedByName is the full name of the person who accepted the EULA.
	AcceptedByName string `protobuf:"bytes,1,opt,name=accepted_by_name,json=acceptedByName,proto3" json:"accepted_by_name,omitempty"`
	// AcceptedByEmail is the email address of the person who accepted the EULA.
	AcceptedByEmail string `protobuf:"bytes,2,opt,name=accepted_by_email,json=acceptedByEmail,proto3" json:"accepted_by_email,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*EulaAcceptanceSpec) ProtoMessage() {}

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

func (x *EulaAcceptanceSpec) GetAcceptedByName() string {
	if x != nil {
		return x.AcceptedByName
	}
	return ""
}

func (x *EulaAcceptanceSpec) GetAcceptedByEmail() string {
	if x != nil {
		return x.AcceptedByEmail
	}
	return ""
}

type AuthConfigSpec_Auth0 struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Domain        string                 `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
	ClientId      string                 `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	UseFormData   bool                   `protobuf:"varint,4,opt,name=useFormData,proto3" json:"useFormData,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthConfigSpec_Auth0) ProtoMessage() {}

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

func (x *AuthConfigSpec_Auth0) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AuthConfigSpec_Auth0) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

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

func (x *AuthConfigSpec_Auth0) GetUseFormData() bool {
	if x != nil {
		return x.UseFormData
	}
	return false
}

type AuthConfigSpec_OIDC struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	ProviderUrl   string                 `protobuf:"bytes,2,opt,name=provider_url,json=providerUrl,proto3" json:"provider_url,omitempty"`
	ClientId      string                 `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	ClientSecret  string                 `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"`
	Scopes        []string               `protobuf:"bytes,5,rep,name=scopes,proto3" json:"scopes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthConfigSpec_OIDC) ProtoMessage() {}

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

func (x *AuthConfigSpec_OIDC) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AuthConfigSpec_OIDC) GetProviderUrl() string {
	if x != nil {
		return x.ProviderUrl
	}
	return ""
}

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

func (x *AuthConfigSpec_OIDC) GetClientSecret() string {
	if x != nil {
		return x.ClientSecret
	}
	return ""
}

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

type AuthConfigSpec_Webauthn struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Required      bool                   `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuthConfigSpec_Webauthn) ProtoMessage() {}

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

func (x *AuthConfigSpec_Webauthn) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AuthConfigSpec_Webauthn) GetRequired() bool {
	if x != nil {
		return x.Required
	}
	return false
}

type AuthConfigSpec_SAML struct {
	state    protoimpl.MessageState `protogen:"open.v1"`
	Enabled  bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Url      string                 `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	Metadata string                 `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// LabelRules defines custom rules on how to extract SAML attributes from the
	// saml assertion and turn them into labels.
	LabelRules   map[string]string `protobuf:"bytes,4,rep,name=label_rules,json=labelRules,proto3" json:"label_rules,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	NameIdFormat string            `protobuf:"bytes,5,opt,name=name_id_format,json=nameIdFormat,proto3" json:"name_id_format,omitempty"`
	// AttributeRules defines custom rules on how to extract the identity, fullname, firstname and lastname
	// from the SAML assertion.
	AttributeRules map[string]string `protobuf:"bytes,6,rep,name=attribute_rules,json=attributeRules,proto3" json:"attribute_rules,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*AuthConfigSpec_SAML) ProtoMessage() {}

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

func (x *AuthConfigSpec_SAML) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AuthConfigSpec_SAML) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *AuthConfigSpec_SAML) GetMetadata() string {
	if x != nil {
		return x.Metadata
	}
	return ""
}

func (x *AuthConfigSpec_SAML) GetLabelRules() map[string]string {
	if x != nil {
		return x.LabelRules
	}
	return nil
}

func (x *AuthConfigSpec_SAML) GetNameIdFormat() string {
	if x != nil {
		return x.NameIdFormat
	}
	return ""
}

func (x *AuthConfigSpec_SAML) GetAttributeRules() map[string]string {
	if x != nil {
		return x.AttributeRules
	}
	return nil
}

type AccessPolicyUserGroup_User struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Name           string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Match          string                 `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"`
	LabelSelectors []string               `protobuf:"bytes,3,rep,name=label_selectors,json=labelSelectors,proto3" json:"label_selectors,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *AccessPolicyUserGroup_User) Reset() {
	*x = AccessPolicyUserGroup_User{}
	mi := &file_omni_specs_auth_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyUserGroup_User) ProtoMessage() {}

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

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

func (x *AccessPolicyUserGroup_User) GetMatch() string {
	if x != nil {
		return x.Match
	}
	return ""
}

func (x *AccessPolicyUserGroup_User) GetLabelSelectors() []string {
	if x != nil {
		return x.LabelSelectors
	}
	return nil
}

type AccessPolicyClusterGroup_Cluster struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Match         string                 `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyClusterGroup_Cluster) Reset() {
	*x = AccessPolicyClusterGroup_Cluster{}
	mi := &file_omni_specs_auth_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyClusterGroup_Cluster) ProtoMessage() {}

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

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

func (x *AccessPolicyClusterGroup_Cluster) GetMatch() string {
	if x != nil {
		return x.Match
	}
	return ""
}

type AccessPolicyRule_Kubernetes struct {
	state         protoimpl.MessageState                   `protogen:"open.v1"`
	Impersonate   *AccessPolicyRule_Kubernetes_Impersonate `protobuf:"bytes,1,opt,name=impersonate,proto3" json:"impersonate,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyRule_Kubernetes) Reset() {
	*x = AccessPolicyRule_Kubernetes{}
	mi := &file_omni_specs_auth_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyRule_Kubernetes) ProtoMessage() {}

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

func (x *AccessPolicyRule_Kubernetes) GetImpersonate() *AccessPolicyRule_Kubernetes_Impersonate {
	if x != nil {
		return x.Impersonate
	}
	return nil
}

type AccessPolicyRule_Kubernetes_Impersonate struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Groups        []string               `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyRule_Kubernetes_Impersonate) Reset() {
	*x = AccessPolicyRule_Kubernetes_Impersonate{}
	mi := &file_omni_specs_auth_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyRule_Kubernetes_Impersonate) ProtoMessage() {}

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

func (x *AccessPolicyRule_Kubernetes_Impersonate) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

type AccessPolicyTest_Expected struct {
	state         protoimpl.MessageState                `protogen:"open.v1"`
	Kubernetes    *AccessPolicyTest_Expected_Kubernetes `protobuf:"bytes,1,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
	Role          string                                `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyTest_Expected) Reset() {
	*x = AccessPolicyTest_Expected{}
	mi := &file_omni_specs_auth_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyTest_Expected) ProtoMessage() {}

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

func (x *AccessPolicyTest_Expected) GetKubernetes() *AccessPolicyTest_Expected_Kubernetes {
	if x != nil {
		return x.Kubernetes
	}
	return nil
}

func (x *AccessPolicyTest_Expected) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

type AccessPolicyTest_User struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Labels        map[string]string      `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyTest_User) Reset() {
	*x = AccessPolicyTest_User{}
	mi := &file_omni_specs_auth_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyTest_User) ProtoMessage() {}

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

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

func (x *AccessPolicyTest_User) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

func (x *AccessPolicyTest_Cluster) Reset() {
	*x = AccessPolicyTest_Cluster{}
	mi := &file_omni_specs_auth_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyTest_Cluster) ProtoMessage() {}

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

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

type AccessPolicyTest_Expected_Kubernetes struct {
	state         protoimpl.MessageState                            `protogen:"open.v1"`
	Impersonate   *AccessPolicyTest_Expected_Kubernetes_Impersonate `protobuf:"bytes,1,opt,name=impersonate,proto3" json:"impersonate,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyTest_Expected_Kubernetes) Reset() {
	*x = AccessPolicyTest_Expected_Kubernetes{}
	mi := &file_omni_specs_auth_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyTest_Expected_Kubernetes) ProtoMessage() {}

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

func (x *AccessPolicyTest_Expected_Kubernetes) GetImpersonate() *AccessPolicyTest_Expected_Kubernetes_Impersonate {
	if x != nil {
		return x.Impersonate
	}
	return nil
}

type AccessPolicyTest_Expected_Kubernetes_Impersonate struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Groups        []string               `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AccessPolicyTest_Expected_Kubernetes_Impersonate) Reset() {
	*x = AccessPolicyTest_Expected_Kubernetes_Impersonate{}
	mi := &file_omni_specs_auth_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AccessPolicyTest_Expected_Kubernetes_Impersonate) ProtoMessage() {}

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

func (x *AccessPolicyTest_Expected_Kubernetes_Impersonate) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

type ServiceAccountStatusSpec_PgpPublicKey struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Armored       string                 `protobuf:"bytes,2,opt,name=armored,proto3" json:"armored,omitempty"`
	Expiration    *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expiration,proto3" json:"expiration,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ServiceAccountStatusSpec_PgpPublicKey) Reset() {
	*x = ServiceAccountStatusSpec_PgpPublicKey{}
	mi := &file_omni_specs_auth_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ServiceAccountStatusSpec_PgpPublicKey) ProtoMessage() {}

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

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

func (x *ServiceAccountStatusSpec_PgpPublicKey) GetArmored() string {
	if x != nil {
		return x.Armored
	}
	return ""
}

func (x *ServiceAccountStatusSpec_PgpPublicKey) GetExpiration() *timestamppb.Timestamp {
	if x != nil {
		return x.Expiration
	}
	return nil
}

var File_omni_specs_auth_proto protoreflect.FileDescriptor

const file_omni_specs_auth_proto_rawDesc = "" +
	"\n" +
	"\x15omni/specs/auth.proto\x12\x05specs\x1a\x1btalos/machine/machine.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf8\a\n" +
	"\x0eAuthConfigSpec\x121\n" +
	"\x05auth0\x18\x01 \x01(\v2\x1b.specs.AuthConfigSpec.Auth0R\x05auth0\x12:\n" +
	"\bwebauthn\x18\x02 \x01(\v2\x1e.specs.AuthConfigSpec.WebauthnR\bwebauthn\x12\x1c\n" +
	"\tsuspended\x18\x03 \x01(\bR\tsuspended\x12.\n" +
	"\x04saml\x18\x04 \x01(\v2\x1a.specs.AuthConfigSpec.SAMLR\x04saml\x12.\n" +
	"\x04oidc\x18\x05 \x01(\v2\x1a.specs.AuthConfigSpec.OIDCR\x04oidc\x1ax\n" +
	"\x05Auth0\x12\x18\n" +
	"\aenabled\x18\x01 \x01(\bR\aenabled\x12\x16\n" +
	"\x06domain\x18\x02 \x01(\tR\x06domain\x12\x1b\n" +
	"\tclient_id\x18\x03 \x01(\tR\bclientId\x12 \n" +
	"\vuseFormData\x18\x04 \x01(\bR\vuseFormData\x1a\x9d\x01\n" +
	"\x04OIDC\x12\x18\n" +
	"\aenabled\x18\x01 \x01(\bR\aenabled\x12!\n" +
	"\fprovider_url\x18\x02 \x01(\tR\vproviderUrl\x12\x1b\n" +
	"\tclient_id\x18\x03 \x01(\tR\bclientId\x12#\n" +
	"\rclient_secret\x18\x04 \x01(\tR\fclientSecret\x12\x16\n" +
	"\x06scopes\x18\x05 \x03(\tR\x06scopes\x1a@\n" +
	"\bWebauthn\x12\x18\n" +
	"\aenabled\x18\x01 \x01(\bR\aenabled\x12\x1a\n" +
	"\brequired\x18\x02 \x01(\bR\brequired\x1a\x9c\x03\n" +
	"\x04SAML\x12\x18\n" +
	"\aenabled\x18\x01 \x01(\bR\aenabled\x12\x10\n" +
	"\x03url\x18\x02 \x01(\tR\x03url\x12\x1a\n" +
	"\bmetadata\x18\x03 \x01(\tR\bmetadata\x12K\n" +
	"\vlabel_rules\x18\x04 \x03(\v2*.specs.AuthConfigSpec.SAML.LabelRulesEntryR\n" +
	"labelRules\x12$\n" +
	"\x0ename_id_format\x18\x05 \x01(\tR\fnameIdFormat\x12W\n" +
	"\x0fattribute_rules\x18\x06 \x03(\v2..specs.AuthConfigSpec.SAML.AttributeRulesEntryR\x0eattributeRules\x1a=\n" +
	"\x0fLabelRulesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aA\n" +
	"\x13AttributeRulesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"Q\n" +
	"\x11SAMLAssertionSpec\x12\x12\n" +
	"\x04data\x18\x01 \x01(\fR\x04data\x12\x14\n" +
	"\x05email\x18\x02 \x01(\tR\x05email\x12\x12\n" +
	"\x04used\x18\x03 \x01(\bR\x04used\"<\n" +
	"\bUserSpec\x12\x16\n" +
	"\x06scopes\x18\x02 \x03(\tR\x06scopes\x12\x12\n" +
	"\x04role\x18\x03 \x01(\tR\x04roleJ\x04\b\x01\x10\x02\"'\n" +
	"\fIdentitySpec\x12\x17\n" +
	"\auser_id\x18\x01 \x01(\tR\x06userId\" \n" +
	"\bIdentity\x12\x14\n" +
	"\x05email\x18\x01 \x01(\tR\x05email\"\xb9\x02\n" +
	"\rPublicKeySpec\x12\x1d\n" +
	"\n" +
	"public_key\x18\x01 \x01(\fR\tpublicKey\x12\x16\n" +
	"\x06scopes\x18\x02 \x03(\tR\x06scopes\x12:\n" +
	"\n" +
	"expiration\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"expiration\x12\x1c\n" +
	"\tconfirmed\x18\x04 \x01(\bR\tconfirmed\x12+\n" +
	"\bidentity\x18\x05 \x01(\v2\x0f.specs.IdentityR\bidentity\x12\x12\n" +
	"\x04role\x18\x06 \x01(\tR\x04role\x12-\n" +
	"\x04type\x18\a \x01(\x0e2\x19.specs.PublicKeySpec.TypeR\x04type\"'\n" +
	"\x04Type\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\a\n" +
	"\x03PGP\x10\x01\x12\t\n" +
	"\x05PLAIN\x10\x02\"\xab\x01\n" +
	"\x15AccessPolicyUserGroup\x127\n" +
	"\x05users\x18\x01 \x03(\v2!.specs.AccessPolicyUserGroup.UserR\x05users\x1aY\n" +
	"\x04User\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05match\x18\x02 \x01(\tR\x05match\x12'\n" +
	"\x0flabel_selectors\x18\x03 \x03(\tR\x0elabelSelectors\"\x94\x01\n" +
	"\x18AccessPolicyClusterGroup\x12C\n" +
	"\bclusters\x18\x01 \x03(\v2'.specs.AccessPolicyClusterGroup.ClusterR\bclusters\x1a3\n" +
	"\aCluster\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05match\x18\x02 \x01(\tR\x05match\"\xa4\x02\n" +
	"\x10AccessPolicyRule\x12\x14\n" +
	"\x05users\x18\x01 \x03(\tR\x05users\x12\x1a\n" +
	"\bclusters\x18\x02 \x03(\tR\bclusters\x12B\n" +
	"\n" +
	"kubernetes\x18\x03 \x01(\v2\".specs.AccessPolicyRule.KubernetesR\n" +
	"kubernetes\x12\x12\n" +
	"\x04role\x18\x04 \x01(\tR\x04role\x1a\x85\x01\n" +
	"\n" +
	"Kubernetes\x12P\n" +
	"\vimpersonate\x18\x01 \x01(\v2..specs.AccessPolicyRule.Kubernetes.ImpersonateR\vimpersonate\x1a%\n" +
	"\vImpersonate\x12\x16\n" +
	"\x06groups\x18\x01 \x03(\tR\x06groups\"\x89\x05\n" +
	"\x10AccessPolicyTest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x120\n" +
	"\x04user\x18\x02 \x01(\v2\x1c.specs.AccessPolicyTest.UserR\x04user\x129\n" +
	"\acluster\x18\x03 \x01(\v2\x1f.specs.AccessPolicyTest.ClusterR\acluster\x12<\n" +
	"\bexpected\x18\x04 \x01(\v2 .specs.AccessPolicyTest.ExpectedR\bexpected\x1a\xfc\x01\n" +
	"\bExpected\x12K\n" +
	"\n" +
	"kubernetes\x18\x01 \x01(\v2+.specs.AccessPolicyTest.Expected.KubernetesR\n" +
	"kubernetes\x12\x12\n" +
	"\x04role\x18\x02 \x01(\tR\x04role\x1a\x8e\x01\n" +
	"\n" +
	"Kubernetes\x12Y\n" +
	"\vimpersonate\x18\x01 \x01(\v27.specs.AccessPolicyTest.Expected.Kubernetes.ImpersonateR\vimpersonate\x1a%\n" +
	"\vImpersonate\x12\x16\n" +
	"\x06groups\x18\x01 \x03(\tR\x06groups\x1a\x97\x01\n" +
	"\x04User\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12@\n" +
	"\x06labels\x18\x02 \x03(\v2(.specs.AccessPolicyTest.User.LabelsEntryR\x06labels\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a\x1d\n" +
	"\aCluster\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"\xcd\x03\n" +
	"\x10AccessPolicySpec\x12H\n" +
	"\vuser_groups\x18\x01 \x03(\v2'.specs.AccessPolicySpec.UserGroupsEntryR\n" +
	"userGroups\x12Q\n" +
	"\x0ecluster_groups\x18\x02 \x03(\v2*.specs.AccessPolicySpec.ClusterGroupsEntryR\rclusterGroups\x12-\n" +
	"\x05rules\x18\x03 \x03(\v2\x17.specs.AccessPolicyRuleR\x05rules\x12-\n" +
	"\x05tests\x18\x04 \x03(\v2\x17.specs.AccessPolicyTestR\x05tests\x1a[\n" +
	"\x0fUserGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x122\n" +
	"\x05value\x18\x02 \x01(\v2\x1c.specs.AccessPolicyUserGroupR\x05value:\x028\x01\x1aa\n" +
	"\x12ClusterGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x125\n" +
	"\x05value\x18\x02 \x01(\v2\x1f.specs.AccessPolicyClusterGroupR\x05value:\x028\x01\"\xc7\x01\n" +
	"\x11SAMLLabelRuleSpec\x12!\n" +
	"\fmatch_labels\x18\x01 \x03(\tR\vmatchLabels\x12=\n" +
	"\x1bassign_role_on_registration\x18\x02 \x01(\tR\x18assignRoleOnRegistration\x12\x1f\n" +
	"\vassign_role\x18\x03 \x01(\tR\n" +
	"assignRole\x12/\n" +
	"\x14update_on_each_login\x18\x04 \x01(\bR\x11updateOnEachLogin\"U\n" +
	"\x16IdentityLastActiveSpec\x12;\n" +
	"\vlast_active\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"lastActive\"b\n" +
	"\x12IdentityStatusSpec\x12\x17\n" +
	"\auser_id\x18\x01 \x01(\tR\x06userId\x12\x12\n" +
	"\x04role\x18\x02 \x01(\tR\x04role\x12\x1f\n" +
	"\vlast_active\x18\x03 \x01(\tR\n" +
	"lastActive\"\xf3\x01\n" +
	"\x18ServiceAccountStatusSpec\x12\x12\n" +
	"\x04role\x18\x01 \x01(\tR\x04role\x12M\n" +
	"\vpublic_keys\x18\x02 \x03(\v2,.specs.ServiceAccountStatusSpec.PgpPublicKeyR\n" +
	"publicKeys\x1at\n" +
	"\fPgpPublicKey\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" +
	"\aarmored\x18\x02 \x01(\tR\aarmored\x12:\n" +
	"\n" +
	"expiration\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"expiration\"j\n" +
	"\x12EulaAcceptanceSpec\x12(\n" +
	"\x10accepted_by_name\x18\x01 \x01(\tR\x0eacceptedByName\x12*\n" +
	"\x11accepted_by_email\x18\x02 \x01(\tR\x0facceptedByEmailB2Z0github.com/siderolabs/omni/client/api/omni/specsb\x06proto3"

var (
	file_omni_specs_auth_proto_rawDescOnce sync.Once
	file_omni_specs_auth_proto_rawDescData []byte
)

func file_omni_specs_auth_proto_rawDescGZIP() []byte {
	file_omni_specs_auth_proto_rawDescOnce.Do(func() {
		file_omni_specs_auth_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_omni_specs_auth_proto_rawDesc), len(file_omni_specs_auth_proto_rawDesc)))
	})
	return file_omni_specs_auth_proto_rawDescData
}

var file_omni_specs_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_omni_specs_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
var file_omni_specs_auth_proto_goTypes = []any{
	(PublicKeySpec_Type)(0),                                  // 0: specs.PublicKeySpec.Type
	(*AuthConfigSpec)(nil),                                   // 1: specs.AuthConfigSpec
	(*SAMLAssertionSpec)(nil),                                // 2: specs.SAMLAssertionSpec
	(*UserSpec)(nil),                                         // 3: specs.UserSpec
	(*IdentitySpec)(nil),                                     // 4: specs.IdentitySpec
	(*Identity)(nil),                                         // 5: specs.Identity
	(*PublicKeySpec)(nil),                                    // 6: specs.PublicKeySpec
	(*AccessPolicyUserGroup)(nil),                            // 7: specs.AccessPolicyUserGroup
	(*AccessPolicyClusterGroup)(nil),                         // 8: specs.AccessPolicyClusterGroup
	(*AccessPolicyRule)(nil),                                 // 9: specs.AccessPolicyRule
	(*AccessPolicyTest)(nil),                                 // 10: specs.AccessPolicyTest
	(*AccessPolicySpec)(nil),                                 // 11: specs.AccessPolicySpec
	(*SAMLLabelRuleSpec)(nil),                                // 12: specs.SAMLLabelRuleSpec
	(*IdentityLastActiveSpec)(nil),                           // 13: specs.IdentityLastActiveSpec
	(*IdentityStatusSpec)(nil),                               // 14: specs.IdentityStatusSpec
	(*ServiceAccountStatusSpec)(nil),                         // 15: specs.ServiceAccountStatusSpec
	(*EulaAcceptanceSpec)(nil),                               // 16: specs.EulaAcceptanceSpec
	(*AuthConfigSpec_Auth0)(nil),                             // 17: specs.AuthConfigSpec.Auth0
	(*AuthConfigSpec_OIDC)(nil),                              // 18: specs.AuthConfigSpec.OIDC
	(*AuthConfigSpec_Webauthn)(nil),                          // 19: specs.AuthConfigSpec.Webauthn
	(*AuthConfigSpec_SAML)(nil),                              // 20: specs.AuthConfigSpec.SAML
	nil,                                                      // 21: specs.AuthConfigSpec.SAML.LabelRulesEntry
	nil,                                                      // 22: specs.AuthConfigSpec.SAML.AttributeRulesEntry
	(*AccessPolicyUserGroup_User)(nil),                       // 23: specs.AccessPolicyUserGroup.User
	(*AccessPolicyClusterGroup_Cluster)(nil),                 // 24: specs.AccessPolicyClusterGroup.Cluster
	(*AccessPolicyRule_Kubernetes)(nil),                      // 25: specs.AccessPolicyRule.Kubernetes
	(*AccessPolicyRule_Kubernetes_Impersonate)(nil),          // 26: specs.AccessPolicyRule.Kubernetes.Impersonate
	(*AccessPolicyTest_Expected)(nil),                        // 27: specs.AccessPolicyTest.Expected
	(*AccessPolicyTest_User)(nil),                            // 28: specs.AccessPolicyTest.User
	(*AccessPolicyTest_Cluster)(nil),                         // 29: specs.AccessPolicyTest.Cluster
	(*AccessPolicyTest_Expected_Kubernetes)(nil),             // 30: specs.AccessPolicyTest.Expected.Kubernetes
	(*AccessPolicyTest_Expected_Kubernetes_Impersonate)(nil), // 31: specs.AccessPolicyTest.Expected.Kubernetes.Impersonate
	nil, // 32: specs.AccessPolicyTest.User.LabelsEntry
	nil, // 33: specs.AccessPolicySpec.UserGroupsEntry
	nil, // 34: specs.AccessPolicySpec.ClusterGroupsEntry
	(*ServiceAccountStatusSpec_PgpPublicKey)(nil), // 35: specs.ServiceAccountStatusSpec.PgpPublicKey
	(*timestamppb.Timestamp)(nil),                 // 36: google.protobuf.Timestamp
}
var file_omni_specs_auth_proto_depIdxs = []int32{
	17, // 0: specs.AuthConfigSpec.auth0:type_name -> specs.AuthConfigSpec.Auth0
	19, // 1: specs.AuthConfigSpec.webauthn:type_name -> specs.AuthConfigSpec.Webauthn
	20, // 2: specs.AuthConfigSpec.saml:type_name -> specs.AuthConfigSpec.SAML
	18, // 3: specs.AuthConfigSpec.oidc:type_name -> specs.AuthConfigSpec.OIDC
	36, // 4: specs.PublicKeySpec.expiration:type_name -> google.protobuf.Timestamp
	5,  // 5: specs.PublicKeySpec.identity:type_name -> specs.Identity
	0,  // 6: specs.PublicKeySpec.type:type_name -> specs.PublicKeySpec.Type
	23, // 7: specs.AccessPolicyUserGroup.users:type_name -> specs.AccessPolicyUserGroup.User
	24, // 8: specs.AccessPolicyClusterGroup.clusters:type_name -> specs.AccessPolicyClusterGroup.Cluster
	25, // 9: specs.AccessPolicyRule.kubernetes:type_name -> specs.AccessPolicyRule.Kubernetes
	28, // 10: specs.AccessPolicyTest.user:type_name -> specs.AccessPolicyTest.User
	29, // 11: specs.AccessPolicyTest.cluster:type_name -> specs.AccessPolicyTest.Cluster
	27, // 12: specs.AccessPolicyTest.expected:type_name -> specs.AccessPolicyTest.Expected
	33, // 13: specs.AccessPolicySpec.user_groups:type_name -> specs.AccessPolicySpec.UserGroupsEntry
	34, // 14: specs.AccessPolicySpec.cluster_groups:type_name -> specs.AccessPolicySpec.ClusterGroupsEntry
	9,  // 15: specs.AccessPolicySpec.rules:type_name -> specs.AccessPolicyRule
	10, // 16: specs.AccessPolicySpec.tests:type_name -> specs.AccessPolicyTest
	36, // 17: specs.IdentityLastActiveSpec.last_active:type_name -> google.protobuf.Timestamp
	35, // 18: specs.ServiceAccountStatusSpec.public_keys:type_name -> specs.ServiceAccountStatusSpec.PgpPublicKey
	21, // 19: specs.AuthConfigSpec.SAML.label_rules:type_name -> specs.AuthConfigSpec.SAML.LabelRulesEntry
	22, // 20: specs.AuthConfigSpec.SAML.attribute_rules:type_name -> specs.AuthConfigSpec.SAML.AttributeRulesEntry
	26, // 21: specs.AccessPolicyRule.Kubernetes.impersonate:type_name -> specs.AccessPolicyRule.Kubernetes.Impersonate
	30, // 22: specs.AccessPolicyTest.Expected.kubernetes:type_name -> specs.AccessPolicyTest.Expected.Kubernetes
	32, // 23: specs.AccessPolicyTest.User.labels:type_name -> specs.AccessPolicyTest.User.LabelsEntry
	31, // 24: specs.AccessPolicyTest.Expected.Kubernetes.impersonate:type_name -> specs.AccessPolicyTest.Expected.Kubernetes.Impersonate
	7,  // 25: specs.AccessPolicySpec.UserGroupsEntry.value:type_name -> specs.AccessPolicyUserGroup
	8,  // 26: specs.AccessPolicySpec.ClusterGroupsEntry.value:type_name -> specs.AccessPolicyClusterGroup
	36, // 27: specs.ServiceAccountStatusSpec.PgpPublicKey.expiration:type_name -> google.protobuf.Timestamp
	28, // [28:28] is the sub-list for method output_type
	28, // [28:28] is the sub-list for method input_type
	28, // [28:28] is the sub-list for extension type_name
	28, // [28:28] is the sub-list for extension extendee
	0,  // [0:28] is the sub-list for field type_name
}

func init() { file_omni_specs_auth_proto_init() }
func file_omni_specs_auth_proto_init() {
	if File_omni_specs_auth_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_omni_specs_auth_proto_rawDesc), len(file_omni_specs_auth_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   35,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_omni_specs_auth_proto_goTypes,
		DependencyIndexes: file_omni_specs_auth_proto_depIdxs,
		EnumInfos:         file_omni_specs_auth_proto_enumTypes,
		MessageInfos:      file_omni_specs_auth_proto_msgTypes,
	}.Build()
	File_omni_specs_auth_proto = out.File
	file_omni_specs_auth_proto_goTypes = nil
	file_omni_specs_auth_proto_depIdxs = nil
}
