// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/organizationmanager/v1/idp/userpool.proto

package idp

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

// Represents the current status of a userpool.
type Userpool_Status int32

const (
	// The status is not specified.
	Userpool_STATUS_UNSPECIFIED Userpool_Status = 0
	// The userpool is in the process of being created.
	Userpool_CREATING Userpool_Status = 1
	// The userpool is active and operational.
	Userpool_ACTIVE Userpool_Status = 2
	// The userpool is in the process of being deleted.
	Userpool_DELETING Userpool_Status = 3
)

// Enum value maps for Userpool_Status.
var (
	Userpool_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "CREATING",
		2: "ACTIVE",
		3: "DELETING",
	}
	Userpool_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"CREATING":           1,
		"ACTIVE":             2,
		"DELETING":           3,
	}
)

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

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

func (Userpool_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[0].Descriptor()
}

func (Userpool_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[0]
}

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

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

// Represents the current status of a domain.
type Domain_Status int32

const (
	// The status is not specified.
	Domain_STATUS_UNSPECIFIED Domain_Status = 0
	// The domain needs to be validated.
	Domain_NEED_TO_VALIDATE Domain_Status = 1
	// The domain is in the process of being validated.
	Domain_VALIDATING Domain_Status = 2
	// The domain has been successfully validated.
	Domain_VALID Domain_Status = 3
	// The domain validation has failed.
	Domain_INVALID Domain_Status = 4
	// The domain is in the process of being deleted.
	Domain_DELETING Domain_Status = 5
)

// Enum value maps for Domain_Status.
var (
	Domain_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "NEED_TO_VALIDATE",
		2: "VALIDATING",
		3: "VALID",
		4: "INVALID",
		5: "DELETING",
	}
	Domain_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"NEED_TO_VALIDATE":   1,
		"VALIDATING":         2,
		"VALID":              3,
		"INVALID":            4,
		"DELETING":           5,
	}
)

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

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

func (Domain_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[1].Descriptor()
}

func (Domain_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[1]
}

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

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

// Type of domain challenge.
type DomainChallenge_Type int32

const (
	// The type is not specified.
	DomainChallenge_TYPE_UNSPECIFIED DomainChallenge_Type = 0
	// DNS TXT record challenge.
	DomainChallenge_DNS_TXT DomainChallenge_Type = 1
)

// Enum value maps for DomainChallenge_Type.
var (
	DomainChallenge_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "DNS_TXT",
	}
	DomainChallenge_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"DNS_TXT":          1,
	}
)

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

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

func (DomainChallenge_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[2].Descriptor()
}

func (DomainChallenge_Type) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[2]
}

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

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

// Status of the domain challenge.
type DomainChallenge_Status int32

const (
	// The status is not specified.
	DomainChallenge_STATUS_UNSPECIFIED DomainChallenge_Status = 0
	// The challenge is pending verification.
	DomainChallenge_PENDING DomainChallenge_Status = 1
	// The challenge verification is in progress.
	DomainChallenge_PROCESSING DomainChallenge_Status = 2
	// The challenge has been successfully verified.
	DomainChallenge_VALID DomainChallenge_Status = 3
	// The challenge verification has failed.
	DomainChallenge_INVALID DomainChallenge_Status = 4
)

// Enum value maps for DomainChallenge_Status.
var (
	DomainChallenge_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "PENDING",
		2: "PROCESSING",
		3: "VALID",
		4: "INVALID",
	}
	DomainChallenge_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"PENDING":            1,
		"PROCESSING":         2,
		"VALID":              3,
		"INVALID":            4,
	}
)

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

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

func (DomainChallenge_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[3].Descriptor()
}

func (DomainChallenge_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[3]
}

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

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

// Type of DNS record.
type DomainChallenge_DnsRecord_Type int32

const (
	// The type is not specified.
	DomainChallenge_DnsRecord_TYPE_UNSPECIFIED DomainChallenge_DnsRecord_Type = 0
	// TXT record type.
	DomainChallenge_DnsRecord_TXT DomainChallenge_DnsRecord_Type = 1
)

// Enum value maps for DomainChallenge_DnsRecord_Type.
var (
	DomainChallenge_DnsRecord_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "TXT",
	}
	DomainChallenge_DnsRecord_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"TXT":              1,
	}
)

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

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

func (DomainChallenge_DnsRecord_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[4].Descriptor()
}

func (DomainChallenge_DnsRecord_Type) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes[4]
}

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

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

// A userpool is a container for users in the Identity Provider system.
type Userpool struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier of the userpool.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// ID of the organization this userpool belongs to.
	OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	// Name of the userpool.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Description of the userpool.
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// Resource labels as key:value pairs.
	Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Timestamp when the userpool was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Timestamp when the userpool was last updated.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// List of domains associated with this userpool.
	Domains []string `protobuf:"bytes,8,rep,name=domains,proto3" json:"domains,omitempty"`
	// Current status of the userpool.
	Status Userpool_Status `protobuf:"varint,9,opt,name=status,proto3,enum=yandex.cloud.organizationmanager.v1.idp.Userpool_Status" json:"status,omitempty"`
	// User settings for this userpool.
	UserSettings *UserSettings `protobuf:"bytes,10,opt,name=user_settings,json=userSettings,proto3" json:"user_settings,omitempty"`
	// Password quality policy for this userpool.
	PasswordQualityPolicy *PasswordQualityPolicy `protobuf:"bytes,11,opt,name=password_quality_policy,json=passwordQualityPolicy,proto3" json:"password_quality_policy,omitempty"`
	// Password lifetime policy for this userpool.
	PasswordLifetimePolicy *PasswordLifetimePolicy `protobuf:"bytes,12,opt,name=password_lifetime_policy,json=passwordLifetimePolicy,proto3" json:"password_lifetime_policy,omitempty"`
	// Bruteforce protection policy for this userpool.
	BruteforceProtectionPolicy *BruteforceProtectionPolicy `protobuf:"bytes,13,opt,name=bruteforce_protection_policy,json=bruteforceProtectionPolicy,proto3" json:"bruteforce_protection_policy,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

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

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

func (*Userpool) ProtoMessage() {}

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

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

func (x *Userpool) GetOrganizationId() string {
	if x != nil {
		return x.OrganizationId
	}
	return ""
}

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

func (x *Userpool) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

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

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

func (x *Userpool) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *Userpool) GetDomains() []string {
	if x != nil {
		return x.Domains
	}
	return nil
}

func (x *Userpool) GetStatus() Userpool_Status {
	if x != nil {
		return x.Status
	}
	return Userpool_STATUS_UNSPECIFIED
}

func (x *Userpool) GetUserSettings() *UserSettings {
	if x != nil {
		return x.UserSettings
	}
	return nil
}

func (x *Userpool) GetPasswordQualityPolicy() *PasswordQualityPolicy {
	if x != nil {
		return x.PasswordQualityPolicy
	}
	return nil
}

func (x *Userpool) GetPasswordLifetimePolicy() *PasswordLifetimePolicy {
	if x != nil {
		return x.PasswordLifetimePolicy
	}
	return nil
}

func (x *Userpool) GetBruteforceProtectionPolicy() *BruteforceProtectionPolicy {
	if x != nil {
		return x.BruteforceProtectionPolicy
	}
	return nil
}

// Settings that control user capabilities within a userpool.
type UserSettings struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether users can change their own passwords.
	AllowEditSelfPassword bool `protobuf:"varint,1,opt,name=allow_edit_self_password,json=allowEditSelfPassword,proto3" json:"allow_edit_self_password,omitempty"`
	// Whether users can edit their own profile information.
	AllowEditSelfInfo bool `protobuf:"varint,2,opt,name=allow_edit_self_info,json=allowEditSelfInfo,proto3" json:"allow_edit_self_info,omitempty"`
	// Whether users can edit their own contact information.
	AllowEditSelfContacts bool `protobuf:"varint,3,opt,name=allow_edit_self_contacts,json=allowEditSelfContacts,proto3" json:"allow_edit_self_contacts,omitempty"`
	// Whether users can edit their own login information.
	AllowEditSelfLogin bool `protobuf:"varint,4,opt,name=allow_edit_self_login,json=allowEditSelfLogin,proto3" json:"allow_edit_self_login,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*UserSettings) ProtoMessage() {}

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

func (x *UserSettings) GetAllowEditSelfPassword() bool {
	if x != nil {
		return x.AllowEditSelfPassword
	}
	return false
}

func (x *UserSettings) GetAllowEditSelfInfo() bool {
	if x != nil {
		return x.AllowEditSelfInfo
	}
	return false
}

func (x *UserSettings) GetAllowEditSelfContacts() bool {
	if x != nil {
		return x.AllowEditSelfContacts
	}
	return false
}

func (x *UserSettings) GetAllowEditSelfLogin() bool {
	if x != nil {
		return x.AllowEditSelfLogin
	}
	return false
}

// A domain associated with a userpool.
type Domain struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Domain name.
	Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
	// Current status of the domain.
	Status Domain_Status `protobuf:"varint,2,opt,name=status,proto3,enum=yandex.cloud.organizationmanager.v1.idp.Domain_Status" json:"status,omitempty"`
	// Optional code providing details about validation errors.
	StatusCode string `protobuf:"bytes,3,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
	// Timestamp when the domain was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Timestamp when the domain was validated.
	ValidatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=validated_at,json=validatedAt,proto3" json:"validated_at,omitempty"`
	// List of challenges associated with this domain.
	Challenges []*DomainChallenge `protobuf:"bytes,7,rep,name=challenges,proto3" json:"challenges,omitempty"`
	// Whether the domain is protected from deletion.
	DeletionProtection bool `protobuf:"varint,8,opt,name=deletion_protection,json=deletionProtection,proto3" json:"deletion_protection,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*Domain) ProtoMessage() {}

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

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

func (x *Domain) GetStatus() Domain_Status {
	if x != nil {
		return x.Status
	}
	return Domain_STATUS_UNSPECIFIED
}

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

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

func (x *Domain) GetValidatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ValidatedAt
	}
	return nil
}

func (x *Domain) GetChallenges() []*DomainChallenge {
	if x != nil {
		return x.Challenges
	}
	return nil
}

func (x *Domain) GetDeletionProtection() bool {
	if x != nil {
		return x.DeletionProtection
	}
	return false
}

// A challenge used to validate domain ownership.
type DomainChallenge struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Timestamp when the challenge was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Timestamp when the challenge was last updated.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Type of the challenge.
	Type DomainChallenge_Type `protobuf:"varint,4,opt,name=type,proto3,enum=yandex.cloud.organizationmanager.v1.idp.DomainChallenge_Type" json:"type,omitempty"`
	// Current status of the challenge.
	Status DomainChallenge_Status `protobuf:"varint,5,opt,name=status,proto3,enum=yandex.cloud.organizationmanager.v1.idp.DomainChallenge_Status" json:"status,omitempty"`
	// Challenge details.
	//
	// Types that are valid to be assigned to Challenge:
	//
	//	*DomainChallenge_DnsChallenge
	Challenge     isDomainChallenge_Challenge `protobuf_oneof:"challenge"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DomainChallenge) ProtoMessage() {}

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

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

func (x *DomainChallenge) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *DomainChallenge) GetType() DomainChallenge_Type {
	if x != nil {
		return x.Type
	}
	return DomainChallenge_TYPE_UNSPECIFIED
}

func (x *DomainChallenge) GetStatus() DomainChallenge_Status {
	if x != nil {
		return x.Status
	}
	return DomainChallenge_STATUS_UNSPECIFIED
}

func (x *DomainChallenge) GetChallenge() isDomainChallenge_Challenge {
	if x != nil {
		return x.Challenge
	}
	return nil
}

func (x *DomainChallenge) GetDnsChallenge() *DomainChallenge_DnsRecord {
	if x != nil {
		if x, ok := x.Challenge.(*DomainChallenge_DnsChallenge); ok {
			return x.DnsChallenge
		}
	}
	return nil
}

type isDomainChallenge_Challenge interface {
	isDomainChallenge_Challenge()
}

type DomainChallenge_DnsChallenge struct {
	// DNS record challenge details.
	DnsChallenge *DomainChallenge_DnsRecord `protobuf:"bytes,6,opt,name=dns_challenge,json=dnsChallenge,proto3,oneof"`
}

func (*DomainChallenge_DnsChallenge) isDomainChallenge_Challenge() {}

// Policy that defines password quality requirements.
type PasswordQualityPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether passwords similar to previous ones are allowed.
	AllowSimilar bool `protobuf:"varint,1,opt,name=allow_similar,json=allowSimilar,proto3" json:"allow_similar,omitempty"`
	// Maximum password length. Zero means no maximum length is enforced.
	MaxLength int64 `protobuf:"varint,2,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"`
	// Minimum password length.
	MinLength int64 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"`
	// Minimum length of substrings to check for similarity to vulnerable sequences.
	MatchLength int64 `protobuf:"varint,4,opt,name=match_length,json=matchLength,proto3" json:"match_length,omitempty"`
	// Character classes required in passwords.
	RequiredClasses *PasswordQualityPolicy_RequiredClasses `protobuf:"bytes,5,opt,name=required_classes,json=requiredClasses,proto3" json:"required_classes,omitempty"`
	// Minimum length requirements based on character class diversity.
	// If not specified, these checks are disabled.
	MinLengthByClassSettings *PasswordQualityPolicy_MinLengthByClassSettings `protobuf:"bytes,6,opt,name=min_length_by_class_settings,json=minLengthByClassSettings,proto3" json:"min_length_by_class_settings,omitempty"`
	// Defines password complexity policy.
	//
	// Types that are valid to be assigned to ComplexityPolicy:
	//
	//	*PasswordQualityPolicy_Fixed_
	//	*PasswordQualityPolicy_Smart_
	ComplexityPolicy isPasswordQualityPolicy_ComplexityPolicy `protobuf_oneof:"complexity_policy"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*PasswordQualityPolicy) ProtoMessage() {}

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

func (x *PasswordQualityPolicy) GetAllowSimilar() bool {
	if x != nil {
		return x.AllowSimilar
	}
	return false
}

func (x *PasswordQualityPolicy) GetMaxLength() int64 {
	if x != nil {
		return x.MaxLength
	}
	return 0
}

func (x *PasswordQualityPolicy) GetMinLength() int64 {
	if x != nil {
		return x.MinLength
	}
	return 0
}

func (x *PasswordQualityPolicy) GetMatchLength() int64 {
	if x != nil {
		return x.MatchLength
	}
	return 0
}

func (x *PasswordQualityPolicy) GetRequiredClasses() *PasswordQualityPolicy_RequiredClasses {
	if x != nil {
		return x.RequiredClasses
	}
	return nil
}

func (x *PasswordQualityPolicy) GetMinLengthByClassSettings() *PasswordQualityPolicy_MinLengthByClassSettings {
	if x != nil {
		return x.MinLengthByClassSettings
	}
	return nil
}

func (x *PasswordQualityPolicy) GetComplexityPolicy() isPasswordQualityPolicy_ComplexityPolicy {
	if x != nil {
		return x.ComplexityPolicy
	}
	return nil
}

func (x *PasswordQualityPolicy) GetFixed() *PasswordQualityPolicy_Fixed {
	if x != nil {
		if x, ok := x.ComplexityPolicy.(*PasswordQualityPolicy_Fixed_); ok {
			return x.Fixed
		}
	}
	return nil
}

func (x *PasswordQualityPolicy) GetSmart() *PasswordQualityPolicy_Smart {
	if x != nil {
		if x, ok := x.ComplexityPolicy.(*PasswordQualityPolicy_Smart_); ok {
			return x.Smart
		}
	}
	return nil
}

type isPasswordQualityPolicy_ComplexityPolicy interface {
	isPasswordQualityPolicy_ComplexityPolicy()
}

type PasswordQualityPolicy_Fixed_ struct {
	// Fixed complexity requirements. Exactly one of complexity requirements must be specified.
	Fixed *PasswordQualityPolicy_Fixed `protobuf:"bytes,7,opt,name=fixed,proto3,oneof"`
}

type PasswordQualityPolicy_Smart_ struct {
	// Smart complexity requirements. Exactly one of complexity requirements must be specified.
	Smart *PasswordQualityPolicy_Smart `protobuf:"bytes,8,opt,name=smart,proto3,oneof"`
}

func (*PasswordQualityPolicy_Fixed_) isPasswordQualityPolicy_ComplexityPolicy() {}

func (*PasswordQualityPolicy_Smart_) isPasswordQualityPolicy_ComplexityPolicy() {}

// Policy that defines password lifetime requirements.
type PasswordLifetimePolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Minimum number of days before a password can be changed.
	MinDaysCount int64 `protobuf:"varint,1,opt,name=min_days_count,json=minDaysCount,proto3" json:"min_days_count,omitempty"`
	// Maximum number of days a password remains valid.
	// Zero means passwords never expire.
	MaxDaysCount  int64 `protobuf:"varint,2,opt,name=max_days_count,json=maxDaysCount,proto3" json:"max_days_count,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PasswordLifetimePolicy) ProtoMessage() {}

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

func (x *PasswordLifetimePolicy) GetMinDaysCount() int64 {
	if x != nil {
		return x.MinDaysCount
	}
	return 0
}

func (x *PasswordLifetimePolicy) GetMaxDaysCount() int64 {
	if x != nil {
		return x.MaxDaysCount
	}
	return 0
}

// Policy that defines protection against brute force attacks.
// Zero or empty values disable bruteforce protection.
type BruteforceProtectionPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Time window for counting failed authentication attempts.
	Window *durationpb.Duration `protobuf:"bytes,1,opt,name=window,proto3" json:"window,omitempty"`
	// Duration of the block after too many failed attempts.
	Block *durationpb.Duration `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"`
	// Number of failed attempts allowed within the window before blocking.
	Attempts      int64 `protobuf:"varint,3,opt,name=attempts,proto3" json:"attempts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BruteforceProtectionPolicy) ProtoMessage() {}

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

func (x *BruteforceProtectionPolicy) GetWindow() *durationpb.Duration {
	if x != nil {
		return x.Window
	}
	return nil
}

func (x *BruteforceProtectionPolicy) GetBlock() *durationpb.Duration {
	if x != nil {
		return x.Block
	}
	return nil
}

func (x *BruteforceProtectionPolicy) GetAttempts() int64 {
	if x != nil {
		return x.Attempts
	}
	return 0
}

// DNS record information for domain validation.
type DomainChallenge_DnsRecord struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the DNS record.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Type of the DNS record.
	Type DomainChallenge_DnsRecord_Type `protobuf:"varint,2,opt,name=type,proto3,enum=yandex.cloud.organizationmanager.v1.idp.DomainChallenge_DnsRecord_Type" json:"type,omitempty"`
	// Value of the DNS record.
	Value         string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DomainChallenge_DnsRecord) ProtoMessage() {}

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

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

func (x *DomainChallenge_DnsRecord) GetType() DomainChallenge_DnsRecord_Type {
	if x != nil {
		return x.Type
	}
	return DomainChallenge_DnsRecord_TYPE_UNSPECIFIED
}

func (x *DomainChallenge_DnsRecord) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// Character classes that can be required in passwords.
type PasswordQualityPolicy_RequiredClasses struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether lowercase letters are required.
	Lowers bool `protobuf:"varint,1,opt,name=lowers,proto3" json:"lowers,omitempty"`
	// Whether uppercase letters are required.
	Uppers bool `protobuf:"varint,2,opt,name=uppers,proto3" json:"uppers,omitempty"`
	// Whether digits are required.
	Digits bool `protobuf:"varint,3,opt,name=digits,proto3" json:"digits,omitempty"`
	// Whether special characters are required.
	Specials      bool `protobuf:"varint,4,opt,name=specials,proto3" json:"specials,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PasswordQualityPolicy_RequiredClasses) ProtoMessage() {}

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

func (x *PasswordQualityPolicy_RequiredClasses) GetLowers() bool {
	if x != nil {
		return x.Lowers
	}
	return false
}

func (x *PasswordQualityPolicy_RequiredClasses) GetUppers() bool {
	if x != nil {
		return x.Uppers
	}
	return false
}

func (x *PasswordQualityPolicy_RequiredClasses) GetDigits() bool {
	if x != nil {
		return x.Digits
	}
	return false
}

func (x *PasswordQualityPolicy_RequiredClasses) GetSpecials() bool {
	if x != nil {
		return x.Specials
	}
	return false
}

// Minimum password length requirements based on character class diversity.
type PasswordQualityPolicy_MinLengthByClassSettings struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Minimum length for passwords with one character class.
	One int64 `protobuf:"varint,1,opt,name=one,proto3" json:"one,omitempty"`
	// Minimum length for passwords with two character classes.
	Two int64 `protobuf:"varint,2,opt,name=two,proto3" json:"two,omitempty"`
	// Minimum length for passwords with three character classes.
	Three         int64 `protobuf:"varint,3,opt,name=three,proto3" json:"three,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PasswordQualityPolicy_MinLengthByClassSettings) ProtoMessage() {}

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

func (x *PasswordQualityPolicy_MinLengthByClassSettings) GetOne() int64 {
	if x != nil {
		return x.One
	}
	return 0
}

func (x *PasswordQualityPolicy_MinLengthByClassSettings) GetTwo() int64 {
	if x != nil {
		return x.Two
	}
	return 0
}

func (x *PasswordQualityPolicy_MinLengthByClassSettings) GetThree() int64 {
	if x != nil {
		return x.Three
	}
	return 0
}

// Fixed complexity policy enforces uniform password rules with required character classes and minimum length.
type PasswordQualityPolicy_Fixed struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether lowercase letters are required in the password.
	LowersRequired bool `protobuf:"varint,1,opt,name=lowers_required,json=lowersRequired,proto3" json:"lowers_required,omitempty"`
	// Whether uppercase letters are required in the password.
	UppersRequired bool `protobuf:"varint,2,opt,name=uppers_required,json=uppersRequired,proto3" json:"uppers_required,omitempty"`
	// Whether digits are required in the password.
	DigitsRequired bool `protobuf:"varint,3,opt,name=digits_required,json=digitsRequired,proto3" json:"digits_required,omitempty"`
	// Whether special characters are required in the password.
	SpecialsRequired bool `protobuf:"varint,4,opt,name=specials_required,json=specialsRequired,proto3" json:"specials_required,omitempty"`
	// Minimum length required for all passwords.
	MinLength     int64 `protobuf:"varint,5,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PasswordQualityPolicy_Fixed) ProtoMessage() {}

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

func (x *PasswordQualityPolicy_Fixed) GetLowersRequired() bool {
	if x != nil {
		return x.LowersRequired
	}
	return false
}

func (x *PasswordQualityPolicy_Fixed) GetUppersRequired() bool {
	if x != nil {
		return x.UppersRequired
	}
	return false
}

func (x *PasswordQualityPolicy_Fixed) GetDigitsRequired() bool {
	if x != nil {
		return x.DigitsRequired
	}
	return false
}

func (x *PasswordQualityPolicy_Fixed) GetSpecialsRequired() bool {
	if x != nil {
		return x.SpecialsRequired
	}
	return false
}

func (x *PasswordQualityPolicy_Fixed) GetMinLength() int64 {
	if x != nil {
		return x.MinLength
	}
	return 0
}

// Smart complexity policy applies adaptive requirements based on character class diversity.
// Zero value means passwords with this number of classes are forbidden.
type PasswordQualityPolicy_Smart struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// For passwords with one class of characters
	OneClass int64 `protobuf:"varint,1,opt,name=one_class,json=oneClass,proto3" json:"one_class,omitempty"`
	// For passwords with two classes of characters
	TwoClasses int64 `protobuf:"varint,2,opt,name=two_classes,json=twoClasses,proto3" json:"two_classes,omitempty"`
	// For passwords with three classes of characters
	ThreeClasses int64 `protobuf:"varint,3,opt,name=three_classes,json=threeClasses,proto3" json:"three_classes,omitempty"`
	// For passwords with all four classes of characters
	FourClasses   int64 `protobuf:"varint,4,opt,name=four_classes,json=fourClasses,proto3" json:"four_classes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PasswordQualityPolicy_Smart) ProtoMessage() {}

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

func (x *PasswordQualityPolicy_Smart) GetOneClass() int64 {
	if x != nil {
		return x.OneClass
	}
	return 0
}

func (x *PasswordQualityPolicy_Smart) GetTwoClasses() int64 {
	if x != nil {
		return x.TwoClasses
	}
	return 0
}

func (x *PasswordQualityPolicy_Smart) GetThreeClasses() int64 {
	if x != nil {
		return x.ThreeClasses
	}
	return 0
}

func (x *PasswordQualityPolicy_Smart) GetFourClasses() int64 {
	if x != nil {
		return x.FourClasses
	}
	return 0
}

var File_yandex_cloud_organizationmanager_v1_idp_userpool_proto protoreflect.FileDescriptor

const file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDesc = "" +
	"\n" +
	"6yandex/cloud/organizationmanager/v1/idp/userpool.proto\x12'yandex.cloud.organizationmanager.v1.idp\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\x8e\b\n" +
	"\bUserpool\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12'\n" +
	"\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x04 \x01(\tR\vdescription\x12U\n" +
	"\x06labels\x18\x05 \x03(\v2=.yandex.cloud.organizationmanager.v1.idp.Userpool.LabelsEntryR\x06labels\x129\n" +
	"\n" +
	"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x18\n" +
	"\adomains\x18\b \x03(\tR\adomains\x12P\n" +
	"\x06status\x18\t \x01(\x0e28.yandex.cloud.organizationmanager.v1.idp.Userpool.StatusR\x06status\x12Z\n" +
	"\ruser_settings\x18\n" +
	" \x01(\v25.yandex.cloud.organizationmanager.v1.idp.UserSettingsR\fuserSettings\x12v\n" +
	"\x17password_quality_policy\x18\v \x01(\v2>.yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicyR\x15passwordQualityPolicy\x12y\n" +
	"\x18password_lifetime_policy\x18\f \x01(\v2?.yandex.cloud.organizationmanager.v1.idp.PasswordLifetimePolicyR\x16passwordLifetimePolicy\x12\x85\x01\n" +
	"\x1cbruteforce_protection_policy\x18\r \x01(\v2C.yandex.cloud.organizationmanager.v1.idp.BruteforceProtectionPolicyR\x1abruteforceProtectionPolicy\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"H\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCREATING\x10\x01\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x02\x12\f\n" +
	"\bDELETING\x10\x03\"\xe4\x01\n" +
	"\fUserSettings\x127\n" +
	"\x18allow_edit_self_password\x18\x01 \x01(\bR\x15allowEditSelfPassword\x12/\n" +
	"\x14allow_edit_self_info\x18\x02 \x01(\bR\x11allowEditSelfInfo\x127\n" +
	"\x18allow_edit_self_contacts\x18\x03 \x01(\bR\x15allowEditSelfContacts\x121\n" +
	"\x15allow_edit_self_login\x18\x04 \x01(\bR\x12allowEditSelfLogin\"\x8a\x04\n" +
	"\x06Domain\x12\x16\n" +
	"\x06domain\x18\x01 \x01(\tR\x06domain\x12N\n" +
	"\x06status\x18\x02 \x01(\x0e26.yandex.cloud.organizationmanager.v1.idp.Domain.StatusR\x06status\x12\x1f\n" +
	"\vstatus_code\x18\x03 \x01(\tR\n" +
	"statusCode\x129\n" +
	"\n" +
	"created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12=\n" +
	"\fvalidated_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\vvalidatedAt\x12X\n" +
	"\n" +
	"challenges\x18\a \x03(\v28.yandex.cloud.organizationmanager.v1.idp.DomainChallengeR\n" +
	"challenges\x12/\n" +
	"\x13deletion_protection\x18\b \x01(\bR\x12deletionProtection\"l\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\x14\n" +
	"\x10NEED_TO_VALIDATE\x10\x01\x12\x0e\n" +
	"\n" +
	"VALIDATING\x10\x02\x12\t\n" +
	"\x05VALID\x10\x03\x12\v\n" +
	"\aINVALID\x10\x04\x12\f\n" +
	"\bDELETING\x10\x05J\x04\b\x06\x10\a\"\xef\x05\n" +
	"\x0fDomainChallenge\x129\n" +
	"\n" +
	"created_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12Q\n" +
	"\x04type\x18\x04 \x01(\x0e2=.yandex.cloud.organizationmanager.v1.idp.DomainChallenge.TypeR\x04type\x12W\n" +
	"\x06status\x18\x05 \x01(\x0e2?.yandex.cloud.organizationmanager.v1.idp.DomainChallenge.StatusR\x06status\x12i\n" +
	"\rdns_challenge\x18\x06 \x01(\v2B.yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecordH\x00R\fdnsChallenge\x1a\xb9\x01\n" +
	"\tDnsRecord\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12[\n" +
	"\x04type\x18\x02 \x01(\x0e2G.yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord.TypeR\x04type\x12\x14\n" +
	"\x05value\x18\x03 \x01(\tR\x05value\"%\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\a\n" +
	"\x03TXT\x10\x01\")\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aDNS_TXT\x10\x01\"U\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aPENDING\x10\x01\x12\x0e\n" +
	"\n" +
	"PROCESSING\x10\x02\x12\t\n" +
	"\x05VALID\x10\x03\x12\v\n" +
	"\aINVALID\x10\x04B\v\n" +
	"\tchallengeJ\x04\b\x03\x10\x04\"\x94\n" +
	"\n" +
	"\x15PasswordQualityPolicy\x12#\n" +
	"\rallow_similar\x18\x01 \x01(\bR\fallowSimilar\x12&\n" +
	"\n" +
	"max_length\x18\x02 \x01(\x03B\a\xfa\xc71\x03>=0R\tmaxLength\x12&\n" +
	"\n" +
	"min_length\x18\x03 \x01(\x03B\a\xfa\xc71\x03>=0R\tminLength\x12*\n" +
	"\fmatch_length\x18\x04 \x01(\x03B\a\xfa\xc71\x03>=0R\vmatchLength\x12y\n" +
	"\x10required_classes\x18\x05 \x01(\v2N.yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.RequiredClassesR\x0frequiredClasses\x12\x97\x01\n" +
	"\x1cmin_length_by_class_settings\x18\x06 \x01(\v2W.yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.MinLengthByClassSettingsR\x18minLengthByClassSettings\x12\\\n" +
	"\x05fixed\x18\a \x01(\v2D.yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.FixedH\x00R\x05fixed\x12\\\n" +
	"\x05smart\x18\b \x01(\v2D.yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.SmartH\x00R\x05smart\x1au\n" +
	"\x0fRequiredClasses\x12\x16\n" +
	"\x06lowers\x18\x01 \x01(\bR\x06lowers\x12\x16\n" +
	"\x06uppers\x18\x02 \x01(\bR\x06uppers\x12\x16\n" +
	"\x06digits\x18\x03 \x01(\bR\x06digits\x12\x1a\n" +
	"\bspecials\x18\x04 \x01(\bR\bspecials\x1ao\n" +
	"\x18MinLengthByClassSettings\x12\x19\n" +
	"\x03one\x18\x01 \x01(\x03B\a\xfa\xc71\x03>=0R\x03one\x12\x19\n" +
	"\x03two\x18\x02 \x01(\x03B\a\xfa\xc71\x03>=0R\x03two\x12\x1d\n" +
	"\x05three\x18\x03 \x01(\x03B\a\xfa\xc71\x03>=0R\x05three\x1a\xd7\x01\n" +
	"\x05Fixed\x12'\n" +
	"\x0flowers_required\x18\x01 \x01(\bR\x0elowersRequired\x12'\n" +
	"\x0fuppers_required\x18\x02 \x01(\bR\x0euppersRequired\x12'\n" +
	"\x0fdigits_required\x18\x03 \x01(\bR\x0edigitsRequired\x12+\n" +
	"\x11specials_required\x18\x04 \x01(\bR\x10specialsRequired\x12&\n" +
	"\n" +
	"min_length\x18\x05 \x01(\x03B\a\xfa\xc71\x03>=0R\tminLength\x1a\xb1\x01\n" +
	"\x05Smart\x12$\n" +
	"\tone_class\x18\x01 \x01(\x03B\a\xfa\xc71\x03>=0R\boneClass\x12(\n" +
	"\vtwo_classes\x18\x02 \x01(\x03B\a\xfa\xc71\x03>=0R\n" +
	"twoClasses\x12,\n" +
	"\rthree_classes\x18\x03 \x01(\x03B\a\xfa\xc71\x03>=0R\fthreeClasses\x12*\n" +
	"\ffour_classes\x18\x04 \x01(\x03B\a\xfa\xc71\x03>=0R\vfourClassesB\x13\n" +
	"\x11complexity_policy\"v\n" +
	"\x16PasswordLifetimePolicy\x12-\n" +
	"\x0emin_days_count\x18\x01 \x01(\x03B\a\xfa\xc71\x03>=0R\fminDaysCount\x12-\n" +
	"\x0emax_days_count\x18\x02 \x01(\x03B\a\xfa\xc71\x03>=0R\fmaxDaysCount\"\xa4\x01\n" +
	"\x1aBruteforceProtectionPolicy\x121\n" +
	"\x06window\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x06window\x12/\n" +
	"\x05block\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x05block\x12\"\n" +
	"\battempts\x18\x03 \x01(\x03B\x06\xfa\xc71\x02>0R\battemptsB~\n" +
	"+yandex.cloud.api.organizationmanager.v1.idpZOgithub.com/yandex-cloud/go-genproto/yandex/cloud/organizationmanager/v1/idp;idpb\x06proto3"

var (
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescOnce sync.Once
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescData []byte
)

func file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescGZIP() []byte {
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDesc), len(file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDesc)))
	})
	return file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDescData
}

var file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_goTypes = []any{
	(Userpool_Status)(0),                                   // 0: yandex.cloud.organizationmanager.v1.idp.Userpool.Status
	(Domain_Status)(0),                                     // 1: yandex.cloud.organizationmanager.v1.idp.Domain.Status
	(DomainChallenge_Type)(0),                              // 2: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.Type
	(DomainChallenge_Status)(0),                            // 3: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.Status
	(DomainChallenge_DnsRecord_Type)(0),                    // 4: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord.Type
	(*Userpool)(nil),                                       // 5: yandex.cloud.organizationmanager.v1.idp.Userpool
	(*UserSettings)(nil),                                   // 6: yandex.cloud.organizationmanager.v1.idp.UserSettings
	(*Domain)(nil),                                         // 7: yandex.cloud.organizationmanager.v1.idp.Domain
	(*DomainChallenge)(nil),                                // 8: yandex.cloud.organizationmanager.v1.idp.DomainChallenge
	(*PasswordQualityPolicy)(nil),                          // 9: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy
	(*PasswordLifetimePolicy)(nil),                         // 10: yandex.cloud.organizationmanager.v1.idp.PasswordLifetimePolicy
	(*BruteforceProtectionPolicy)(nil),                     // 11: yandex.cloud.organizationmanager.v1.idp.BruteforceProtectionPolicy
	nil,                                                    // 12: yandex.cloud.organizationmanager.v1.idp.Userpool.LabelsEntry
	(*DomainChallenge_DnsRecord)(nil),                      // 13: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord
	(*PasswordQualityPolicy_RequiredClasses)(nil),          // 14: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.RequiredClasses
	(*PasswordQualityPolicy_MinLengthByClassSettings)(nil), // 15: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.MinLengthByClassSettings
	(*PasswordQualityPolicy_Fixed)(nil),                    // 16: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.Fixed
	(*PasswordQualityPolicy_Smart)(nil),                    // 17: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.Smart
	(*timestamppb.Timestamp)(nil),                          // 18: google.protobuf.Timestamp
	(*durationpb.Duration)(nil),                            // 19: google.protobuf.Duration
}
var file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_depIdxs = []int32{
	12, // 0: yandex.cloud.organizationmanager.v1.idp.Userpool.labels:type_name -> yandex.cloud.organizationmanager.v1.idp.Userpool.LabelsEntry
	18, // 1: yandex.cloud.organizationmanager.v1.idp.Userpool.created_at:type_name -> google.protobuf.Timestamp
	18, // 2: yandex.cloud.organizationmanager.v1.idp.Userpool.updated_at:type_name -> google.protobuf.Timestamp
	0,  // 3: yandex.cloud.organizationmanager.v1.idp.Userpool.status:type_name -> yandex.cloud.organizationmanager.v1.idp.Userpool.Status
	6,  // 4: yandex.cloud.organizationmanager.v1.idp.Userpool.user_settings:type_name -> yandex.cloud.organizationmanager.v1.idp.UserSettings
	9,  // 5: yandex.cloud.organizationmanager.v1.idp.Userpool.password_quality_policy:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy
	10, // 6: yandex.cloud.organizationmanager.v1.idp.Userpool.password_lifetime_policy:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordLifetimePolicy
	11, // 7: yandex.cloud.organizationmanager.v1.idp.Userpool.bruteforce_protection_policy:type_name -> yandex.cloud.organizationmanager.v1.idp.BruteforceProtectionPolicy
	1,  // 8: yandex.cloud.organizationmanager.v1.idp.Domain.status:type_name -> yandex.cloud.organizationmanager.v1.idp.Domain.Status
	18, // 9: yandex.cloud.organizationmanager.v1.idp.Domain.created_at:type_name -> google.protobuf.Timestamp
	18, // 10: yandex.cloud.organizationmanager.v1.idp.Domain.validated_at:type_name -> google.protobuf.Timestamp
	8,  // 11: yandex.cloud.organizationmanager.v1.idp.Domain.challenges:type_name -> yandex.cloud.organizationmanager.v1.idp.DomainChallenge
	18, // 12: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.created_at:type_name -> google.protobuf.Timestamp
	18, // 13: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.updated_at:type_name -> google.protobuf.Timestamp
	2,  // 14: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.type:type_name -> yandex.cloud.organizationmanager.v1.idp.DomainChallenge.Type
	3,  // 15: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.status:type_name -> yandex.cloud.organizationmanager.v1.idp.DomainChallenge.Status
	13, // 16: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.dns_challenge:type_name -> yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord
	14, // 17: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.required_classes:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.RequiredClasses
	15, // 18: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.min_length_by_class_settings:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.MinLengthByClassSettings
	16, // 19: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.fixed:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.Fixed
	17, // 20: yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.smart:type_name -> yandex.cloud.organizationmanager.v1.idp.PasswordQualityPolicy.Smart
	19, // 21: yandex.cloud.organizationmanager.v1.idp.BruteforceProtectionPolicy.window:type_name -> google.protobuf.Duration
	19, // 22: yandex.cloud.organizationmanager.v1.idp.BruteforceProtectionPolicy.block:type_name -> google.protobuf.Duration
	4,  // 23: yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord.type:type_name -> yandex.cloud.organizationmanager.v1.idp.DomainChallenge.DnsRecord.Type
	24, // [24:24] is the sub-list for method output_type
	24, // [24:24] is the sub-list for method input_type
	24, // [24:24] is the sub-list for extension type_name
	24, // [24:24] is the sub-list for extension extendee
	0,  // [0:24] is the sub-list for field type_name
}

func init() { file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_init() }
func file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_init() {
	if File_yandex_cloud_organizationmanager_v1_idp_userpool_proto != nil {
		return
	}
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_msgTypes[3].OneofWrappers = []any{
		(*DomainChallenge_DnsChallenge)(nil),
	}
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_msgTypes[4].OneofWrappers = []any{
		(*PasswordQualityPolicy_Fixed_)(nil),
		(*PasswordQualityPolicy_Smart_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDesc), len(file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_rawDesc)),
			NumEnums:      5,
			NumMessages:   13,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_msgTypes,
	}.Build()
	File_yandex_cloud_organizationmanager_v1_idp_userpool_proto = out.File
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_goTypes = nil
	file_yandex_cloud_organizationmanager_v1_idp_userpool_proto_depIdxs = nil
}
