// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.9
// 	protoc        (unknown)
// source: powerx/iam/v1/member.proto

package iamv1

import (
	v1 "github.com/ArtisanCloud/PowerX/api/grpc/gen/go/common/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	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)
)

// -------- 枚举/视图 --------
type MemberStatus int32

const (
	MemberStatus_MEMBER_STATUS_UNSPECIFIED MemberStatus = 0
	MemberStatus_MEMBER_STATUS_ACTIVE      MemberStatus = 1
	MemberStatus_MEMBER_STATUS_INACTIVE    MemberStatus = 2
	MemberStatus_MEMBER_STATUS_SUSPENDED   MemberStatus = 3
)

// Enum value maps for MemberStatus.
var (
	MemberStatus_name = map[int32]string{
		0: "MEMBER_STATUS_UNSPECIFIED",
		1: "MEMBER_STATUS_ACTIVE",
		2: "MEMBER_STATUS_INACTIVE",
		3: "MEMBER_STATUS_SUSPENDED",
	}
	MemberStatus_value = map[string]int32{
		"MEMBER_STATUS_UNSPECIFIED": 0,
		"MEMBER_STATUS_ACTIVE":      1,
		"MEMBER_STATUS_INACTIVE":    2,
		"MEMBER_STATUS_SUSPENDED":   3,
	}
)

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

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

func (MemberStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_powerx_iam_v1_member_proto_enumTypes[0].Descriptor()
}

func (MemberStatus) Type() protoreflect.EnumType {
	return &file_powerx_iam_v1_member_proto_enumTypes[0]
}

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

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

type MemberView int32

const (
	MemberView_MEMBER_VIEW_UNSPECIFIED MemberView = 0
	MemberView_MEMBER_VIEW_BASIC       MemberView = 1 // ref/username/display_name/avatar/status
	MemberView_MEMBER_VIEW_PROFILE     MemberView = 2 // + email/phone/department/team_ids
)

// Enum value maps for MemberView.
var (
	MemberView_name = map[int32]string{
		0: "MEMBER_VIEW_UNSPECIFIED",
		1: "MEMBER_VIEW_BASIC",
		2: "MEMBER_VIEW_PROFILE",
	}
	MemberView_value = map[string]int32{
		"MEMBER_VIEW_UNSPECIFIED": 0,
		"MEMBER_VIEW_BASIC":       1,
		"MEMBER_VIEW_PROFILE":     2,
	}
)

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

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

func (MemberView) Descriptor() protoreflect.EnumDescriptor {
	return file_powerx_iam_v1_member_proto_enumTypes[1].Descriptor()
}

func (MemberView) Type() protoreflect.EnumType {
	return &file_powerx_iam_v1_member_proto_enumTypes[1]
}

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

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

// -------- 模型 --------
type Member struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	Ref         *v1.ResourceRef        `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"` // domain="iam", entity="member"
	UserId      uint64                 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	Username    string                 `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	DisplayName string                 `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	AvatarUrl   string                 `protobuf:"bytes,5,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	Status      MemberStatus           `protobuf:"varint,6,opt,name=status,proto3,enum=powerx.iam.v1.MemberStatus" json:"status,omitempty"`
	// PROFILE 视图返回
	Email         string                 `protobuf:"bytes,10,opt,name=email,proto3" json:"email,omitempty"`
	Phone         string                 `protobuf:"bytes,11,opt,name=phone,proto3" json:"phone,omitempty"`
	DepartmentId  uint64                 `protobuf:"varint,12,opt,name=department_id,json=departmentId,proto3" json:"department_id,omitempty"`
	TeamIds       []uint64               `protobuf:"varint,13,rep,packed,name=team_ids,json=teamIds,proto3" json:"team_ids,omitempty"`
	Labels        map[string]string      `protobuf:"bytes,20,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt     *timestamppb.Timestamp `protobuf:"bytes,22,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Member) ProtoMessage() {}

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

func (x *Member) GetRef() *v1.ResourceRef {
	if x != nil {
		return x.Ref
	}
	return nil
}

func (x *Member) GetUserId() uint64 {
	if x != nil {
		return x.UserId
	}
	return 0
}

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

func (x *Member) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *Member) GetAvatarUrl() string {
	if x != nil {
		return x.AvatarUrl
	}
	return ""
}

func (x *Member) GetStatus() MemberStatus {
	if x != nil {
		return x.Status
	}
	return MemberStatus_MEMBER_STATUS_UNSPECIFIED
}

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

func (x *Member) GetPhone() string {
	if x != nil {
		return x.Phone
	}
	return ""
}

func (x *Member) GetDepartmentId() uint64 {
	if x != nil {
		return x.DepartmentId
	}
	return 0
}

func (x *Member) GetTeamIds() []uint64 {
	if x != nil {
		return x.TeamIds
	}
	return nil
}

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

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

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

// -------- 请求/响应 --------
type GetMemberRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Ctx   *v1.RequestContext     `protobuf:"bytes,1,opt,name=ctx,proto3" json:"ctx,omitempty"`
	// Types that are valid to be assigned to Selector:
	//
	//	*GetMemberRequest_Id
	//	*GetMemberRequest_Prn
	//	*GetMemberRequest_Username
	Selector      isGetMemberRequest_Selector `protobuf_oneof:"selector"`
	View          MemberView                  `protobuf:"varint,5,opt,name=view,proto3,enum=powerx.iam.v1.MemberView" json:"view,omitempty"`
	FieldMask     *fieldmaskpb.FieldMask      `protobuf:"bytes,6,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` // 可选：细粒度字段投影
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetMemberRequest) ProtoMessage() {}

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

func (x *GetMemberRequest) GetCtx() *v1.RequestContext {
	if x != nil {
		return x.Ctx
	}
	return nil
}

func (x *GetMemberRequest) GetSelector() isGetMemberRequest_Selector {
	if x != nil {
		return x.Selector
	}
	return nil
}

func (x *GetMemberRequest) GetId() uint64 {
	if x != nil {
		if x, ok := x.Selector.(*GetMemberRequest_Id); ok {
			return x.Id
		}
	}
	return 0
}

func (x *GetMemberRequest) GetPrn() string {
	if x != nil {
		if x, ok := x.Selector.(*GetMemberRequest_Prn); ok {
			return x.Prn
		}
	}
	return ""
}

func (x *GetMemberRequest) GetUsername() string {
	if x != nil {
		if x, ok := x.Selector.(*GetMemberRequest_Username); ok {
			return x.Username
		}
	}
	return ""
}

func (x *GetMemberRequest) GetView() MemberView {
	if x != nil {
		return x.View
	}
	return MemberView_MEMBER_VIEW_UNSPECIFIED
}

func (x *GetMemberRequest) GetFieldMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.FieldMask
	}
	return nil
}

type isGetMemberRequest_Selector interface {
	isGetMemberRequest_Selector()
}

type GetMemberRequest_Id struct {
	Id uint64 `protobuf:"varint,2,opt,name=id,proto3,oneof"` // 内部ID（推荐）
}

type GetMemberRequest_Prn struct {
	Prn string `protobuf:"bytes,3,opt,name=prn,proto3,oneof"` // prn:powerx:...
}

type GetMemberRequest_Username struct {
	Username string `protobuf:"bytes,4,opt,name=username,proto3,oneof"` // 仅限同租户唯一
}

func (*GetMemberRequest_Id) isGetMemberRequest_Selector() {}

func (*GetMemberRequest_Prn) isGetMemberRequest_Selector() {}

func (*GetMemberRequest_Username) isGetMemberRequest_Selector() {}

type BatchGetMembersRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ctx           *v1.RequestContext     `protobuf:"bytes,1,opt,name=ctx,proto3" json:"ctx,omitempty"`
	Ids           []uint64               `protobuf:"varint,2,rep,packed,name=ids,proto3" json:"ids,omitempty"`
	View          MemberView             `protobuf:"varint,3,opt,name=view,proto3,enum=powerx.iam.v1.MemberView" json:"view,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BatchGetMembersRequest) ProtoMessage() {}

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

func (x *BatchGetMembersRequest) GetCtx() *v1.RequestContext {
	if x != nil {
		return x.Ctx
	}
	return nil
}

func (x *BatchGetMembersRequest) GetIds() []uint64 {
	if x != nil {
		return x.Ids
	}
	return nil
}

func (x *BatchGetMembersRequest) GetView() MemberView {
	if x != nil {
		return x.View
	}
	return MemberView_MEMBER_VIEW_UNSPECIFIED
}

type ListMembersRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Ctx   *v1.RequestContext     `protobuf:"bytes,1,opt,name=ctx,proto3" json:"ctx,omitempty"`
	// 过滤
	Keyword      string       `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword,omitempty"` // 命中 username/display_name/email/phone（ci）
	Status       MemberStatus `protobuf:"varint,3,opt,name=status,proto3,enum=powerx.iam.v1.MemberStatus" json:"status,omitempty"`
	DepartmentId uint64       `protobuf:"varint,4,opt,name=department_id,json=departmentId,proto3" json:"department_id,omitempty"` // 限定部门
	TeamId       uint64       `protobuf:"varint,5,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"`                   // 限定团队（通过 pivot 关联）
	Ids          []uint64     `protobuf:"varint,6,rep,packed,name=ids,proto3" json:"ids,omitempty"`                                // 指定集合（保持顺序返回）
	// 分页
	Page *v1.PageRequest `protobuf:"bytes,10,opt,name=page,proto3" json:"page,omitempty"`
	// 排序：created_at / username / display_name；默认为 created_at DESC
	OrderBy       string     `protobuf:"bytes,11,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	Asc           bool       `protobuf:"varint,12,opt,name=asc,proto3" json:"asc,omitempty"`
	View          MemberView `protobuf:"varint,20,opt,name=view,proto3,enum=powerx.iam.v1.MemberView" json:"view,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListMembersRequest) ProtoMessage() {}

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

func (x *ListMembersRequest) GetCtx() *v1.RequestContext {
	if x != nil {
		return x.Ctx
	}
	return nil
}

func (x *ListMembersRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *ListMembersRequest) GetStatus() MemberStatus {
	if x != nil {
		return x.Status
	}
	return MemberStatus_MEMBER_STATUS_UNSPECIFIED
}

func (x *ListMembersRequest) GetDepartmentId() uint64 {
	if x != nil {
		return x.DepartmentId
	}
	return 0
}

func (x *ListMembersRequest) GetTeamId() uint64 {
	if x != nil {
		return x.TeamId
	}
	return 0
}

func (x *ListMembersRequest) GetIds() []uint64 {
	if x != nil {
		return x.Ids
	}
	return nil
}

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

func (x *ListMembersRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

func (x *ListMembersRequest) GetAsc() bool {
	if x != nil {
		return x.Asc
	}
	return false
}

func (x *ListMembersRequest) GetView() MemberView {
	if x != nil {
		return x.View
	}
	return MemberView_MEMBER_VIEW_UNSPECIFIED
}

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

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

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

func (*GetMemberData) ProtoMessage() {}

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

func (x *GetMemberData) GetMember() *Member {
	if x != nil {
		return x.Member
	}
	return nil
}

type GetMemberResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Meta          *v1.ResponseMeta       `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
	Data          *GetMemberData         `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetMemberResponse) ProtoMessage() {}

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

func (x *GetMemberResponse) GetMeta() *v1.ResponseMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *GetMemberResponse) GetData() *GetMemberData {
	if x != nil {
		return x.Data
	}
	return nil
}

type BatchGetMembersData struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Members       []*Member              `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BatchGetMembersData) ProtoMessage() {}

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

func (x *BatchGetMembersData) GetMembers() []*Member {
	if x != nil {
		return x.Members
	}
	return nil
}

type BatchGetMembersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Meta          *v1.ResponseMeta       `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
	Data          *BatchGetMembersData   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BatchGetMembersResponse) ProtoMessage() {}

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

func (x *BatchGetMembersResponse) GetMeta() *v1.ResponseMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *BatchGetMembersResponse) GetData() *BatchGetMembersData {
	if x != nil {
		return x.Data
	}
	return nil
}

type ListMembersData struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Items         []*Member              `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	Page          *v1.PageResponse       `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"` // next_page_token/total（可选 total）
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListMembersData) ProtoMessage() {}

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

func (x *ListMembersData) GetItems() []*Member {
	if x != nil {
		return x.Items
	}
	return nil
}

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

type ListMembersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Meta          *v1.ResponseMeta       `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
	Data          *ListMembersData       `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListMembersResponse) ProtoMessage() {}

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

func (x *ListMembersResponse) GetMeta() *v1.ResponseMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *ListMembersResponse) GetData() *ListMembersData {
	if x != nil {
		return x.Data
	}
	return nil
}

var File_powerx_iam_v1_member_proto protoreflect.FileDescriptor

const file_powerx_iam_v1_member_proto_rawDesc = "" +
	"\n" +
	"\x1apowerx/iam/v1/member.proto\x12\rpowerx.iam.v1\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17common/v1/context.proto\x1a\x18common/v1/resource.proto\x1a\x1acommon/v1/pagination.proto\x1a\x18common/v1/response.proto\"\xb6\x04\n" +
	"\x06Member\x12(\n" +
	"\x03ref\x18\x01 \x01(\v2\x16.common.v1.ResourceRefR\x03ref\x12\x17\n" +
	"\auser_id\x18\x02 \x01(\x04R\x06userId\x12\x1a\n" +
	"\busername\x18\x03 \x01(\tR\busername\x12!\n" +
	"\fdisplay_name\x18\x04 \x01(\tR\vdisplayName\x12\x1d\n" +
	"\n" +
	"avatar_url\x18\x05 \x01(\tR\tavatarUrl\x123\n" +
	"\x06status\x18\x06 \x01(\x0e2\x1b.powerx.iam.v1.MemberStatusR\x06status\x12\x14\n" +
	"\x05email\x18\n" +
	" \x01(\tR\x05email\x12\x14\n" +
	"\x05phone\x18\v \x01(\tR\x05phone\x12#\n" +
	"\rdepartment_id\x18\f \x01(\x04R\fdepartmentId\x12\x19\n" +
	"\bteam_ids\x18\r \x03(\x04R\ateamIds\x129\n" +
	"\x06labels\x18\x14 \x03(\v2!.powerx.iam.v1.Member.LabelsEntryR\x06labels\x129\n" +
	"\n" +
	"created_at\x18\x15 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\x16 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xf9\x01\n" +
	"\x10GetMemberRequest\x12+\n" +
	"\x03ctx\x18\x01 \x01(\v2\x19.common.v1.RequestContextR\x03ctx\x12\x10\n" +
	"\x02id\x18\x02 \x01(\x04H\x00R\x02id\x12\x12\n" +
	"\x03prn\x18\x03 \x01(\tH\x00R\x03prn\x12\x1c\n" +
	"\busername\x18\x04 \x01(\tH\x00R\busername\x12-\n" +
	"\x04view\x18\x05 \x01(\x0e2\x19.powerx.iam.v1.MemberViewR\x04view\x129\n" +
	"\n" +
	"field_mask\x18\x06 \x01(\v2\x1a.google.protobuf.FieldMaskR\tfieldMaskB\n" +
	"\n" +
	"\bselector\"\x86\x01\n" +
	"\x16BatchGetMembersRequest\x12+\n" +
	"\x03ctx\x18\x01 \x01(\v2\x19.common.v1.RequestContextR\x03ctx\x12\x10\n" +
	"\x03ids\x18\x02 \x03(\x04R\x03ids\x12-\n" +
	"\x04view\x18\x03 \x01(\x0e2\x19.powerx.iam.v1.MemberViewR\x04view\"\xe8\x02\n" +
	"\x12ListMembersRequest\x12+\n" +
	"\x03ctx\x18\x01 \x01(\v2\x19.common.v1.RequestContextR\x03ctx\x12\x18\n" +
	"\akeyword\x18\x02 \x01(\tR\akeyword\x123\n" +
	"\x06status\x18\x03 \x01(\x0e2\x1b.powerx.iam.v1.MemberStatusR\x06status\x12#\n" +
	"\rdepartment_id\x18\x04 \x01(\x04R\fdepartmentId\x12\x17\n" +
	"\ateam_id\x18\x05 \x01(\x04R\x06teamId\x12\x10\n" +
	"\x03ids\x18\x06 \x03(\x04R\x03ids\x12*\n" +
	"\x04page\x18\n" +
	" \x01(\v2\x16.common.v1.PageRequestR\x04page\x12\x19\n" +
	"\border_by\x18\v \x01(\tR\aorderBy\x12\x10\n" +
	"\x03asc\x18\f \x01(\bR\x03asc\x12-\n" +
	"\x04view\x18\x14 \x01(\x0e2\x19.powerx.iam.v1.MemberViewR\x04view\">\n" +
	"\rGetMemberData\x12-\n" +
	"\x06member\x18\x01 \x01(\v2\x15.powerx.iam.v1.MemberR\x06member\"r\n" +
	"\x11GetMemberResponse\x12+\n" +
	"\x04meta\x18\x01 \x01(\v2\x17.common.v1.ResponseMetaR\x04meta\x120\n" +
	"\x04data\x18\x02 \x01(\v2\x1c.powerx.iam.v1.GetMemberDataR\x04data\"F\n" +
	"\x13BatchGetMembersData\x12/\n" +
	"\amembers\x18\x01 \x03(\v2\x15.powerx.iam.v1.MemberR\amembers\"~\n" +
	"\x17BatchGetMembersResponse\x12+\n" +
	"\x04meta\x18\x01 \x01(\v2\x17.common.v1.ResponseMetaR\x04meta\x126\n" +
	"\x04data\x18\x02 \x01(\v2\".powerx.iam.v1.BatchGetMembersDataR\x04data\"k\n" +
	"\x0fListMembersData\x12+\n" +
	"\x05items\x18\x01 \x03(\v2\x15.powerx.iam.v1.MemberR\x05items\x12+\n" +
	"\x04page\x18\x02 \x01(\v2\x17.common.v1.PageResponseR\x04page\"v\n" +
	"\x13ListMembersResponse\x12+\n" +
	"\x04meta\x18\x01 \x01(\v2\x17.common.v1.ResponseMetaR\x04meta\x122\n" +
	"\x04data\x18\x02 \x01(\v2\x1e.powerx.iam.v1.ListMembersDataR\x04data*\x80\x01\n" +
	"\fMemberStatus\x12\x1d\n" +
	"\x19MEMBER_STATUS_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14MEMBER_STATUS_ACTIVE\x10\x01\x12\x1a\n" +
	"\x16MEMBER_STATUS_INACTIVE\x10\x02\x12\x1b\n" +
	"\x17MEMBER_STATUS_SUSPENDED\x10\x03*Y\n" +
	"\n" +
	"MemberView\x12\x1b\n" +
	"\x17MEMBER_VIEW_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11MEMBER_VIEW_BASIC\x10\x01\x12\x17\n" +
	"\x13MEMBER_VIEW_PROFILE\x10\x022\x97\x02\n" +
	"\rMemberService\x12N\n" +
	"\tGetMember\x12\x1f.powerx.iam.v1.GetMemberRequest\x1a .powerx.iam.v1.GetMemberResponse\x12`\n" +
	"\x0fBatchGetMembers\x12%.powerx.iam.v1.BatchGetMembersRequest\x1a&.powerx.iam.v1.BatchGetMembersResponse\x12T\n" +
	"\vListMembers\x12!.powerx.iam.v1.ListMembersRequest\x1a\".powerx.iam.v1.ListMembersResponseBDZBgithub.com/ArtisanCloud/PowerX/api/grpc/gen/go/powerx/iam/v1;iamv1b\x06proto3"

var (
	file_powerx_iam_v1_member_proto_rawDescOnce sync.Once
	file_powerx_iam_v1_member_proto_rawDescData []byte
)

func file_powerx_iam_v1_member_proto_rawDescGZIP() []byte {
	file_powerx_iam_v1_member_proto_rawDescOnce.Do(func() {
		file_powerx_iam_v1_member_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_powerx_iam_v1_member_proto_rawDesc), len(file_powerx_iam_v1_member_proto_rawDesc)))
	})
	return file_powerx_iam_v1_member_proto_rawDescData
}

var file_powerx_iam_v1_member_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_powerx_iam_v1_member_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_powerx_iam_v1_member_proto_goTypes = []any{
	(MemberStatus)(0),               // 0: powerx.iam.v1.MemberStatus
	(MemberView)(0),                 // 1: powerx.iam.v1.MemberView
	(*Member)(nil),                  // 2: powerx.iam.v1.Member
	(*GetMemberRequest)(nil),        // 3: powerx.iam.v1.GetMemberRequest
	(*BatchGetMembersRequest)(nil),  // 4: powerx.iam.v1.BatchGetMembersRequest
	(*ListMembersRequest)(nil),      // 5: powerx.iam.v1.ListMembersRequest
	(*GetMemberData)(nil),           // 6: powerx.iam.v1.GetMemberData
	(*GetMemberResponse)(nil),       // 7: powerx.iam.v1.GetMemberResponse
	(*BatchGetMembersData)(nil),     // 8: powerx.iam.v1.BatchGetMembersData
	(*BatchGetMembersResponse)(nil), // 9: powerx.iam.v1.BatchGetMembersResponse
	(*ListMembersData)(nil),         // 10: powerx.iam.v1.ListMembersData
	(*ListMembersResponse)(nil),     // 11: powerx.iam.v1.ListMembersResponse
	nil,                             // 12: powerx.iam.v1.Member.LabelsEntry
	(*v1.ResourceRef)(nil),          // 13: common.v1.ResourceRef
	(*timestamppb.Timestamp)(nil),   // 14: google.protobuf.Timestamp
	(*v1.RequestContext)(nil),       // 15: common.v1.RequestContext
	(*fieldmaskpb.FieldMask)(nil),   // 16: google.protobuf.FieldMask
	(*v1.PageRequest)(nil),          // 17: common.v1.PageRequest
	(*v1.ResponseMeta)(nil),         // 18: common.v1.ResponseMeta
	(*v1.PageResponse)(nil),         // 19: common.v1.PageResponse
}
var file_powerx_iam_v1_member_proto_depIdxs = []int32{
	13, // 0: powerx.iam.v1.Member.ref:type_name -> common.v1.ResourceRef
	0,  // 1: powerx.iam.v1.Member.status:type_name -> powerx.iam.v1.MemberStatus
	12, // 2: powerx.iam.v1.Member.labels:type_name -> powerx.iam.v1.Member.LabelsEntry
	14, // 3: powerx.iam.v1.Member.created_at:type_name -> google.protobuf.Timestamp
	14, // 4: powerx.iam.v1.Member.updated_at:type_name -> google.protobuf.Timestamp
	15, // 5: powerx.iam.v1.GetMemberRequest.ctx:type_name -> common.v1.RequestContext
	1,  // 6: powerx.iam.v1.GetMemberRequest.view:type_name -> powerx.iam.v1.MemberView
	16, // 7: powerx.iam.v1.GetMemberRequest.field_mask:type_name -> google.protobuf.FieldMask
	15, // 8: powerx.iam.v1.BatchGetMembersRequest.ctx:type_name -> common.v1.RequestContext
	1,  // 9: powerx.iam.v1.BatchGetMembersRequest.view:type_name -> powerx.iam.v1.MemberView
	15, // 10: powerx.iam.v1.ListMembersRequest.ctx:type_name -> common.v1.RequestContext
	0,  // 11: powerx.iam.v1.ListMembersRequest.status:type_name -> powerx.iam.v1.MemberStatus
	17, // 12: powerx.iam.v1.ListMembersRequest.page:type_name -> common.v1.PageRequest
	1,  // 13: powerx.iam.v1.ListMembersRequest.view:type_name -> powerx.iam.v1.MemberView
	2,  // 14: powerx.iam.v1.GetMemberData.member:type_name -> powerx.iam.v1.Member
	18, // 15: powerx.iam.v1.GetMemberResponse.meta:type_name -> common.v1.ResponseMeta
	6,  // 16: powerx.iam.v1.GetMemberResponse.data:type_name -> powerx.iam.v1.GetMemberData
	2,  // 17: powerx.iam.v1.BatchGetMembersData.members:type_name -> powerx.iam.v1.Member
	18, // 18: powerx.iam.v1.BatchGetMembersResponse.meta:type_name -> common.v1.ResponseMeta
	8,  // 19: powerx.iam.v1.BatchGetMembersResponse.data:type_name -> powerx.iam.v1.BatchGetMembersData
	2,  // 20: powerx.iam.v1.ListMembersData.items:type_name -> powerx.iam.v1.Member
	19, // 21: powerx.iam.v1.ListMembersData.page:type_name -> common.v1.PageResponse
	18, // 22: powerx.iam.v1.ListMembersResponse.meta:type_name -> common.v1.ResponseMeta
	10, // 23: powerx.iam.v1.ListMembersResponse.data:type_name -> powerx.iam.v1.ListMembersData
	3,  // 24: powerx.iam.v1.MemberService.GetMember:input_type -> powerx.iam.v1.GetMemberRequest
	4,  // 25: powerx.iam.v1.MemberService.BatchGetMembers:input_type -> powerx.iam.v1.BatchGetMembersRequest
	5,  // 26: powerx.iam.v1.MemberService.ListMembers:input_type -> powerx.iam.v1.ListMembersRequest
	7,  // 27: powerx.iam.v1.MemberService.GetMember:output_type -> powerx.iam.v1.GetMemberResponse
	9,  // 28: powerx.iam.v1.MemberService.BatchGetMembers:output_type -> powerx.iam.v1.BatchGetMembersResponse
	11, // 29: powerx.iam.v1.MemberService.ListMembers:output_type -> powerx.iam.v1.ListMembersResponse
	27, // [27:30] is the sub-list for method output_type
	24, // [24:27] 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_powerx_iam_v1_member_proto_init() }
func file_powerx_iam_v1_member_proto_init() {
	if File_powerx_iam_v1_member_proto != nil {
		return
	}
	file_powerx_iam_v1_member_proto_msgTypes[1].OneofWrappers = []any{
		(*GetMemberRequest_Id)(nil),
		(*GetMemberRequest_Prn)(nil),
		(*GetMemberRequest_Username)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_powerx_iam_v1_member_proto_rawDesc), len(file_powerx_iam_v1_member_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_powerx_iam_v1_member_proto_goTypes,
		DependencyIndexes: file_powerx_iam_v1_member_proto_depIdxs,
		EnumInfos:         file_powerx_iam_v1_member_proto_enumTypes,
		MessageInfos:      file_powerx_iam_v1_member_proto_msgTypes,
	}.Build()
	File_powerx_iam_v1_member_proto = out.File
	file_powerx_iam_v1_member_proto_goTypes = nil
	file_powerx_iam_v1_member_proto_depIdxs = nil
}
