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

package idp

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 user in the Identity Provider system.
type User_Status int32

const (
	// The status is not specified.
	User_STATUS_UNSPECIFIED User_Status = 0
	// The user is in the process of being created.
	User_CREATING User_Status = 4
	// The user is active and can authenticate.
	// Active users have full access to the system according to their permissions.
	User_ACTIVE User_Status = 1
	// The user is suspended and cannot authenticate.
	// Suspended users retain their data but cannot access the system.
	User_SUSPENDED User_Status = 2
	// The user is in the process of being deleted.
	// This is a transitional state before the user is completely removed from the system.
	User_DELETING User_Status = 3
)

// Enum value maps for User_Status.
var (
	User_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		4: "CREATING",
		1: "ACTIVE",
		2: "SUSPENDED",
		3: "DELETING",
	}
	User_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"CREATING":           4,
		"ACTIVE":             1,
		"SUSPENDED":          2,
		"DELETING":           3,
	}
)

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

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

func (User_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_organizationmanager_v1_idp_user_proto_enumTypes[0].Descriptor()
}

func (User_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_organizationmanager_v1_idp_user_proto_enumTypes[0]
}

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

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

// A user in the Identity Provider system.
//
// Users are created within a userpool and can authenticate to access cloud resources.
// Each user has a unique identifier, credentials, and profile information.
type User struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier of the user.
	// This ID is generated automatically when the user is created.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// ID of the userpool this user belongs to.
	// To get the userpool ID, make a [UserpoolService.List] request.
	UserpoolId string `protobuf:"bytes,2,opt,name=userpool_id,json=userpoolId,proto3" json:"userpool_id,omitempty"`
	// Current status of the user.
	// Determines whether the user can authenticate and access the system.
	Status User_Status `protobuf:"varint,3,opt,name=status,proto3,enum=yandex.cloud.organizationmanager.v1.idp.User_Status" json:"status,omitempty"`
	// Username used for authentication.
	// Usually in the format of an email address.
	Username string `protobuf:"bytes,4,opt,name=username,proto3" json:"username,omitempty"`
	// User's full name (display name).
	// This is typically shown in the UI and used for identification purposes.
	FullName string `protobuf:"bytes,6,opt,name=full_name,json=fullName,proto3" json:"full_name,omitempty"`
	// User's first name.
	// Part of the user's profile information.
	GivenName string `protobuf:"bytes,7,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"`
	// User's last name.
	// Part of the user's profile information.
	FamilyName string `protobuf:"bytes,8,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
	// User's email address.
	Email string `protobuf:"bytes,9,opt,name=email,proto3" json:"email,omitempty"`
	// User's phone number.
	PhoneNumber string `protobuf:"bytes,10,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// Timestamp when the user was created.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Timestamp when the user was last updated.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// External identifier for federation with external identity systems.
	// This ID can be used to link this user with an account in an external system.
	ExternalId    string `protobuf:"bytes,13,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*User) ProtoMessage() {}

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

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

func (x *User) GetUserpoolId() string {
	if x != nil {
		return x.UserpoolId
	}
	return ""
}

func (x *User) GetStatus() User_Status {
	if x != nil {
		return x.Status
	}
	return User_STATUS_UNSPECIFIED
}

func (x *User) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *User) GetFullName() string {
	if x != nil {
		return x.FullName
	}
	return ""
}

func (x *User) GetGivenName() string {
	if x != nil {
		return x.GivenName
	}
	return ""
}

func (x *User) GetFamilyName() string {
	if x != nil {
		return x.FamilyName
	}
	return ""
}

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

func (x *User) GetPhoneNumber() string {
	if x != nil {
		return x.PhoneNumber
	}
	return ""
}

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

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

func (x *User) GetExternalId() string {
	if x != nil {
		return x.ExternalId
	}
	return ""
}

var File_yandex_cloud_organizationmanager_v1_idp_user_proto protoreflect.FileDescriptor

const file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDesc = "" +
	"\n" +
	"2yandex/cloud/organizationmanager/v1/idp/user.proto\x12'yandex.cloud.organizationmanager.v1.idp\x1a\x1fgoogle/protobuf/timestamp.proto\"\xad\x04\n" +
	"\x04User\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n" +
	"\vuserpool_id\x18\x02 \x01(\tR\n" +
	"userpoolId\x12L\n" +
	"\x06status\x18\x03 \x01(\x0e24.yandex.cloud.organizationmanager.v1.idp.User.StatusR\x06status\x12\x1a\n" +
	"\busername\x18\x04 \x01(\tR\busername\x12\x1b\n" +
	"\tfull_name\x18\x06 \x01(\tR\bfullName\x12\x1d\n" +
	"\n" +
	"given_name\x18\a \x01(\tR\tgivenName\x12\x1f\n" +
	"\vfamily_name\x18\b \x01(\tR\n" +
	"familyName\x12\x14\n" +
	"\x05email\x18\t \x01(\tR\x05email\x12!\n" +
	"\fphone_number\x18\n" +
	" \x01(\tR\vphoneNumber\x129\n" +
	"\n" +
	"created_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1f\n" +
	"\vexternal_id\x18\r \x01(\tR\n" +
	"externalId\"W\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCREATING\x10\x04\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x01\x12\r\n" +
	"\tSUSPENDED\x10\x02\x12\f\n" +
	"\bDELETING\x10\x03J\x04\b\x05\x10\x06B~\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_user_proto_rawDescOnce sync.Once
	file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDescData []byte
)

func file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDescGZIP() []byte {
	file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDesc), len(file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDesc)))
	})
	return file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDescData
}

var file_yandex_cloud_organizationmanager_v1_idp_user_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_yandex_cloud_organizationmanager_v1_idp_user_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_yandex_cloud_organizationmanager_v1_idp_user_proto_goTypes = []any{
	(User_Status)(0),              // 0: yandex.cloud.organizationmanager.v1.idp.User.Status
	(*User)(nil),                  // 1: yandex.cloud.organizationmanager.v1.idp.User
	(*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp
}
var file_yandex_cloud_organizationmanager_v1_idp_user_proto_depIdxs = []int32{
	0, // 0: yandex.cloud.organizationmanager.v1.idp.User.status:type_name -> yandex.cloud.organizationmanager.v1.idp.User.Status
	2, // 1: yandex.cloud.organizationmanager.v1.idp.User.created_at:type_name -> google.protobuf.Timestamp
	2, // 2: yandex.cloud.organizationmanager.v1.idp.User.updated_at:type_name -> google.protobuf.Timestamp
	3, // [3:3] is the sub-list for method output_type
	3, // [3:3] is the sub-list for method input_type
	3, // [3:3] is the sub-list for extension type_name
	3, // [3:3] is the sub-list for extension extendee
	0, // [0:3] is the sub-list for field type_name
}

func init() { file_yandex_cloud_organizationmanager_v1_idp_user_proto_init() }
func file_yandex_cloud_organizationmanager_v1_idp_user_proto_init() {
	if File_yandex_cloud_organizationmanager_v1_idp_user_proto != nil {
		return
	}
	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_user_proto_rawDesc), len(file_yandex_cloud_organizationmanager_v1_idp_user_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_organizationmanager_v1_idp_user_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_organizationmanager_v1_idp_user_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_organizationmanager_v1_idp_user_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_organizationmanager_v1_idp_user_proto_msgTypes,
	}.Build()
	File_yandex_cloud_organizationmanager_v1_idp_user_proto = out.File
	file_yandex_cloud_organizationmanager_v1_idp_user_proto_goTypes = nil
	file_yandex_cloud_organizationmanager_v1_idp_user_proto_depIdxs = nil
}
