// Code generated by protoc-gen-go. DO NOT EDIT.
// source: account.proto

package pb

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	_ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type User struct {
	// user id, user belong to different group and role, has different permissions
	UserId *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// user name
	Username *wrappers.StringValue `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// user email
	Email *wrappers.StringValue `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"`
	// user phone number
	PhoneNumber *wrappers.StringValue `protobuf:"bytes,4,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// user description
	Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// user status eg.[active|deleted]
	Status *wrappers.StringValue `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
	// the time when user create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// the time when user update
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// record changed time of status
	StatusTime           *timestamp.Timestamp `protobuf:"bytes,9,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *User) Reset()         { *m = User{} }
func (m *User) String() string { return proto.CompactTextString(m) }
func (*User) ProtoMessage()    {}
func (*User) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{0}
}

func (m *User) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_User.Unmarshal(m, b)
}
func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_User.Marshal(b, m, deterministic)
}
func (m *User) XXX_Merge(src proto.Message) {
	xxx_messageInfo_User.Merge(m, src)
}
func (m *User) XXX_Size() int {
	return xxx_messageInfo_User.Size(m)
}
func (m *User) XXX_DiscardUnknown() {
	xxx_messageInfo_User.DiscardUnknown(m)
}

var xxx_messageInfo_User proto.InternalMessageInfo

func (m *User) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *User) GetUsername() *wrappers.StringValue {
	if m != nil {
		return m.Username
	}
	return nil
}

func (m *User) GetEmail() *wrappers.StringValue {
	if m != nil {
		return m.Email
	}
	return nil
}

func (m *User) GetPhoneNumber() *wrappers.StringValue {
	if m != nil {
		return m.PhoneNumber
	}
	return nil
}

func (m *User) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *User) GetStatus() *wrappers.StringValue {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *User) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *User) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *User) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

type UserDetail struct {
	// user info
	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// list of user's role
	RoleSet []*Role `protobuf:"bytes,2,rep,name=role_set,json=roleSet,proto3" json:"role_set,omitempty"`
	// list of user's group
	GroupSet             []*Group `protobuf:"bytes,3,rep,name=group_set,json=groupSet,proto3" json:"group_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserDetail) Reset()         { *m = UserDetail{} }
func (m *UserDetail) String() string { return proto.CompactTextString(m) }
func (*UserDetail) ProtoMessage()    {}
func (*UserDetail) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{1}
}

func (m *UserDetail) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserDetail.Unmarshal(m, b)
}
func (m *UserDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserDetail.Marshal(b, m, deterministic)
}
func (m *UserDetail) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserDetail.Merge(m, src)
}
func (m *UserDetail) XXX_Size() int {
	return xxx_messageInfo_UserDetail.Size(m)
}
func (m *UserDetail) XXX_DiscardUnknown() {
	xxx_messageInfo_UserDetail.DiscardUnknown(m)
}

var xxx_messageInfo_UserDetail proto.InternalMessageInfo

func (m *UserDetail) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

func (m *UserDetail) GetRoleSet() []*Role {
	if m != nil {
		return m.RoleSet
	}
	return nil
}

func (m *UserDetail) GetGroupSet() []*Group {
	if m != nil {
		return m.GroupSet
	}
	return nil
}

type Group struct {
	// parent group id
	ParentGroupId *wrappers.StringValue `protobuf:"bytes,1,opt,name=parent_group_id,json=parentGroupId,proto3" json:"parent_group_id,omitempty"`
	// group id
	GroupId *wrappers.StringValue `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// group path, a concat string gid-xxx.gid-xxx.gid...
	GroupPath *wrappers.StringValue `protobuf:"bytes,3,opt,name=group_path,json=groupPath,proto3" json:"group_path,omitempty"`
	// group name
	Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// group status eg.[active|deleted]
	Status *wrappers.StringValue `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
	// group description
	Description *wrappers.StringValue `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// the time when user create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// the time when group update
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// record group status changed time
	StatusTime           *timestamp.Timestamp `protobuf:"bytes,9,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *Group) Reset()         { *m = Group{} }
func (m *Group) String() string { return proto.CompactTextString(m) }
func (*Group) ProtoMessage()    {}
func (*Group) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{2}
}

func (m *Group) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Group.Unmarshal(m, b)
}
func (m *Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Group.Marshal(b, m, deterministic)
}
func (m *Group) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Group.Merge(m, src)
}
func (m *Group) XXX_Size() int {
	return xxx_messageInfo_Group.Size(m)
}
func (m *Group) XXX_DiscardUnknown() {
	xxx_messageInfo_Group.DiscardUnknown(m)
}

var xxx_messageInfo_Group proto.InternalMessageInfo

func (m *Group) GetParentGroupId() *wrappers.StringValue {
	if m != nil {
		return m.ParentGroupId
	}
	return nil
}

func (m *Group) GetGroupId() *wrappers.StringValue {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *Group) GetGroupPath() *wrappers.StringValue {
	if m != nil {
		return m.GroupPath
	}
	return nil
}

func (m *Group) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *Group) GetStatus() *wrappers.StringValue {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *Group) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *Group) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Group) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *Group) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

type GroupDetail struct {
	// group base info
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	// users in group
	UserSet              []*User  `protobuf:"bytes,2,rep,name=user_set,json=userSet,proto3" json:"user_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupDetail) Reset()         { *m = GroupDetail{} }
func (m *GroupDetail) String() string { return proto.CompactTextString(m) }
func (*GroupDetail) ProtoMessage()    {}
func (*GroupDetail) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{3}
}

func (m *GroupDetail) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupDetail.Unmarshal(m, b)
}
func (m *GroupDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupDetail.Marshal(b, m, deterministic)
}
func (m *GroupDetail) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupDetail.Merge(m, src)
}
func (m *GroupDetail) XXX_Size() int {
	return xxx_messageInfo_GroupDetail.Size(m)
}
func (m *GroupDetail) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupDetail.DiscardUnknown(m)
}

var xxx_messageInfo_GroupDetail proto.InternalMessageInfo

func (m *GroupDetail) GetGroup() *Group {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *GroupDetail) GetUserSet() []*User {
	if m != nil {
		return m.UserSet
	}
	return nil
}

type DescribeUsersRequest struct {
	// query key, support these fields(user_id, email, phone_number, status)
	SearchWord *wrappers.StringValue `protobuf:"bytes,1,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey *wrappers.StringValue `protobuf:"bytes,2,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse *wrappers.BoolValue `protobuf:"bytes,3,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// data limit, default 20, max 200
	Limit uint32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
	// use root group ids to get all group ids
	RootGroupId []string `protobuf:"bytes,6,rep,name=root_group_id,json=rootGroupId,proto3" json:"root_group_id,omitempty"`
	// group ids
	GroupId []string `protobuf:"bytes,7,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// user ids
	UserId []string `protobuf:"bytes,8,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// status eg.[active|deleted]
	Status []string `protobuf:"bytes,9,rep,name=status,proto3" json:"status,omitempty"`
	// role ids
	RoleId []string `protobuf:"bytes,10,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// username
	Username []string `protobuf:"bytes,11,rep,name=username,proto3" json:"username,omitempty"`
	// email, eg.op@yunify.com
	Email []string `protobuf:"bytes,12,rep,name=email,proto3" json:"email,omitempty"`
	// phone number, string of 11 digital
	PhoneNumber          []string `protobuf:"bytes,13,rep,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeUsersRequest) Reset()         { *m = DescribeUsersRequest{} }
func (m *DescribeUsersRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeUsersRequest) ProtoMessage()    {}
func (*DescribeUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{4}
}

func (m *DescribeUsersRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeUsersRequest.Unmarshal(m, b)
}
func (m *DescribeUsersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeUsersRequest.Marshal(b, m, deterministic)
}
func (m *DescribeUsersRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeUsersRequest.Merge(m, src)
}
func (m *DescribeUsersRequest) XXX_Size() int {
	return xxx_messageInfo_DescribeUsersRequest.Size(m)
}
func (m *DescribeUsersRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeUsersRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeUsersRequest proto.InternalMessageInfo

func (m *DescribeUsersRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeUsersRequest) GetSortKey() *wrappers.StringValue {
	if m != nil {
		return m.SortKey
	}
	return nil
}

func (m *DescribeUsersRequest) GetReverse() *wrappers.BoolValue {
	if m != nil {
		return m.Reverse
	}
	return nil
}

func (m *DescribeUsersRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeUsersRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeUsersRequest) GetRootGroupId() []string {
	if m != nil {
		return m.RootGroupId
	}
	return nil
}

func (m *DescribeUsersRequest) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *DescribeUsersRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *DescribeUsersRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *DescribeUsersRequest) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

func (m *DescribeUsersRequest) GetUsername() []string {
	if m != nil {
		return m.Username
	}
	return nil
}

func (m *DescribeUsersRequest) GetEmail() []string {
	if m != nil {
		return m.Email
	}
	return nil
}

func (m *DescribeUsersRequest) GetPhoneNumber() []string {
	if m != nil {
		return m.PhoneNumber
	}
	return nil
}

type DescribeUsersResponse struct {
	// total count of qualified user
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of user
	UserSet              []*User  `protobuf:"bytes,2,rep,name=user_set,json=userSet,proto3" json:"user_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeUsersResponse) Reset()         { *m = DescribeUsersResponse{} }
func (m *DescribeUsersResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeUsersResponse) ProtoMessage()    {}
func (*DescribeUsersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{5}
}

func (m *DescribeUsersResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeUsersResponse.Unmarshal(m, b)
}
func (m *DescribeUsersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeUsersResponse.Marshal(b, m, deterministic)
}
func (m *DescribeUsersResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeUsersResponse.Merge(m, src)
}
func (m *DescribeUsersResponse) XXX_Size() int {
	return xxx_messageInfo_DescribeUsersResponse.Size(m)
}
func (m *DescribeUsersResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeUsersResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeUsersResponse proto.InternalMessageInfo

func (m *DescribeUsersResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeUsersResponse) GetUserSet() []*User {
	if m != nil {
		return m.UserSet
	}
	return nil
}

type DescribeUsersDetailResponse struct {
	// total count of qualified user
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of user with detail info
	UserDetailSet        []*UserDetail `protobuf:"bytes,2,rep,name=user_detail_set,json=userDetailSet,proto3" json:"user_detail_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *DescribeUsersDetailResponse) Reset()         { *m = DescribeUsersDetailResponse{} }
func (m *DescribeUsersDetailResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeUsersDetailResponse) ProtoMessage()    {}
func (*DescribeUsersDetailResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{6}
}

func (m *DescribeUsersDetailResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeUsersDetailResponse.Unmarshal(m, b)
}
func (m *DescribeUsersDetailResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeUsersDetailResponse.Marshal(b, m, deterministic)
}
func (m *DescribeUsersDetailResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeUsersDetailResponse.Merge(m, src)
}
func (m *DescribeUsersDetailResponse) XXX_Size() int {
	return xxx_messageInfo_DescribeUsersDetailResponse.Size(m)
}
func (m *DescribeUsersDetailResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeUsersDetailResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeUsersDetailResponse proto.InternalMessageInfo

func (m *DescribeUsersDetailResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeUsersDetailResponse) GetUserDetailSet() []*UserDetail {
	if m != nil {
		return m.UserDetailSet
	}
	return nil
}

type ModifyUserRequest struct {
	// required, id of user to be modify
	UserId *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// user email, eg.op@yunify.com
	Email *wrappers.StringValue `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
	// user name
	Username *wrappers.StringValue `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	// user description
	Description *wrappers.StringValue `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// user password
	Password *wrappers.StringValue `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`
	// user phone number, string of 11 digital
	PhoneNumber          *wrappers.StringValue `protobuf:"bytes,6,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ModifyUserRequest) Reset()         { *m = ModifyUserRequest{} }
func (m *ModifyUserRequest) String() string { return proto.CompactTextString(m) }
func (*ModifyUserRequest) ProtoMessage()    {}
func (*ModifyUserRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{7}
}

func (m *ModifyUserRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyUserRequest.Unmarshal(m, b)
}
func (m *ModifyUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyUserRequest.Marshal(b, m, deterministic)
}
func (m *ModifyUserRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyUserRequest.Merge(m, src)
}
func (m *ModifyUserRequest) XXX_Size() int {
	return xxx_messageInfo_ModifyUserRequest.Size(m)
}
func (m *ModifyUserRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyUserRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyUserRequest proto.InternalMessageInfo

func (m *ModifyUserRequest) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *ModifyUserRequest) GetEmail() *wrappers.StringValue {
	if m != nil {
		return m.Email
	}
	return nil
}

func (m *ModifyUserRequest) GetUsername() *wrappers.StringValue {
	if m != nil {
		return m.Username
	}
	return nil
}

func (m *ModifyUserRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *ModifyUserRequest) GetPassword() *wrappers.StringValue {
	if m != nil {
		return m.Password
	}
	return nil
}

func (m *ModifyUserRequest) GetPhoneNumber() *wrappers.StringValue {
	if m != nil {
		return m.PhoneNumber
	}
	return nil
}

type ModifyUserResponse struct {
	// id of user modified
	UserId               *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ModifyUserResponse) Reset()         { *m = ModifyUserResponse{} }
func (m *ModifyUserResponse) String() string { return proto.CompactTextString(m) }
func (*ModifyUserResponse) ProtoMessage()    {}
func (*ModifyUserResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{8}
}

func (m *ModifyUserResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyUserResponse.Unmarshal(m, b)
}
func (m *ModifyUserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyUserResponse.Marshal(b, m, deterministic)
}
func (m *ModifyUserResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyUserResponse.Merge(m, src)
}
func (m *ModifyUserResponse) XXX_Size() int {
	return xxx_messageInfo_ModifyUserResponse.Size(m)
}
func (m *ModifyUserResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyUserResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyUserResponse proto.InternalMessageInfo

func (m *ModifyUserResponse) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

type DeleteUsersRequest struct {
	// required, ids of user to delete
	UserId               []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteUsersRequest) Reset()         { *m = DeleteUsersRequest{} }
func (m *DeleteUsersRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteUsersRequest) ProtoMessage()    {}
func (*DeleteUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{9}
}

func (m *DeleteUsersRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteUsersRequest.Unmarshal(m, b)
}
func (m *DeleteUsersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteUsersRequest.Marshal(b, m, deterministic)
}
func (m *DeleteUsersRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteUsersRequest.Merge(m, src)
}
func (m *DeleteUsersRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteUsersRequest.Size(m)
}
func (m *DeleteUsersRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteUsersRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteUsersRequest proto.InternalMessageInfo

func (m *DeleteUsersRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type DeleteUsersResponse struct {
	// ids of deleted user
	UserId               []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteUsersResponse) Reset()         { *m = DeleteUsersResponse{} }
func (m *DeleteUsersResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteUsersResponse) ProtoMessage()    {}
func (*DeleteUsersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{10}
}

func (m *DeleteUsersResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteUsersResponse.Unmarshal(m, b)
}
func (m *DeleteUsersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteUsersResponse.Marshal(b, m, deterministic)
}
func (m *DeleteUsersResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteUsersResponse.Merge(m, src)
}
func (m *DeleteUsersResponse) XXX_Size() int {
	return xxx_messageInfo_DeleteUsersResponse.Size(m)
}
func (m *DeleteUsersResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteUsersResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteUsersResponse proto.InternalMessageInfo

func (m *DeleteUsersResponse) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type CreatePasswordResetRequest struct {
	// required, id of user to create reset password action
	UserId *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// required, user password
	Password             *wrappers.StringValue `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreatePasswordResetRequest) Reset()         { *m = CreatePasswordResetRequest{} }
func (m *CreatePasswordResetRequest) String() string { return proto.CompactTextString(m) }
func (*CreatePasswordResetRequest) ProtoMessage()    {}
func (*CreatePasswordResetRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{11}
}

func (m *CreatePasswordResetRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreatePasswordResetRequest.Unmarshal(m, b)
}
func (m *CreatePasswordResetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreatePasswordResetRequest.Marshal(b, m, deterministic)
}
func (m *CreatePasswordResetRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreatePasswordResetRequest.Merge(m, src)
}
func (m *CreatePasswordResetRequest) XXX_Size() int {
	return xxx_messageInfo_CreatePasswordResetRequest.Size(m)
}
func (m *CreatePasswordResetRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreatePasswordResetRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreatePasswordResetRequest proto.InternalMessageInfo

func (m *CreatePasswordResetRequest) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *CreatePasswordResetRequest) GetPassword() *wrappers.StringValue {
	if m != nil {
		return m.Password
	}
	return nil
}

type CreatePasswordResetResponse struct {
	// id of user that reset password
	UserId *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// reset id, used to change password
	ResetId              *wrappers.StringValue `protobuf:"bytes,2,opt,name=reset_id,json=resetId,proto3" json:"reset_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreatePasswordResetResponse) Reset()         { *m = CreatePasswordResetResponse{} }
func (m *CreatePasswordResetResponse) String() string { return proto.CompactTextString(m) }
func (*CreatePasswordResetResponse) ProtoMessage()    {}
func (*CreatePasswordResetResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{12}
}

func (m *CreatePasswordResetResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreatePasswordResetResponse.Unmarshal(m, b)
}
func (m *CreatePasswordResetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreatePasswordResetResponse.Marshal(b, m, deterministic)
}
func (m *CreatePasswordResetResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreatePasswordResetResponse.Merge(m, src)
}
func (m *CreatePasswordResetResponse) XXX_Size() int {
	return xxx_messageInfo_CreatePasswordResetResponse.Size(m)
}
func (m *CreatePasswordResetResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreatePasswordResetResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreatePasswordResetResponse proto.InternalMessageInfo

func (m *CreatePasswordResetResponse) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *CreatePasswordResetResponse) GetResetId() *wrappers.StringValue {
	if m != nil {
		return m.ResetId
	}
	return nil
}

type ChangePasswordRequest struct {
	// required, new password for reset
	NewPassword *wrappers.StringValue `protobuf:"bytes,1,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"`
	// required, reset id
	ResetId              *wrappers.StringValue `protobuf:"bytes,2,opt,name=reset_id,json=resetId,proto3" json:"reset_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ChangePasswordRequest) Reset()         { *m = ChangePasswordRequest{} }
func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordRequest) ProtoMessage()    {}
func (*ChangePasswordRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{13}
}

func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b)
}
func (m *ChangePasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChangePasswordRequest.Marshal(b, m, deterministic)
}
func (m *ChangePasswordRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChangePasswordRequest.Merge(m, src)
}
func (m *ChangePasswordRequest) XXX_Size() int {
	return xxx_messageInfo_ChangePasswordRequest.Size(m)
}
func (m *ChangePasswordRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ChangePasswordRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ChangePasswordRequest proto.InternalMessageInfo

func (m *ChangePasswordRequest) GetNewPassword() *wrappers.StringValue {
	if m != nil {
		return m.NewPassword
	}
	return nil
}

func (m *ChangePasswordRequest) GetResetId() *wrappers.StringValue {
	if m != nil {
		return m.ResetId
	}
	return nil
}

type ChangePasswordResponse struct {
	// id of user that changed password
	UserId               *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ChangePasswordResponse) Reset()         { *m = ChangePasswordResponse{} }
func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordResponse) ProtoMessage()    {}
func (*ChangePasswordResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{14}
}

func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b)
}
func (m *ChangePasswordResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChangePasswordResponse.Marshal(b, m, deterministic)
}
func (m *ChangePasswordResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChangePasswordResponse.Merge(m, src)
}
func (m *ChangePasswordResponse) XXX_Size() int {
	return xxx_messageInfo_ChangePasswordResponse.Size(m)
}
func (m *ChangePasswordResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ChangePasswordResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ChangePasswordResponse proto.InternalMessageInfo

func (m *ChangePasswordResponse) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

type GetPasswordResetRequest struct {
	// required, reset id
	ResetId              string   `protobuf:"bytes,1,opt,name=reset_id,json=resetId,proto3" json:"reset_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetPasswordResetRequest) Reset()         { *m = GetPasswordResetRequest{} }
func (m *GetPasswordResetRequest) String() string { return proto.CompactTextString(m) }
func (*GetPasswordResetRequest) ProtoMessage()    {}
func (*GetPasswordResetRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{15}
}

func (m *GetPasswordResetRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetPasswordResetRequest.Unmarshal(m, b)
}
func (m *GetPasswordResetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetPasswordResetRequest.Marshal(b, m, deterministic)
}
func (m *GetPasswordResetRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetPasswordResetRequest.Merge(m, src)
}
func (m *GetPasswordResetRequest) XXX_Size() int {
	return xxx_messageInfo_GetPasswordResetRequest.Size(m)
}
func (m *GetPasswordResetRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetPasswordResetRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetPasswordResetRequest proto.InternalMessageInfo

func (m *GetPasswordResetRequest) GetResetId() string {
	if m != nil {
		return m.ResetId
	}
	return ""
}

type GetPasswordResetResponse struct {
	// reset id
	ResetId string `protobuf:"bytes,1,opt,name=reset_id,json=resetId,proto3" json:"reset_id,omitempty"`
	// id of user changed password
	UserId               string   `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetPasswordResetResponse) Reset()         { *m = GetPasswordResetResponse{} }
func (m *GetPasswordResetResponse) String() string { return proto.CompactTextString(m) }
func (*GetPasswordResetResponse) ProtoMessage()    {}
func (*GetPasswordResetResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{16}
}

func (m *GetPasswordResetResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetPasswordResetResponse.Unmarshal(m, b)
}
func (m *GetPasswordResetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetPasswordResetResponse.Marshal(b, m, deterministic)
}
func (m *GetPasswordResetResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetPasswordResetResponse.Merge(m, src)
}
func (m *GetPasswordResetResponse) XXX_Size() int {
	return xxx_messageInfo_GetPasswordResetResponse.Size(m)
}
func (m *GetPasswordResetResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetPasswordResetResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetPasswordResetResponse proto.InternalMessageInfo

func (m *GetPasswordResetResponse) GetResetId() string {
	if m != nil {
		return m.ResetId
	}
	return ""
}

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

type CreateUserRequest struct {
	// required, user email
	Email *wrappers.StringValue `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	// user phone number
	PhoneNumber *wrappers.StringValue `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// required, user password
	Password *wrappers.StringValue `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	// required, user role_id
	RoleId *wrappers.StringValue `protobuf:"bytes,4,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// user description
	Description          *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateUserRequest) Reset()         { *m = CreateUserRequest{} }
func (m *CreateUserRequest) String() string { return proto.CompactTextString(m) }
func (*CreateUserRequest) ProtoMessage()    {}
func (*CreateUserRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{17}
}

func (m *CreateUserRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateUserRequest.Unmarshal(m, b)
}
func (m *CreateUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateUserRequest.Marshal(b, m, deterministic)
}
func (m *CreateUserRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateUserRequest.Merge(m, src)
}
func (m *CreateUserRequest) XXX_Size() int {
	return xxx_messageInfo_CreateUserRequest.Size(m)
}
func (m *CreateUserRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateUserRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateUserRequest proto.InternalMessageInfo

func (m *CreateUserRequest) GetEmail() *wrappers.StringValue {
	if m != nil {
		return m.Email
	}
	return nil
}

func (m *CreateUserRequest) GetPhoneNumber() *wrappers.StringValue {
	if m != nil {
		return m.PhoneNumber
	}
	return nil
}

func (m *CreateUserRequest) GetPassword() *wrappers.StringValue {
	if m != nil {
		return m.Password
	}
	return nil
}

func (m *CreateUserRequest) GetRoleId() *wrappers.StringValue {
	if m != nil {
		return m.RoleId
	}
	return nil
}

func (m *CreateUserRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

type CreateUserResponse struct {
	// id of user created
	UserId               *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateUserResponse) Reset()         { *m = CreateUserResponse{} }
func (m *CreateUserResponse) String() string { return proto.CompactTextString(m) }
func (*CreateUserResponse) ProtoMessage()    {}
func (*CreateUserResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{18}
}

func (m *CreateUserResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateUserResponse.Unmarshal(m, b)
}
func (m *CreateUserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateUserResponse.Marshal(b, m, deterministic)
}
func (m *CreateUserResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateUserResponse.Merge(m, src)
}
func (m *CreateUserResponse) XXX_Size() int {
	return xxx_messageInfo_CreateUserResponse.Size(m)
}
func (m *CreateUserResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateUserResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreateUserResponse proto.InternalMessageInfo

func (m *CreateUserResponse) GetUserId() *wrappers.StringValue {
	if m != nil {
		return m.UserId
	}
	return nil
}

type ValidateUserPasswordRequest struct {
	// required, user email
	Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	// required, user password
	Password             string   `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ValidateUserPasswordRequest) Reset()         { *m = ValidateUserPasswordRequest{} }
func (m *ValidateUserPasswordRequest) String() string { return proto.CompactTextString(m) }
func (*ValidateUserPasswordRequest) ProtoMessage()    {}
func (*ValidateUserPasswordRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{19}
}

func (m *ValidateUserPasswordRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ValidateUserPasswordRequest.Unmarshal(m, b)
}
func (m *ValidateUserPasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ValidateUserPasswordRequest.Marshal(b, m, deterministic)
}
func (m *ValidateUserPasswordRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValidateUserPasswordRequest.Merge(m, src)
}
func (m *ValidateUserPasswordRequest) XXX_Size() int {
	return xxx_messageInfo_ValidateUserPasswordRequest.Size(m)
}
func (m *ValidateUserPasswordRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ValidateUserPasswordRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ValidateUserPasswordRequest proto.InternalMessageInfo

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

func (m *ValidateUserPasswordRequest) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

type ValidateUserPasswordResponse struct {
	// validate password ok or not
	Validated            bool     `protobuf:"varint,1,opt,name=validated,proto3" json:"validated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ValidateUserPasswordResponse) Reset()         { *m = ValidateUserPasswordResponse{} }
func (m *ValidateUserPasswordResponse) String() string { return proto.CompactTextString(m) }
func (*ValidateUserPasswordResponse) ProtoMessage()    {}
func (*ValidateUserPasswordResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{20}
}

func (m *ValidateUserPasswordResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ValidateUserPasswordResponse.Unmarshal(m, b)
}
func (m *ValidateUserPasswordResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ValidateUserPasswordResponse.Marshal(b, m, deterministic)
}
func (m *ValidateUserPasswordResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValidateUserPasswordResponse.Merge(m, src)
}
func (m *ValidateUserPasswordResponse) XXX_Size() int {
	return xxx_messageInfo_ValidateUserPasswordResponse.Size(m)
}
func (m *ValidateUserPasswordResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ValidateUserPasswordResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ValidateUserPasswordResponse proto.InternalMessageInfo

func (m *ValidateUserPasswordResponse) GetValidated() bool {
	if m != nil {
		return m.Validated
	}
	return false
}

type CreateGroupRequest struct {
	// required, parent group id
	ParentGroupId *wrappers.StringValue `protobuf:"bytes,1,opt,name=parent_group_id,json=parentGroupId,proto3" json:"parent_group_id,omitempty"`
	// required, group name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// group description
	Description          *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateGroupRequest) Reset()         { *m = CreateGroupRequest{} }
func (m *CreateGroupRequest) String() string { return proto.CompactTextString(m) }
func (*CreateGroupRequest) ProtoMessage()    {}
func (*CreateGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{21}
}

func (m *CreateGroupRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateGroupRequest.Unmarshal(m, b)
}
func (m *CreateGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateGroupRequest.Marshal(b, m, deterministic)
}
func (m *CreateGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateGroupRequest.Merge(m, src)
}
func (m *CreateGroupRequest) XXX_Size() int {
	return xxx_messageInfo_CreateGroupRequest.Size(m)
}
func (m *CreateGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateGroupRequest proto.InternalMessageInfo

func (m *CreateGroupRequest) GetParentGroupId() *wrappers.StringValue {
	if m != nil {
		return m.ParentGroupId
	}
	return nil
}

func (m *CreateGroupRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *CreateGroupRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

type CreateGroupResponse struct {
	// id of group created
	GroupId              *wrappers.StringValue `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateGroupResponse) Reset()         { *m = CreateGroupResponse{} }
func (m *CreateGroupResponse) String() string { return proto.CompactTextString(m) }
func (*CreateGroupResponse) ProtoMessage()    {}
func (*CreateGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{22}
}

func (m *CreateGroupResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateGroupResponse.Unmarshal(m, b)
}
func (m *CreateGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateGroupResponse.Marshal(b, m, deterministic)
}
func (m *CreateGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateGroupResponse.Merge(m, src)
}
func (m *CreateGroupResponse) XXX_Size() int {
	return xxx_messageInfo_CreateGroupResponse.Size(m)
}
func (m *CreateGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreateGroupResponse proto.InternalMessageInfo

func (m *CreateGroupResponse) GetGroupId() *wrappers.StringValue {
	if m != nil {
		return m.GroupId
	}
	return nil
}

type DescribeGroupsRequest struct {
	// query key, support these fields(group_id, parent_group_id, group_path, status)
	SearchWord *wrappers.StringValue `protobuf:"bytes,1,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey *wrappers.StringValue `protobuf:"bytes,2,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse *wrappers.BoolValue `protobuf:"bytes,3,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
	// use root group ids to get all groups
	RootGroupId []string `protobuf:"bytes,6,rep,name=root_group_id,json=rootGroupId,proto3" json:"root_group_id,omitempty"`
	// parent group ids
	ParentGroupId []string `protobuf:"bytes,7,rep,name=parent_group_id,json=parentGroupId,proto3" json:"parent_group_id,omitempty"`
	// group ids
	GroupId []string `protobuf:"bytes,8,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// group path, a concat string gid-xxx.gid-xxx.gid...
	GroupPath []string `protobuf:"bytes,9,rep,name=group_path,json=groupPath,proto3" json:"group_path,omitempty"`
	// group name
	GroupName []string `protobuf:"bytes,10,rep,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
	// status eg.[active|deleted]
	Status               []string `protobuf:"bytes,11,rep,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeGroupsRequest) Reset()         { *m = DescribeGroupsRequest{} }
func (m *DescribeGroupsRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeGroupsRequest) ProtoMessage()    {}
func (*DescribeGroupsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{23}
}

func (m *DescribeGroupsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeGroupsRequest.Unmarshal(m, b)
}
func (m *DescribeGroupsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeGroupsRequest.Marshal(b, m, deterministic)
}
func (m *DescribeGroupsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeGroupsRequest.Merge(m, src)
}
func (m *DescribeGroupsRequest) XXX_Size() int {
	return xxx_messageInfo_DescribeGroupsRequest.Size(m)
}
func (m *DescribeGroupsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeGroupsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeGroupsRequest proto.InternalMessageInfo

func (m *DescribeGroupsRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeGroupsRequest) GetSortKey() *wrappers.StringValue {
	if m != nil {
		return m.SortKey
	}
	return nil
}

func (m *DescribeGroupsRequest) GetReverse() *wrappers.BoolValue {
	if m != nil {
		return m.Reverse
	}
	return nil
}

func (m *DescribeGroupsRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeGroupsRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeGroupsRequest) GetRootGroupId() []string {
	if m != nil {
		return m.RootGroupId
	}
	return nil
}

func (m *DescribeGroupsRequest) GetParentGroupId() []string {
	if m != nil {
		return m.ParentGroupId
	}
	return nil
}

func (m *DescribeGroupsRequest) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *DescribeGroupsRequest) GetGroupPath() []string {
	if m != nil {
		return m.GroupPath
	}
	return nil
}

func (m *DescribeGroupsRequest) GetGroupName() []string {
	if m != nil {
		return m.GroupName
	}
	return nil
}

func (m *DescribeGroupsRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

type DescribeGroupsResponse struct {
	// total count of qualified group
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of group
	GroupSet             []*Group `protobuf:"bytes,2,rep,name=group_set,json=groupSet,proto3" json:"group_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeGroupsResponse) Reset()         { *m = DescribeGroupsResponse{} }
func (m *DescribeGroupsResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeGroupsResponse) ProtoMessage()    {}
func (*DescribeGroupsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{24}
}

func (m *DescribeGroupsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeGroupsResponse.Unmarshal(m, b)
}
func (m *DescribeGroupsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeGroupsResponse.Marshal(b, m, deterministic)
}
func (m *DescribeGroupsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeGroupsResponse.Merge(m, src)
}
func (m *DescribeGroupsResponse) XXX_Size() int {
	return xxx_messageInfo_DescribeGroupsResponse.Size(m)
}
func (m *DescribeGroupsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeGroupsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeGroupsResponse proto.InternalMessageInfo

func (m *DescribeGroupsResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeGroupsResponse) GetGroupSet() []*Group {
	if m != nil {
		return m.GroupSet
	}
	return nil
}

type DescribeGroupsDetailResponse struct {
	// total count of group with detail info
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of group with detail info
	GroupDetailSet       []*GroupDetail `protobuf:"bytes,2,rep,name=group_detail_set,json=groupDetailSet,proto3" json:"group_detail_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DescribeGroupsDetailResponse) Reset()         { *m = DescribeGroupsDetailResponse{} }
func (m *DescribeGroupsDetailResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeGroupsDetailResponse) ProtoMessage()    {}
func (*DescribeGroupsDetailResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{25}
}

func (m *DescribeGroupsDetailResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeGroupsDetailResponse.Unmarshal(m, b)
}
func (m *DescribeGroupsDetailResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeGroupsDetailResponse.Marshal(b, m, deterministic)
}
func (m *DescribeGroupsDetailResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeGroupsDetailResponse.Merge(m, src)
}
func (m *DescribeGroupsDetailResponse) XXX_Size() int {
	return xxx_messageInfo_DescribeGroupsDetailResponse.Size(m)
}
func (m *DescribeGroupsDetailResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeGroupsDetailResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeGroupsDetailResponse proto.InternalMessageInfo

func (m *DescribeGroupsDetailResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeGroupsDetailResponse) GetGroupDetailSet() []*GroupDetail {
	if m != nil {
		return m.GroupDetailSet
	}
	return nil
}

type ModifyGroupRequest struct {
	// required, id of group to modify
	GroupId *wrappers.StringValue `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// group name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// group description
	Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// parent group id
	ParentGroupId        *wrappers.StringValue `protobuf:"bytes,4,opt,name=parent_group_id,json=parentGroupId,proto3" json:"parent_group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ModifyGroupRequest) Reset()         { *m = ModifyGroupRequest{} }
func (m *ModifyGroupRequest) String() string { return proto.CompactTextString(m) }
func (*ModifyGroupRequest) ProtoMessage()    {}
func (*ModifyGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{26}
}

func (m *ModifyGroupRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyGroupRequest.Unmarshal(m, b)
}
func (m *ModifyGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyGroupRequest.Marshal(b, m, deterministic)
}
func (m *ModifyGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyGroupRequest.Merge(m, src)
}
func (m *ModifyGroupRequest) XXX_Size() int {
	return xxx_messageInfo_ModifyGroupRequest.Size(m)
}
func (m *ModifyGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyGroupRequest proto.InternalMessageInfo

func (m *ModifyGroupRequest) GetGroupId() *wrappers.StringValue {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *ModifyGroupRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *ModifyGroupRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *ModifyGroupRequest) GetParentGroupId() *wrappers.StringValue {
	if m != nil {
		return m.ParentGroupId
	}
	return nil
}

type ModifyGroupResponse struct {
	// id of group modified
	GroupId              *wrappers.StringValue `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ModifyGroupResponse) Reset()         { *m = ModifyGroupResponse{} }
func (m *ModifyGroupResponse) String() string { return proto.CompactTextString(m) }
func (*ModifyGroupResponse) ProtoMessage()    {}
func (*ModifyGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{27}
}

func (m *ModifyGroupResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyGroupResponse.Unmarshal(m, b)
}
func (m *ModifyGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyGroupResponse.Marshal(b, m, deterministic)
}
func (m *ModifyGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyGroupResponse.Merge(m, src)
}
func (m *ModifyGroupResponse) XXX_Size() int {
	return xxx_messageInfo_ModifyGroupResponse.Size(m)
}
func (m *ModifyGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyGroupResponse proto.InternalMessageInfo

func (m *ModifyGroupResponse) GetGroupId() *wrappers.StringValue {
	if m != nil {
		return m.GroupId
	}
	return nil
}

type DeleteGroupsRequest struct {
	// required, ids of group to delete
	GroupId              []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteGroupsRequest) Reset()         { *m = DeleteGroupsRequest{} }
func (m *DeleteGroupsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupsRequest) ProtoMessage()    {}
func (*DeleteGroupsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{28}
}

func (m *DeleteGroupsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteGroupsRequest.Unmarshal(m, b)
}
func (m *DeleteGroupsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteGroupsRequest.Marshal(b, m, deterministic)
}
func (m *DeleteGroupsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteGroupsRequest.Merge(m, src)
}
func (m *DeleteGroupsRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteGroupsRequest.Size(m)
}
func (m *DeleteGroupsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteGroupsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteGroupsRequest proto.InternalMessageInfo

func (m *DeleteGroupsRequest) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

type DeleteGroupsResponse struct {
	// ids of group deleted
	GroupId              []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteGroupsResponse) Reset()         { *m = DeleteGroupsResponse{} }
func (m *DeleteGroupsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupsResponse) ProtoMessage()    {}
func (*DeleteGroupsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{29}
}

func (m *DeleteGroupsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteGroupsResponse.Unmarshal(m, b)
}
func (m *DeleteGroupsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteGroupsResponse.Marshal(b, m, deterministic)
}
func (m *DeleteGroupsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteGroupsResponse.Merge(m, src)
}
func (m *DeleteGroupsResponse) XXX_Size() int {
	return xxx_messageInfo_DeleteGroupsResponse.Size(m)
}
func (m *DeleteGroupsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteGroupsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteGroupsResponse proto.InternalMessageInfo

func (m *DeleteGroupsResponse) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

type JoinGroupRequest struct {
	// required, ids of group for user to join in
	GroupId []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// required, ids of user to join
	UserId               []string `protobuf:"bytes,2,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *JoinGroupRequest) Reset()         { *m = JoinGroupRequest{} }
func (m *JoinGroupRequest) String() string { return proto.CompactTextString(m) }
func (*JoinGroupRequest) ProtoMessage()    {}
func (*JoinGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{30}
}

func (m *JoinGroupRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JoinGroupRequest.Unmarshal(m, b)
}
func (m *JoinGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JoinGroupRequest.Marshal(b, m, deterministic)
}
func (m *JoinGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinGroupRequest.Merge(m, src)
}
func (m *JoinGroupRequest) XXX_Size() int {
	return xxx_messageInfo_JoinGroupRequest.Size(m)
}
func (m *JoinGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_JoinGroupRequest proto.InternalMessageInfo

func (m *JoinGroupRequest) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *JoinGroupRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type JoinGroupResponse struct {
	// ids of group for user to join in
	GroupId []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// ids of user to join
	UserId               []string `protobuf:"bytes,2,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *JoinGroupResponse) Reset()         { *m = JoinGroupResponse{} }
func (m *JoinGroupResponse) String() string { return proto.CompactTextString(m) }
func (*JoinGroupResponse) ProtoMessage()    {}
func (*JoinGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{31}
}

func (m *JoinGroupResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JoinGroupResponse.Unmarshal(m, b)
}
func (m *JoinGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JoinGroupResponse.Marshal(b, m, deterministic)
}
func (m *JoinGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinGroupResponse.Merge(m, src)
}
func (m *JoinGroupResponse) XXX_Size() int {
	return xxx_messageInfo_JoinGroupResponse.Size(m)
}
func (m *JoinGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_JoinGroupResponse proto.InternalMessageInfo

func (m *JoinGroupResponse) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *JoinGroupResponse) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type LeaveGroupRequest struct {
	// required, ids of group for user to leave from
	GroupId []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// required, ids of user to leave
	UserId               []string `protobuf:"bytes,2,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LeaveGroupRequest) Reset()         { *m = LeaveGroupRequest{} }
func (m *LeaveGroupRequest) String() string { return proto.CompactTextString(m) }
func (*LeaveGroupRequest) ProtoMessage()    {}
func (*LeaveGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{32}
}

func (m *LeaveGroupRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LeaveGroupRequest.Unmarshal(m, b)
}
func (m *LeaveGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LeaveGroupRequest.Marshal(b, m, deterministic)
}
func (m *LeaveGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LeaveGroupRequest.Merge(m, src)
}
func (m *LeaveGroupRequest) XXX_Size() int {
	return xxx_messageInfo_LeaveGroupRequest.Size(m)
}
func (m *LeaveGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LeaveGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LeaveGroupRequest proto.InternalMessageInfo

func (m *LeaveGroupRequest) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *LeaveGroupRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type LeaveGroupResponse struct {
	// ids of group for user to leave from
	GroupId []string `protobuf:"bytes,1,rep,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// ids of user to leave
	UserId               []string `protobuf:"bytes,2,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LeaveGroupResponse) Reset()         { *m = LeaveGroupResponse{} }
func (m *LeaveGroupResponse) String() string { return proto.CompactTextString(m) }
func (*LeaveGroupResponse) ProtoMessage()    {}
func (*LeaveGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{33}
}

func (m *LeaveGroupResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LeaveGroupResponse.Unmarshal(m, b)
}
func (m *LeaveGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LeaveGroupResponse.Marshal(b, m, deterministic)
}
func (m *LeaveGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LeaveGroupResponse.Merge(m, src)
}
func (m *LeaveGroupResponse) XXX_Size() int {
	return xxx_messageInfo_LeaveGroupResponse.Size(m)
}
func (m *LeaveGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_LeaveGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_LeaveGroupResponse proto.InternalMessageInfo

func (m *LeaveGroupResponse) GetGroupId() []string {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *LeaveGroupResponse) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

type Role struct {
	// role id
	RoleId string `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// role name
	RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"`
	// role description
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// portal eg.[global_admin|user|isv]
	Portal string `protobuf:"bytes,4,opt,name=portal,proto3" json:"portal,omitempty"`
	// own
	Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"`
	// owner path, concat string group_path:user_id
	OwnerPath string `protobuf:"bytes,6,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	// status eg.[active|deleted]
	Status string `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
	// controller eg.[self|pitrix]
	Controller string `protobuf:"bytes,8,opt,name=controller,proto3" json:"controller,omitempty"`
	// the time when role create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// the time when role update
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// record change time of status
	StatusTime           *timestamp.Timestamp `protobuf:"bytes,11,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *Role) Reset()         { *m = Role{} }
func (m *Role) String() string { return proto.CompactTextString(m) }
func (*Role) ProtoMessage()    {}
func (*Role) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{34}
}

func (m *Role) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Role.Unmarshal(m, b)
}
func (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Role.Marshal(b, m, deterministic)
}
func (m *Role) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Role.Merge(m, src)
}
func (m *Role) XXX_Size() int {
	return xxx_messageInfo_Role.Size(m)
}
func (m *Role) XXX_DiscardUnknown() {
	xxx_messageInfo_Role.DiscardUnknown(m)
}

var xxx_messageInfo_Role proto.InternalMessageInfo

func (m *Role) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

func (m *Role) GetRoleName() string {
	if m != nil {
		return m.RoleName
	}
	return ""
}

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

func (m *Role) GetPortal() string {
	if m != nil {
		return m.Portal
	}
	return ""
}

func (m *Role) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *Role) GetOwnerPath() string {
	if m != nil {
		return m.OwnerPath
	}
	return ""
}

func (m *Role) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *Role) GetController() string {
	if m != nil {
		return m.Controller
	}
	return ""
}

func (m *Role) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Role) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *Role) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

type Api struct {
	// api id
	ApiId string `protobuf:"bytes,1,opt,name=api_id,json=apiId,proto3" json:"api_id,omitempty"`
	// api method, rpc method eg.[Token|CanDo|...]
	ApiMethod string `protobuf:"bytes,2,opt,name=api_method,json=apiMethod,proto3" json:"api_method,omitempty"`
	// url method, http verb
	UrlMethod string `protobuf:"bytes,3,opt,name=url_method,json=urlMethod,proto3" json:"url_method,omitempty"`
	// request url
	Url                  string   `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Api) Reset()         { *m = Api{} }
func (m *Api) String() string { return proto.CompactTextString(m) }
func (*Api) ProtoMessage()    {}
func (*Api) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{35}
}

func (m *Api) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Api.Unmarshal(m, b)
}
func (m *Api) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Api.Marshal(b, m, deterministic)
}
func (m *Api) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Api.Merge(m, src)
}
func (m *Api) XXX_Size() int {
	return xxx_messageInfo_Api.Size(m)
}
func (m *Api) XXX_DiscardUnknown() {
	xxx_messageInfo_Api.DiscardUnknown(m)
}

var xxx_messageInfo_Api proto.InternalMessageInfo

func (m *Api) GetApiId() string {
	if m != nil {
		return m.ApiId
	}
	return ""
}

func (m *Api) GetApiMethod() string {
	if m != nil {
		return m.ApiMethod
	}
	return ""
}

func (m *Api) GetUrlMethod() string {
	if m != nil {
		return m.UrlMethod
	}
	return ""
}

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

type ActionBundle struct {
	// bundle of action, bundle contain one more api
	ActionBundleId string `protobuf:"bytes,1,opt,name=action_bundle_id,json=actionBundleId,proto3" json:"action_bundle_id,omitempty"`
	// name of bundle
	ActionBundleName string `protobuf:"bytes,2,opt,name=action_bundle_name,json=actionBundleName,proto3" json:"action_bundle_name,omitempty"`
	// list of api in bundle
	ApiSet               []*Api   `protobuf:"bytes,3,rep,name=api_set,json=apiSet,proto3" json:"api_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ActionBundle) Reset()         { *m = ActionBundle{} }
func (m *ActionBundle) String() string { return proto.CompactTextString(m) }
func (*ActionBundle) ProtoMessage()    {}
func (*ActionBundle) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{36}
}

func (m *ActionBundle) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ActionBundle.Unmarshal(m, b)
}
func (m *ActionBundle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ActionBundle.Marshal(b, m, deterministic)
}
func (m *ActionBundle) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ActionBundle.Merge(m, src)
}
func (m *ActionBundle) XXX_Size() int {
	return xxx_messageInfo_ActionBundle.Size(m)
}
func (m *ActionBundle) XXX_DiscardUnknown() {
	xxx_messageInfo_ActionBundle.DiscardUnknown(m)
}

var xxx_messageInfo_ActionBundle proto.InternalMessageInfo

func (m *ActionBundle) GetActionBundleId() string {
	if m != nil {
		return m.ActionBundleId
	}
	return ""
}

func (m *ActionBundle) GetActionBundleName() string {
	if m != nil {
		return m.ActionBundleName
	}
	return ""
}

func (m *ActionBundle) GetApiSet() []*Api {
	if m != nil {
		return m.ApiSet
	}
	return nil
}

type Feature struct {
	// feature id
	FeatureId string `protobuf:"bytes,1,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"`
	// feature name
	FeatureName string `protobuf:"bytes,2,opt,name=feature_name,json=featureName,proto3" json:"feature_name,omitempty"`
	// list of action bundle
	ActionBundleSet []*ActionBundle `protobuf:"bytes,3,rep,name=action_bundle_set,json=actionBundleSet,proto3" json:"action_bundle_set,omitempty"`
	// list of checked action bundle
	CheckedActionBundleIdSet []string `protobuf:"bytes,4,rep,name=checked_action_bundle_id_set,json=checkedActionBundleIdSet,proto3" json:"checked_action_bundle_id_set,omitempty"`
	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
	XXX_unrecognized         []byte   `json:"-"`
	XXX_sizecache            int32    `json:"-"`
}

func (m *Feature) Reset()         { *m = Feature{} }
func (m *Feature) String() string { return proto.CompactTextString(m) }
func (*Feature) ProtoMessage()    {}
func (*Feature) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{37}
}

func (m *Feature) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Feature.Unmarshal(m, b)
}
func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
}
func (m *Feature) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Feature.Merge(m, src)
}
func (m *Feature) XXX_Size() int {
	return xxx_messageInfo_Feature.Size(m)
}
func (m *Feature) XXX_DiscardUnknown() {
	xxx_messageInfo_Feature.DiscardUnknown(m)
}

var xxx_messageInfo_Feature proto.InternalMessageInfo

func (m *Feature) GetFeatureId() string {
	if m != nil {
		return m.FeatureId
	}
	return ""
}

func (m *Feature) GetFeatureName() string {
	if m != nil {
		return m.FeatureName
	}
	return ""
}

func (m *Feature) GetActionBundleSet() []*ActionBundle {
	if m != nil {
		return m.ActionBundleSet
	}
	return nil
}

func (m *Feature) GetCheckedActionBundleIdSet() []string {
	if m != nil {
		return m.CheckedActionBundleIdSet
	}
	return nil
}

type ModuleElem struct {
	// module id
	ModuleId string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"`
	// module name
	ModuleName string `protobuf:"bytes,2,opt,name=module_name,json=moduleName,proto3" json:"module_name,omitempty"`
	// list of feature
	FeatureSet []*Feature `protobuf:"bytes,3,rep,name=feature_set,json=featureSet,proto3" json:"feature_set,omitempty"`
	// access level of visiting data
	DataLevel string `protobuf:"bytes,4,opt,name=data_level,json=dataLevel,proto3" json:"data_level,omitempty"`
	// is all feature in module elem checked
	IsCheckAll           bool     `protobuf:"varint,5,opt,name=is_check_all,json=isCheckAll,proto3" json:"is_check_all,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ModuleElem) Reset()         { *m = ModuleElem{} }
func (m *ModuleElem) String() string { return proto.CompactTextString(m) }
func (*ModuleElem) ProtoMessage()    {}
func (*ModuleElem) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{38}
}

func (m *ModuleElem) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModuleElem.Unmarshal(m, b)
}
func (m *ModuleElem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModuleElem.Marshal(b, m, deterministic)
}
func (m *ModuleElem) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModuleElem.Merge(m, src)
}
func (m *ModuleElem) XXX_Size() int {
	return xxx_messageInfo_ModuleElem.Size(m)
}
func (m *ModuleElem) XXX_DiscardUnknown() {
	xxx_messageInfo_ModuleElem.DiscardUnknown(m)
}

var xxx_messageInfo_ModuleElem proto.InternalMessageInfo

func (m *ModuleElem) GetModuleId() string {
	if m != nil {
		return m.ModuleId
	}
	return ""
}

func (m *ModuleElem) GetModuleName() string {
	if m != nil {
		return m.ModuleName
	}
	return ""
}

func (m *ModuleElem) GetFeatureSet() []*Feature {
	if m != nil {
		return m.FeatureSet
	}
	return nil
}

func (m *ModuleElem) GetDataLevel() string {
	if m != nil {
		return m.DataLevel
	}
	return ""
}

func (m *ModuleElem) GetIsCheckAll() bool {
	if m != nil {
		return m.IsCheckAll
	}
	return false
}

type Module struct {
	// list of module elem
	ModuleElemSet        []*ModuleElem `protobuf:"bytes,1,rep,name=module_elem_set,json=moduleElemSet,proto3" json:"module_elem_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *Module) Reset()         { *m = Module{} }
func (m *Module) String() string { return proto.CompactTextString(m) }
func (*Module) ProtoMessage()    {}
func (*Module) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{39}
}

func (m *Module) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Module.Unmarshal(m, b)
}
func (m *Module) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Module.Marshal(b, m, deterministic)
}
func (m *Module) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Module.Merge(m, src)
}
func (m *Module) XXX_Size() int {
	return xxx_messageInfo_Module.Size(m)
}
func (m *Module) XXX_DiscardUnknown() {
	xxx_messageInfo_Module.DiscardUnknown(m)
}

var xxx_messageInfo_Module proto.InternalMessageInfo

func (m *Module) GetModuleElemSet() []*ModuleElem {
	if m != nil {
		return m.ModuleElemSet
	}
	return nil
}

type CanDoRequest struct {
	// required, id of user to check whether has permission
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// required, request uri
	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	// required, url method, http verb
	UrlMethod string `protobuf:"bytes,3,opt,name=url_method,json=urlMethod,proto3" json:"url_method,omitempty"`
	// rpc method eg.[Token|CanDo|...]
	ApiMethod            string   `protobuf:"bytes,4,opt,name=api_method,json=apiMethod,proto3" json:"api_method,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CanDoRequest) Reset()         { *m = CanDoRequest{} }
func (m *CanDoRequest) String() string { return proto.CompactTextString(m) }
func (*CanDoRequest) ProtoMessage()    {}
func (*CanDoRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{40}
}

func (m *CanDoRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CanDoRequest.Unmarshal(m, b)
}
func (m *CanDoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CanDoRequest.Marshal(b, m, deterministic)
}
func (m *CanDoRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CanDoRequest.Merge(m, src)
}
func (m *CanDoRequest) XXX_Size() int {
	return xxx_messageInfo_CanDoRequest.Size(m)
}
func (m *CanDoRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CanDoRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CanDoRequest proto.InternalMessageInfo

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

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

func (m *CanDoRequest) GetUrlMethod() string {
	if m != nil {
		return m.UrlMethod
	}
	return ""
}

func (m *CanDoRequest) GetApiMethod() string {
	if m != nil {
		return m.ApiMethod
	}
	return ""
}

type CanDoResponse struct {
	// id of user to check whether has permission
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// access path of user
	AccessPath string `protobuf:"bytes,2,opt,name=access_path,json=accessPath,proto3" json:"access_path,omitempty"`
	// owner path of user, concat string group_path:user_id
	OwnerPath            string   `protobuf:"bytes,3,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CanDoResponse) Reset()         { *m = CanDoResponse{} }
func (m *CanDoResponse) String() string { return proto.CompactTextString(m) }
func (*CanDoResponse) ProtoMessage()    {}
func (*CanDoResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{41}
}

func (m *CanDoResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CanDoResponse.Unmarshal(m, b)
}
func (m *CanDoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CanDoResponse.Marshal(b, m, deterministic)
}
func (m *CanDoResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CanDoResponse.Merge(m, src)
}
func (m *CanDoResponse) XXX_Size() int {
	return xxx_messageInfo_CanDoResponse.Size(m)
}
func (m *CanDoResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CanDoResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CanDoResponse proto.InternalMessageInfo

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

func (m *CanDoResponse) GetAccessPath() string {
	if m != nil {
		return m.AccessPath
	}
	return ""
}

func (m *CanDoResponse) GetOwnerPath() string {
	if m != nil {
		return m.OwnerPath
	}
	return ""
}

type GetRoleModuleRequest struct {
	// required, use role id to get role's module
	RoleId               string   `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetRoleModuleRequest) Reset()         { *m = GetRoleModuleRequest{} }
func (m *GetRoleModuleRequest) String() string { return proto.CompactTextString(m) }
func (*GetRoleModuleRequest) ProtoMessage()    {}
func (*GetRoleModuleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{42}
}

func (m *GetRoleModuleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetRoleModuleRequest.Unmarshal(m, b)
}
func (m *GetRoleModuleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetRoleModuleRequest.Marshal(b, m, deterministic)
}
func (m *GetRoleModuleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetRoleModuleRequest.Merge(m, src)
}
func (m *GetRoleModuleRequest) XXX_Size() int {
	return xxx_messageInfo_GetRoleModuleRequest.Size(m)
}
func (m *GetRoleModuleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetRoleModuleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetRoleModuleRequest proto.InternalMessageInfo

func (m *GetRoleModuleRequest) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

type GetRoleModuleResponse struct {
	// role id
	RoleId string `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// module info of role
	Module               *Module  `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetRoleModuleResponse) Reset()         { *m = GetRoleModuleResponse{} }
func (m *GetRoleModuleResponse) String() string { return proto.CompactTextString(m) }
func (*GetRoleModuleResponse) ProtoMessage()    {}
func (*GetRoleModuleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{43}
}

func (m *GetRoleModuleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetRoleModuleResponse.Unmarshal(m, b)
}
func (m *GetRoleModuleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetRoleModuleResponse.Marshal(b, m, deterministic)
}
func (m *GetRoleModuleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetRoleModuleResponse.Merge(m, src)
}
func (m *GetRoleModuleResponse) XXX_Size() int {
	return xxx_messageInfo_GetRoleModuleResponse.Size(m)
}
func (m *GetRoleModuleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetRoleModuleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetRoleModuleResponse proto.InternalMessageInfo

func (m *GetRoleModuleResponse) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

func (m *GetRoleModuleResponse) GetModule() *Module {
	if m != nil {
		return m.Module
	}
	return nil
}

type ModifyRoleModuleRequest struct {
	// required, use role id to modify role module
	RoleId string `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// required, module info
	Module               *Module  `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ModifyRoleModuleRequest) Reset()         { *m = ModifyRoleModuleRequest{} }
func (m *ModifyRoleModuleRequest) String() string { return proto.CompactTextString(m) }
func (*ModifyRoleModuleRequest) ProtoMessage()    {}
func (*ModifyRoleModuleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{44}
}

func (m *ModifyRoleModuleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyRoleModuleRequest.Unmarshal(m, b)
}
func (m *ModifyRoleModuleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyRoleModuleRequest.Marshal(b, m, deterministic)
}
func (m *ModifyRoleModuleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyRoleModuleRequest.Merge(m, src)
}
func (m *ModifyRoleModuleRequest) XXX_Size() int {
	return xxx_messageInfo_ModifyRoleModuleRequest.Size(m)
}
func (m *ModifyRoleModuleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyRoleModuleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyRoleModuleRequest proto.InternalMessageInfo

func (m *ModifyRoleModuleRequest) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

func (m *ModifyRoleModuleRequest) GetModule() *Module {
	if m != nil {
		return m.Module
	}
	return nil
}

type ModifyRoleModuleResponse struct {
	// role id used to modify role module
	RoleId               string   `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ModifyRoleModuleResponse) Reset()         { *m = ModifyRoleModuleResponse{} }
func (m *ModifyRoleModuleResponse) String() string { return proto.CompactTextString(m) }
func (*ModifyRoleModuleResponse) ProtoMessage()    {}
func (*ModifyRoleModuleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{45}
}

func (m *ModifyRoleModuleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyRoleModuleResponse.Unmarshal(m, b)
}
func (m *ModifyRoleModuleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyRoleModuleResponse.Marshal(b, m, deterministic)
}
func (m *ModifyRoleModuleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyRoleModuleResponse.Merge(m, src)
}
func (m *ModifyRoleModuleResponse) XXX_Size() int {
	return xxx_messageInfo_ModifyRoleModuleResponse.Size(m)
}
func (m *ModifyRoleModuleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyRoleModuleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyRoleModuleResponse proto.InternalMessageInfo

func (m *ModifyRoleModuleResponse) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

type CreateRoleRequest struct {
	// required, role name
	RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"`
	// role description
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// required, portal of role eg.[global_admin|user|isv]
	Portal               string   `protobuf:"bytes,3,opt,name=portal,proto3" json:"portal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateRoleRequest) Reset()         { *m = CreateRoleRequest{} }
func (m *CreateRoleRequest) String() string { return proto.CompactTextString(m) }
func (*CreateRoleRequest) ProtoMessage()    {}
func (*CreateRoleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{46}
}

func (m *CreateRoleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateRoleRequest.Unmarshal(m, b)
}
func (m *CreateRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateRoleRequest.Marshal(b, m, deterministic)
}
func (m *CreateRoleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateRoleRequest.Merge(m, src)
}
func (m *CreateRoleRequest) XXX_Size() int {
	return xxx_messageInfo_CreateRoleRequest.Size(m)
}
func (m *CreateRoleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateRoleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateRoleRequest proto.InternalMessageInfo

func (m *CreateRoleRequest) GetRoleName() string {
	if m != nil {
		return m.RoleName
	}
	return ""
}

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

func (m *CreateRoleRequest) GetPortal() string {
	if m != nil {
		return m.Portal
	}
	return ""
}

type CreateRoleResponse struct {
	// id of role created
	RoleId               string   `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateRoleResponse) Reset()         { *m = CreateRoleResponse{} }
func (m *CreateRoleResponse) String() string { return proto.CompactTextString(m) }
func (*CreateRoleResponse) ProtoMessage()    {}
func (*CreateRoleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{47}
}

func (m *CreateRoleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateRoleResponse.Unmarshal(m, b)
}
func (m *CreateRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateRoleResponse.Marshal(b, m, deterministic)
}
func (m *CreateRoleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateRoleResponse.Merge(m, src)
}
func (m *CreateRoleResponse) XXX_Size() int {
	return xxx_messageInfo_CreateRoleResponse.Size(m)
}
func (m *CreateRoleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateRoleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreateRoleResponse proto.InternalMessageInfo

func (m *CreateRoleResponse) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

type DeleteRolesRequest struct {
	// required, ids of role to delete
	RoleId               []string `protobuf:"bytes,1,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteRolesRequest) Reset()         { *m = DeleteRolesRequest{} }
func (m *DeleteRolesRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteRolesRequest) ProtoMessage()    {}
func (*DeleteRolesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{48}
}

func (m *DeleteRolesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteRolesRequest.Unmarshal(m, b)
}
func (m *DeleteRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteRolesRequest.Marshal(b, m, deterministic)
}
func (m *DeleteRolesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteRolesRequest.Merge(m, src)
}
func (m *DeleteRolesRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteRolesRequest.Size(m)
}
func (m *DeleteRolesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteRolesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteRolesRequest proto.InternalMessageInfo

func (m *DeleteRolesRequest) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type DeleteRolesResponse struct {
	// ids of roles deleted
	RoleId               []string `protobuf:"bytes,1,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteRolesResponse) Reset()         { *m = DeleteRolesResponse{} }
func (m *DeleteRolesResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteRolesResponse) ProtoMessage()    {}
func (*DeleteRolesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{49}
}

func (m *DeleteRolesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteRolesResponse.Unmarshal(m, b)
}
func (m *DeleteRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteRolesResponse.Marshal(b, m, deterministic)
}
func (m *DeleteRolesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteRolesResponse.Merge(m, src)
}
func (m *DeleteRolesResponse) XXX_Size() int {
	return xxx_messageInfo_DeleteRolesResponse.Size(m)
}
func (m *DeleteRolesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteRolesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteRolesResponse proto.InternalMessageInfo

func (m *DeleteRolesResponse) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type ModifyRoleRequest struct {
	// required, id of role to modify
	RoleId string `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// role name
	RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"`
	// role description
	Description          string   `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ModifyRoleRequest) Reset()         { *m = ModifyRoleRequest{} }
func (m *ModifyRoleRequest) String() string { return proto.CompactTextString(m) }
func (*ModifyRoleRequest) ProtoMessage()    {}
func (*ModifyRoleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{50}
}

func (m *ModifyRoleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyRoleRequest.Unmarshal(m, b)
}
func (m *ModifyRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyRoleRequest.Marshal(b, m, deterministic)
}
func (m *ModifyRoleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyRoleRequest.Merge(m, src)
}
func (m *ModifyRoleRequest) XXX_Size() int {
	return xxx_messageInfo_ModifyRoleRequest.Size(m)
}
func (m *ModifyRoleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyRoleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyRoleRequest proto.InternalMessageInfo

func (m *ModifyRoleRequest) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

func (m *ModifyRoleRequest) GetRoleName() string {
	if m != nil {
		return m.RoleName
	}
	return ""
}

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

type ModifyRoleResponse struct {
	// id of role modified
	RoleId               string   `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ModifyRoleResponse) Reset()         { *m = ModifyRoleResponse{} }
func (m *ModifyRoleResponse) String() string { return proto.CompactTextString(m) }
func (*ModifyRoleResponse) ProtoMessage()    {}
func (*ModifyRoleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{51}
}

func (m *ModifyRoleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ModifyRoleResponse.Unmarshal(m, b)
}
func (m *ModifyRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ModifyRoleResponse.Marshal(b, m, deterministic)
}
func (m *ModifyRoleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ModifyRoleResponse.Merge(m, src)
}
func (m *ModifyRoleResponse) XXX_Size() int {
	return xxx_messageInfo_ModifyRoleResponse.Size(m)
}
func (m *ModifyRoleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ModifyRoleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ModifyRoleResponse proto.InternalMessageInfo

func (m *ModifyRoleResponse) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

type GetRoleRequest struct {
	// required, use role id to get role info
	RoleId               string   `protobuf:"bytes,1,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetRoleRequest) Reset()         { *m = GetRoleRequest{} }
func (m *GetRoleRequest) String() string { return proto.CompactTextString(m) }
func (*GetRoleRequest) ProtoMessage()    {}
func (*GetRoleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{52}
}

func (m *GetRoleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetRoleRequest.Unmarshal(m, b)
}
func (m *GetRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetRoleRequest.Marshal(b, m, deterministic)
}
func (m *GetRoleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetRoleRequest.Merge(m, src)
}
func (m *GetRoleRequest) XXX_Size() int {
	return xxx_messageInfo_GetRoleRequest.Size(m)
}
func (m *GetRoleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetRoleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetRoleRequest proto.InternalMessageInfo

func (m *GetRoleRequest) GetRoleId() string {
	if m != nil {
		return m.RoleId
	}
	return ""
}

type GetRoleResponse struct {
	// role info
	Role                 *Role    `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetRoleResponse) Reset()         { *m = GetRoleResponse{} }
func (m *GetRoleResponse) String() string { return proto.CompactTextString(m) }
func (*GetRoleResponse) ProtoMessage()    {}
func (*GetRoleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{53}
}

func (m *GetRoleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetRoleResponse.Unmarshal(m, b)
}
func (m *GetRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetRoleResponse.Marshal(b, m, deterministic)
}
func (m *GetRoleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetRoleResponse.Merge(m, src)
}
func (m *GetRoleResponse) XXX_Size() int {
	return xxx_messageInfo_GetRoleResponse.Size(m)
}
func (m *GetRoleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetRoleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetRoleResponse proto.InternalMessageInfo

func (m *GetRoleResponse) GetRole() *Role {
	if m != nil {
		return m.Role
	}
	return nil
}

type DescribeRolesRequest struct {
	// query key, support these fields(role_id, portal, status)
	SearchWord string `protobuf:"bytes,1,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey string `protobuf:"bytes,2,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse bool `protobuf:"varint,3,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
	// role ids
	RoleId []string `protobuf:"bytes,6,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	// name
	RoleName []string `protobuf:"bytes,7,rep,name=role_name,json=roleName,proto3" json:"role_name,omitempty"`
	// portal eg.[global_admin|user|isv]
	Portal []string `protobuf:"bytes,8,rep,name=portal,proto3" json:"portal,omitempty"`
	// status eg.[active|deleted]
	Status []string `protobuf:"bytes,9,rep,name=status,proto3" json:"status,omitempty"`
	// action bundle ids
	ActionBundleId       []string `protobuf:"bytes,10,rep,name=action_bundle_id,json=actionBundleId,proto3" json:"action_bundle_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeRolesRequest) Reset()         { *m = DescribeRolesRequest{} }
func (m *DescribeRolesRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeRolesRequest) ProtoMessage()    {}
func (*DescribeRolesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{54}
}

func (m *DescribeRolesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeRolesRequest.Unmarshal(m, b)
}
func (m *DescribeRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeRolesRequest.Marshal(b, m, deterministic)
}
func (m *DescribeRolesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeRolesRequest.Merge(m, src)
}
func (m *DescribeRolesRequest) XXX_Size() int {
	return xxx_messageInfo_DescribeRolesRequest.Size(m)
}
func (m *DescribeRolesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeRolesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeRolesRequest proto.InternalMessageInfo

func (m *DescribeRolesRequest) GetSearchWord() string {
	if m != nil {
		return m.SearchWord
	}
	return ""
}

func (m *DescribeRolesRequest) GetSortKey() string {
	if m != nil {
		return m.SortKey
	}
	return ""
}

func (m *DescribeRolesRequest) GetReverse() bool {
	if m != nil {
		return m.Reverse
	}
	return false
}

func (m *DescribeRolesRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeRolesRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeRolesRequest) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

func (m *DescribeRolesRequest) GetRoleName() []string {
	if m != nil {
		return m.RoleName
	}
	return nil
}

func (m *DescribeRolesRequest) GetPortal() []string {
	if m != nil {
		return m.Portal
	}
	return nil
}

func (m *DescribeRolesRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *DescribeRolesRequest) GetActionBundleId() []string {
	if m != nil {
		return m.ActionBundleId
	}
	return nil
}

type DescribeRolesResponse struct {
	// total count of roles
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of role
	RoleSet              []*Role  `protobuf:"bytes,2,rep,name=role_set,json=roleSet,proto3" json:"role_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeRolesResponse) Reset()         { *m = DescribeRolesResponse{} }
func (m *DescribeRolesResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeRolesResponse) ProtoMessage()    {}
func (*DescribeRolesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{55}
}

func (m *DescribeRolesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DescribeRolesResponse.Unmarshal(m, b)
}
func (m *DescribeRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DescribeRolesResponse.Marshal(b, m, deterministic)
}
func (m *DescribeRolesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DescribeRolesResponse.Merge(m, src)
}
func (m *DescribeRolesResponse) XXX_Size() int {
	return xxx_messageInfo_DescribeRolesResponse.Size(m)
}
func (m *DescribeRolesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DescribeRolesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DescribeRolesResponse proto.InternalMessageInfo

func (m *DescribeRolesResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeRolesResponse) GetRoleSet() []*Role {
	if m != nil {
		return m.RoleSet
	}
	return nil
}

type BindUserRoleRequest struct {
	// required, ids of user to bind
	UserId []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// required, ids of role for user to bind with
	RoleId               []string `protobuf:"bytes,2,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BindUserRoleRequest) Reset()         { *m = BindUserRoleRequest{} }
func (m *BindUserRoleRequest) String() string { return proto.CompactTextString(m) }
func (*BindUserRoleRequest) ProtoMessage()    {}
func (*BindUserRoleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{56}
}

func (m *BindUserRoleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BindUserRoleRequest.Unmarshal(m, b)
}
func (m *BindUserRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BindUserRoleRequest.Marshal(b, m, deterministic)
}
func (m *BindUserRoleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BindUserRoleRequest.Merge(m, src)
}
func (m *BindUserRoleRequest) XXX_Size() int {
	return xxx_messageInfo_BindUserRoleRequest.Size(m)
}
func (m *BindUserRoleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_BindUserRoleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_BindUserRoleRequest proto.InternalMessageInfo

func (m *BindUserRoleRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *BindUserRoleRequest) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type BindUserRoleResponse struct {
	// ids of user bind
	UserId []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// ids of role for user to bind with
	RoleId               []string `protobuf:"bytes,2,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BindUserRoleResponse) Reset()         { *m = BindUserRoleResponse{} }
func (m *BindUserRoleResponse) String() string { return proto.CompactTextString(m) }
func (*BindUserRoleResponse) ProtoMessage()    {}
func (*BindUserRoleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{57}
}

func (m *BindUserRoleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BindUserRoleResponse.Unmarshal(m, b)
}
func (m *BindUserRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BindUserRoleResponse.Marshal(b, m, deterministic)
}
func (m *BindUserRoleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BindUserRoleResponse.Merge(m, src)
}
func (m *BindUserRoleResponse) XXX_Size() int {
	return xxx_messageInfo_BindUserRoleResponse.Size(m)
}
func (m *BindUserRoleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_BindUserRoleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_BindUserRoleResponse proto.InternalMessageInfo

func (m *BindUserRoleResponse) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *BindUserRoleResponse) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type UnbindUserRoleRequest struct {
	// ids of user to unbind
	UserId []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// ids of role for user to unbind with
	RoleId               []string `protobuf:"bytes,2,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnbindUserRoleRequest) Reset()         { *m = UnbindUserRoleRequest{} }
func (m *UnbindUserRoleRequest) String() string { return proto.CompactTextString(m) }
func (*UnbindUserRoleRequest) ProtoMessage()    {}
func (*UnbindUserRoleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{58}
}

func (m *UnbindUserRoleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnbindUserRoleRequest.Unmarshal(m, b)
}
func (m *UnbindUserRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnbindUserRoleRequest.Marshal(b, m, deterministic)
}
func (m *UnbindUserRoleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnbindUserRoleRequest.Merge(m, src)
}
func (m *UnbindUserRoleRequest) XXX_Size() int {
	return xxx_messageInfo_UnbindUserRoleRequest.Size(m)
}
func (m *UnbindUserRoleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UnbindUserRoleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UnbindUserRoleRequest proto.InternalMessageInfo

func (m *UnbindUserRoleRequest) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *UnbindUserRoleRequest) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type UnbindUserRoleResponse struct {
	// ids of user to unbind
	UserId []string `protobuf:"bytes,1,rep,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// ids of role for user to unbind with
	RoleId               []string `protobuf:"bytes,2,rep,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnbindUserRoleResponse) Reset()         { *m = UnbindUserRoleResponse{} }
func (m *UnbindUserRoleResponse) String() string { return proto.CompactTextString(m) }
func (*UnbindUserRoleResponse) ProtoMessage()    {}
func (*UnbindUserRoleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{59}
}

func (m *UnbindUserRoleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnbindUserRoleResponse.Unmarshal(m, b)
}
func (m *UnbindUserRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnbindUserRoleResponse.Marshal(b, m, deterministic)
}
func (m *UnbindUserRoleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnbindUserRoleResponse.Merge(m, src)
}
func (m *UnbindUserRoleResponse) XXX_Size() int {
	return xxx_messageInfo_UnbindUserRoleResponse.Size(m)
}
func (m *UnbindUserRoleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_UnbindUserRoleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_UnbindUserRoleResponse proto.InternalMessageInfo

func (m *UnbindUserRoleResponse) GetUserId() []string {
	if m != nil {
		return m.UserId
	}
	return nil
}

func (m *UnbindUserRoleResponse) GetRoleId() []string {
	if m != nil {
		return m.RoleId
	}
	return nil
}

type CreateClientRequest struct {
	// required, user id for create client
	UserId               string   `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateClientRequest) Reset()         { *m = CreateClientRequest{} }
func (m *CreateClientRequest) String() string { return proto.CompactTextString(m) }
func (*CreateClientRequest) ProtoMessage()    {}
func (*CreateClientRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{60}
}

func (m *CreateClientRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateClientRequest.Unmarshal(m, b)
}
func (m *CreateClientRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateClientRequest.Marshal(b, m, deterministic)
}
func (m *CreateClientRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateClientRequest.Merge(m, src)
}
func (m *CreateClientRequest) XXX_Size() int {
	return xxx_messageInfo_CreateClientRequest.Size(m)
}
func (m *CreateClientRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateClientRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateClientRequest proto.InternalMessageInfo

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

type CreateClientResponse struct {
	// user id of client
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// client id of user
	ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	// client secret,used for validate client credentials
	ClientSecret         string   `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateClientResponse) Reset()         { *m = CreateClientResponse{} }
func (m *CreateClientResponse) String() string { return proto.CompactTextString(m) }
func (*CreateClientResponse) ProtoMessage()    {}
func (*CreateClientResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{61}
}

func (m *CreateClientResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateClientResponse.Unmarshal(m, b)
}
func (m *CreateClientResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateClientResponse.Marshal(b, m, deterministic)
}
func (m *CreateClientResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateClientResponse.Merge(m, src)
}
func (m *CreateClientResponse) XXX_Size() int {
	return xxx_messageInfo_CreateClientResponse.Size(m)
}
func (m *CreateClientResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateClientResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreateClientResponse proto.InternalMessageInfo

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

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

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

type TokenRequest struct {
	// required, type of client request verification.eg.[client_credentials or password or refresh_token]
	GrantType string `protobuf:"bytes,1,opt,name=grant_type,json=grantType,proto3" json:"grant_type,omitempty"`
	// required, client id
	ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	// required, used for validate client credentials
	ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"`
	// scope
	Scope string `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"`
	// required or not depend on grant_type, user's name
	Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
	// required or not depend on grant_type, user's password
	Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
	// required or not depend on grant_type, refresh token to check whether token expired
	RefreshToken         string   `protobuf:"bytes,7,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TokenRequest) Reset()         { *m = TokenRequest{} }
func (m *TokenRequest) String() string { return proto.CompactTextString(m) }
func (*TokenRequest) ProtoMessage()    {}
func (*TokenRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{62}
}

func (m *TokenRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TokenRequest.Unmarshal(m, b)
}
func (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TokenRequest.Marshal(b, m, deterministic)
}
func (m *TokenRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TokenRequest.Merge(m, src)
}
func (m *TokenRequest) XXX_Size() int {
	return xxx_messageInfo_TokenRequest.Size(m)
}
func (m *TokenRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TokenRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TokenRequest proto.InternalMessageInfo

func (m *TokenRequest) GetGrantType() string {
	if m != nil {
		return m.GrantType
	}
	return ""
}

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

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

func (m *TokenRequest) GetScope() string {
	if m != nil {
		return m.Scope
	}
	return ""
}

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

func (m *TokenRequest) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

func (m *TokenRequest) GetRefreshToken() string {
	if m != nil {
		return m.RefreshToken
	}
	return ""
}

type TokenResponse struct {
	// token type.eg.[sender,bearer]
	TokenType string `protobuf:"bytes,1,opt,name=token_type,json=tokenType,proto3" json:"token_type,omitempty"`
	// default 2h
	ExpiresIn int32 `protobuf:"varint,2,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"`
	//access token, generator by jwt(key=secrete key)
	AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
	//refresh token, timeliness,default expired after 2 weeks
	RefreshToken string `protobuf:"bytes,4,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"`
	//id token, generator by jwt(key="")
	IdToken              string   `protobuf:"bytes,5,opt,name=id_token,json=idToken,proto3" json:"id_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TokenResponse) Reset()         { *m = TokenResponse{} }
func (m *TokenResponse) String() string { return proto.CompactTextString(m) }
func (*TokenResponse) ProtoMessage()    {}
func (*TokenResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_8e28828dcb8d24f0, []int{63}
}

func (m *TokenResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TokenResponse.Unmarshal(m, b)
}
func (m *TokenResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TokenResponse.Marshal(b, m, deterministic)
}
func (m *TokenResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TokenResponse.Merge(m, src)
}
func (m *TokenResponse) XXX_Size() int {
	return xxx_messageInfo_TokenResponse.Size(m)
}
func (m *TokenResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_TokenResponse.DiscardUnknown(m)
}

var xxx_messageInfo_TokenResponse proto.InternalMessageInfo

func (m *TokenResponse) GetTokenType() string {
	if m != nil {
		return m.TokenType
	}
	return ""
}

func (m *TokenResponse) GetExpiresIn() int32 {
	if m != nil {
		return m.ExpiresIn
	}
	return 0
}

func (m *TokenResponse) GetAccessToken() string {
	if m != nil {
		return m.AccessToken
	}
	return ""
}

func (m *TokenResponse) GetRefreshToken() string {
	if m != nil {
		return m.RefreshToken
	}
	return ""
}

func (m *TokenResponse) GetIdToken() string {
	if m != nil {
		return m.IdToken
	}
	return ""
}

func init() {
	proto.RegisterType((*User)(nil), "openpitrix.User")
	proto.RegisterType((*UserDetail)(nil), "openpitrix.UserDetail")
	proto.RegisterType((*Group)(nil), "openpitrix.Group")
	proto.RegisterType((*GroupDetail)(nil), "openpitrix.GroupDetail")
	proto.RegisterType((*DescribeUsersRequest)(nil), "openpitrix.DescribeUsersRequest")
	proto.RegisterType((*DescribeUsersResponse)(nil), "openpitrix.DescribeUsersResponse")
	proto.RegisterType((*DescribeUsersDetailResponse)(nil), "openpitrix.DescribeUsersDetailResponse")
	proto.RegisterType((*ModifyUserRequest)(nil), "openpitrix.ModifyUserRequest")
	proto.RegisterType((*ModifyUserResponse)(nil), "openpitrix.ModifyUserResponse")
	proto.RegisterType((*DeleteUsersRequest)(nil), "openpitrix.DeleteUsersRequest")
	proto.RegisterType((*DeleteUsersResponse)(nil), "openpitrix.DeleteUsersResponse")
	proto.RegisterType((*CreatePasswordResetRequest)(nil), "openpitrix.CreatePasswordResetRequest")
	proto.RegisterType((*CreatePasswordResetResponse)(nil), "openpitrix.CreatePasswordResetResponse")
	proto.RegisterType((*ChangePasswordRequest)(nil), "openpitrix.ChangePasswordRequest")
	proto.RegisterType((*ChangePasswordResponse)(nil), "openpitrix.ChangePasswordResponse")
	proto.RegisterType((*GetPasswordResetRequest)(nil), "openpitrix.GetPasswordResetRequest")
	proto.RegisterType((*GetPasswordResetResponse)(nil), "openpitrix.GetPasswordResetResponse")
	proto.RegisterType((*CreateUserRequest)(nil), "openpitrix.CreateUserRequest")
	proto.RegisterType((*CreateUserResponse)(nil), "openpitrix.CreateUserResponse")
	proto.RegisterType((*ValidateUserPasswordRequest)(nil), "openpitrix.ValidateUserPasswordRequest")
	proto.RegisterType((*ValidateUserPasswordResponse)(nil), "openpitrix.ValidateUserPasswordResponse")
	proto.RegisterType((*CreateGroupRequest)(nil), "openpitrix.CreateGroupRequest")
	proto.RegisterType((*CreateGroupResponse)(nil), "openpitrix.CreateGroupResponse")
	proto.RegisterType((*DescribeGroupsRequest)(nil), "openpitrix.DescribeGroupsRequest")
	proto.RegisterType((*DescribeGroupsResponse)(nil), "openpitrix.DescribeGroupsResponse")
	proto.RegisterType((*DescribeGroupsDetailResponse)(nil), "openpitrix.DescribeGroupsDetailResponse")
	proto.RegisterType((*ModifyGroupRequest)(nil), "openpitrix.ModifyGroupRequest")
	proto.RegisterType((*ModifyGroupResponse)(nil), "openpitrix.ModifyGroupResponse")
	proto.RegisterType((*DeleteGroupsRequest)(nil), "openpitrix.DeleteGroupsRequest")
	proto.RegisterType((*DeleteGroupsResponse)(nil), "openpitrix.DeleteGroupsResponse")
	proto.RegisterType((*JoinGroupRequest)(nil), "openpitrix.JoinGroupRequest")
	proto.RegisterType((*JoinGroupResponse)(nil), "openpitrix.JoinGroupResponse")
	proto.RegisterType((*LeaveGroupRequest)(nil), "openpitrix.LeaveGroupRequest")
	proto.RegisterType((*LeaveGroupResponse)(nil), "openpitrix.LeaveGroupResponse")
	proto.RegisterType((*Role)(nil), "openpitrix.Role")
	proto.RegisterType((*Api)(nil), "openpitrix.Api")
	proto.RegisterType((*ActionBundle)(nil), "openpitrix.ActionBundle")
	proto.RegisterType((*Feature)(nil), "openpitrix.Feature")
	proto.RegisterType((*ModuleElem)(nil), "openpitrix.ModuleElem")
	proto.RegisterType((*Module)(nil), "openpitrix.Module")
	proto.RegisterType((*CanDoRequest)(nil), "openpitrix.CanDoRequest")
	proto.RegisterType((*CanDoResponse)(nil), "openpitrix.CanDoResponse")
	proto.RegisterType((*GetRoleModuleRequest)(nil), "openpitrix.GetRoleModuleRequest")
	proto.RegisterType((*GetRoleModuleResponse)(nil), "openpitrix.GetRoleModuleResponse")
	proto.RegisterType((*ModifyRoleModuleRequest)(nil), "openpitrix.ModifyRoleModuleRequest")
	proto.RegisterType((*ModifyRoleModuleResponse)(nil), "openpitrix.ModifyRoleModuleResponse")
	proto.RegisterType((*CreateRoleRequest)(nil), "openpitrix.CreateRoleRequest")
	proto.RegisterType((*CreateRoleResponse)(nil), "openpitrix.CreateRoleResponse")
	proto.RegisterType((*DeleteRolesRequest)(nil), "openpitrix.DeleteRolesRequest")
	proto.RegisterType((*DeleteRolesResponse)(nil), "openpitrix.DeleteRolesResponse")
	proto.RegisterType((*ModifyRoleRequest)(nil), "openpitrix.ModifyRoleRequest")
	proto.RegisterType((*ModifyRoleResponse)(nil), "openpitrix.ModifyRoleResponse")
	proto.RegisterType((*GetRoleRequest)(nil), "openpitrix.GetRoleRequest")
	proto.RegisterType((*GetRoleResponse)(nil), "openpitrix.GetRoleResponse")
	proto.RegisterType((*DescribeRolesRequest)(nil), "openpitrix.DescribeRolesRequest")
	proto.RegisterType((*DescribeRolesResponse)(nil), "openpitrix.DescribeRolesResponse")
	proto.RegisterType((*BindUserRoleRequest)(nil), "openpitrix.BindUserRoleRequest")
	proto.RegisterType((*BindUserRoleResponse)(nil), "openpitrix.BindUserRoleResponse")
	proto.RegisterType((*UnbindUserRoleRequest)(nil), "openpitrix.UnbindUserRoleRequest")
	proto.RegisterType((*UnbindUserRoleResponse)(nil), "openpitrix.UnbindUserRoleResponse")
	proto.RegisterType((*CreateClientRequest)(nil), "openpitrix.CreateClientRequest")
	proto.RegisterType((*CreateClientResponse)(nil), "openpitrix.CreateClientResponse")
	proto.RegisterType((*TokenRequest)(nil), "openpitrix.TokenRequest")
	proto.RegisterType((*TokenResponse)(nil), "openpitrix.TokenResponse")
}

func init() { proto.RegisterFile("account.proto", fileDescriptor_8e28828dcb8d24f0) }

var fileDescriptor_8e28828dcb8d24f0 = []byte{
	// 3561 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3a, 0x5d, 0x6f, 0x1b, 0xc7,
	0xb5, 0x77, 0x29, 0x8a, 0x12, 0x0f, 0x45, 0x49, 0x1e, 0xcb, 0x32, 0x4d, 0x49, 0xf6, 0x7a, 0x63,
	0xd8, 0xb2, 0x2c, 0x4b, 0x89, 0x92, 0x20, 0x81, 0x73, 0xe3, 0x80, 0x96, 0x13, 0x5b, 0x49, 0xec,
	0x04, 0x74, 0x9c, 0x00, 0x37, 0x37, 0x21, 0x56, 0xdc, 0xa1, 0xb8, 0xf1, 0x72, 0x97, 0xd9, 0x5d,
	0x4a, 0xf1, 0xbd, 0x17, 0xb7, 0x68, 0xd0, 0x00, 0x6d, 0x81, 0xa0, 0x29, 0x8b, 0x14, 0xfd, 0x78,
	0x6a, 0x81, 0xbe, 0x04, 0x7d, 0x08, 0xfa, 0x52, 0xf4, 0xb1, 0x2f, 0x05, 0x0a, 0xf4, 0xa1, 0x1f,
	0xff, 0xa0, 0x2d, 0xd0, 0xf7, 0xf6, 0x0f, 0x14, 0x73, 0x66, 0x76, 0x77, 0x66, 0xb9, 0x94, 0x48,
	0x2b, 0x09, 0x50, 0xa0, 0x4f, 0xe2, 0xce, 0x39, 0x33, 0xe7, 0x63, 0xce, 0x9c, 0x4f, 0x41, 0xd9,
	0x6c, 0x36, 0xbd, 0x9e, 0x1b, 0x6e, 0x74, 0x7d, 0x2f, 0xf4, 0x08, 0x78, 0x5d, 0xea, 0x76, 0xed,
	0xd0, 0xb7, 0x3f, 0xa8, 0x9e, 0xdd, 0xf3, 0xbc, 0x3d, 0x87, 0x6e, 0x22, 0x64, 0xb7, 0xd7, 0xda,
	0x3c, 0xf0, 0xcd, 0x6e, 0x97, 0xfa, 0x01, 0xc7, 0xad, 0x9e, 0x4b, 0xc3, 0x43, 0xbb, 0x43, 0x83,
	0xd0, 0xec, 0x74, 0x05, 0xc2, 0xb2, 0x40, 0x30, 0xbb, 0xf6, 0xa6, 0xe9, 0xba, 0x5e, 0x68, 0x86,
	0xb6, 0xe7, 0x46, 0xdb, 0xd7, 0xf1, 0x4f, 0xf3, 0xea, 0x1e, 0x75, 0xaf, 0x06, 0x07, 0xe6, 0xde,
	0x1e, 0xf5, 0x37, 0xbd, 0x2e, 0x62, 0x0c, 0x62, 0x1b, 0x3f, 0xcc, 0x43, 0xfe, 0x7e, 0x40, 0x7d,
	0xf2, 0x34, 0x4c, 0xf5, 0x02, 0xea, 0x37, 0x6c, 0xab, 0xa2, 0xe9, 0xda, 0x6a, 0x69, 0x6b, 0x79,
	0x83, 0x93, 0xd9, 0x88, 0xf8, 0xd8, 0xb8, 0x17, 0xfa, 0xb6, 0xbb, 0xf7, 0xa6, 0xe9, 0xf4, 0x68,
	0xbd, 0xc0, 0x90, 0x77, 0x2c, 0xf2, 0x2c, 0x4c, 0xb3, 0x5f, 0xae, 0xd9, 0xa1, 0x95, 0xdc, 0x08,
	0xfb, 0x62, 0x6c, 0xb2, 0x05, 0x93, 0xb4, 0x63, 0xda, 0x4e, 0x65, 0x62, 0x84, 0x6d, 0x1c, 0x95,
	0xbc, 0x00, 0x33, 0xdd, 0xb6, 0xe7, 0xd2, 0x86, 0xdb, 0xeb, 0xec, 0x52, 0xbf, 0x92, 0x1f, 0x61,
	0x6b, 0x09, 0x77, 0xdc, 0xc5, 0x0d, 0xe4, 0x3a, 0x94, 0x2c, 0x1a, 0x34, 0x7d, 0x1b, 0x15, 0x52,
	0x99, 0x1c, 0x65, 0xbf, 0xb4, 0x81, 0x3c, 0x05, 0x85, 0x20, 0x34, 0xc3, 0x5e, 0x50, 0x29, 0x8c,
	0xa2, 0x24, 0x8e, 0x4b, 0x9e, 0x83, 0x52, 0xd3, 0xa7, 0x66, 0x48, 0x1b, 0xec, 0x2a, 0x2b, 0x53,
	0xb8, 0xb5, 0x3a, 0xb0, 0xf5, 0x8d, 0xe8, 0x9e, 0xeb, 0xc0, 0xd1, 0xd9, 0x02, 0xdb, 0xdc, 0xeb,
	0x5a, 0xf1, 0xe6, 0xe9, 0xa3, 0x37, 0x73, 0xf4, 0x68, 0x33, 0xe7, 0x81, 0x6f, 0x2e, 0x1e, 0xbd,
	0x99, 0xa3, 0xb3, 0x05, 0xe3, 0x3b, 0x1a, 0x00, 0xb3, 0x8d, 0x9b, 0x34, 0x64, 0xca, 0xbf, 0x00,
	0x79, 0x76, 0x79, 0xc2, 0x3c, 0xe6, 0x37, 0x12, 0x93, 0xde, 0x60, 0x58, 0x75, 0x84, 0x92, 0x2b,
	0x30, 0xed, 0x7b, 0x0e, 0x6d, 0x04, 0x34, 0xac, 0xe4, 0xf4, 0x89, 0x34, 0x66, 0xdd, 0x73, 0x68,
	0x7d, 0x8a, 0x61, 0xdc, 0xa3, 0x21, 0xd9, 0x80, 0xe2, 0x9e, 0xef, 0xf5, 0xba, 0x88, 0x3d, 0x81,
	0xd8, 0x27, 0x64, 0xec, 0x5b, 0x0c, 0x58, 0x9f, 0x46, 0x9c, 0x7b, 0x34, 0x34, 0x7e, 0x9a, 0x87,
	0x49, 0x5c, 0x23, 0x37, 0x61, 0xae, 0x6b, 0xfa, 0xd4, 0x0d, 0x1b, 0xfc, 0x80, 0x11, 0xcd, 0xb6,
	0xcc, 0x37, 0xe1, 0x19, 0x3b, 0x16, 0x79, 0x06, 0xa6, 0xe3, 0xed, 0xa3, 0x58, 0xef, 0xd4, 0x9e,
	0xd8, 0xf8, 0x1c, 0x00, 0xdf, 0xd8, 0x35, 0xc3, 0xf6, 0x48, 0x16, 0xcc, 0x05, 0x7d, 0xdd, 0x0c,
	0xdb, 0xe4, 0x71, 0xc8, 0xe3, 0x7b, 0x19, 0xc5, 0x7a, 0x11, 0x53, 0x32, 0xbb, 0xc9, 0x31, 0xcc,
	0x2e, 0x65, 0xec, 0x85, 0x71, 0x8d, 0xfd, 0x5f, 0xd4, 0x6c, 0x9b, 0x50, 0xc2, 0xfb, 0x15, 0x66,
	0x7b, 0x09, 0x26, 0x51, 0xf5, 0xc2, 0x3e, 0x32, 0xec, 0x8b, 0xc3, 0x99, 0xe5, 0xa2, 0x07, 0x1c,
	0x62, 0xb9, 0x68, 0xe3, 0xe8, 0x23, 0x99, 0x25, 0xfe, 0x7e, 0x02, 0x16, 0x6e, 0xa2, 0xae, 0x76,
	0x29, 0x83, 0x04, 0x75, 0xfa, 0x7e, 0x8f, 0x06, 0x21, 0x79, 0x1e, 0x4a, 0x01, 0x35, 0xfd, 0x66,
	0xbb, 0x71, 0xe0, 0xf9, 0xa3, 0x19, 0x25, 0xf0, 0x0d, 0x6f, 0x79, 0x3e, 0x5a, 0x64, 0xe0, 0xf9,
	0x61, 0xe3, 0x01, 0x7d, 0x38, 0x9a, 0x45, 0x32, 0xec, 0x57, 0xe8, 0x43, 0xf2, 0x14, 0x4c, 0xf9,
	0x74, 0x9f, 0xfa, 0x01, 0x15, 0xe6, 0x38, 0xa8, 0xae, 0x1b, 0x9e, 0xe7, 0x88, 0x5d, 0x02, 0x95,
	0x2c, 0xc0, 0xa4, 0x63, 0x77, 0xec, 0x10, 0x6d, 0xb1, 0x5c, 0xe7, 0x1f, 0x64, 0x11, 0x0a, 0x5e,
	0xab, 0xc5, 0xf4, 0x30, 0x89, 0xcb, 0xe2, 0x8b, 0x18, 0x50, 0xf6, 0x3d, 0x4f, 0x7a, 0x72, 0x05,
	0x7d, 0x62, 0xb5, 0x58, 0x2f, 0xb1, 0xc5, 0xe8, 0x49, 0x9d, 0x91, 0x9e, 0xd4, 0x14, 0x82, 0xe3,
	0x47, 0x73, 0x3a, 0x09, 0x31, 0xd3, 0x08, 0x89, 0x82, 0xc8, 0x62, 0x6c, 0xde, 0x45, 0xbe, 0x2e,
	0x0c, 0xf8, 0x34, 0xa0, 0xa7, 0x60, 0x1b, 0x80, 0x03, 0xd8, 0xe7, 0x8e, 0x45, 0xaa, 0x52, 0xd4,
	0x29, 0x21, 0x24, 0x89, 0x2b, 0x0b, 0x51, 0x5c, 0x99, 0x41, 0x80, 0x88, 0x1c, 0xe7, 0x53, 0x91,
	0xa3, 0xcc, 0x39, 0x97, 0x62, 0x83, 0x41, 0xe1, 0x54, 0xea, 0x46, 0x83, 0xae, 0xe7, 0x06, 0x94,
	0x9c, 0x83, 0x52, 0xe8, 0x85, 0xa6, 0xd3, 0xc0, 0x88, 0x8e, 0x57, 0x5a, 0xae, 0x03, 0x2e, 0x6d,
	0xb3, 0x95, 0xf1, 0x2c, 0xe7, 0xff, 0x61, 0x49, 0x21, 0xc3, 0xcd, 0x74, 0x74, 0x62, 0xd7, 0x61,
	0x0e, 0x89, 0x59, 0xb8, 0x4f, 0xa2, 0xb9, 0x98, 0xa6, 0x29, 0x4e, 0x2e, 0xf7, 0xe2, 0xdf, 0x8c,
	0xfe, 0x3f, 0x72, 0x70, 0xe2, 0x8e, 0x67, 0xd9, 0xad, 0x87, 0xc8, 0x97, 0x30, 0xdb, 0x47, 0x0c,
	0xff, 0x71, 0x10, 0xcf, 0x8d, 0x1e, 0xc4, 0xe5, 0x94, 0x61, 0x62, 0xac, 0x94, 0x21, 0xe5, 0xd0,
	0xf2, 0xe3, 0x3a, 0xb4, 0x67, 0x61, 0xba, 0x6b, 0x06, 0x01, 0x3e, 0xcc, 0x51, 0x1c, 0x69, 0x8c,
	0x3d, 0x90, 0x78, 0x14, 0xc6, 0x4c, 0x3c, 0x8c, 0x57, 0x80, 0xc8, 0x4a, 0x17, 0x97, 0xfd, 0x68,
	0x5a, 0x37, 0xae, 0x02, 0xb9, 0x49, 0x1d, 0x1a, 0xaa, 0x9e, 0xe7, 0xb4, 0x7c, 0x98, 0xf4, 0xbc,
	0x8c, 0x0d, 0x38, 0xa9, 0xa0, 0x0b, 0xe2, 0x43, 0xf1, 0x3f, 0xd6, 0xa0, 0xba, 0x8d, 0x9e, 0xfc,
	0x75, 0x21, 0x7f, 0x9d, 0x06, 0x34, 0x3c, 0xa6, 0xa9, 0xc8, 0xca, 0xcf, 0x8d, 0xa3, 0x7c, 0xc6,
	0xcf, 0x52, 0x26, 0x3f, 0xc7, 0xd2, 0x22, 0x73, 0xb5, 0x3e, 0x3b, 0x67, 0xe4, 0xe0, 0x8f, 0xd8,
	0x3b, 0x96, 0xf1, 0x5d, 0x0d, 0x4e, 0x6d, 0xb7, 0x4d, 0x77, 0x4f, 0xe2, 0x87, 0xab, 0xe6, 0x05,
	0x98, 0x71, 0xe9, 0x41, 0x23, 0x96, 0x73, 0x14, 0x76, 0x4a, 0x2e, 0x3d, 0x88, 0xce, 0x79, 0x74,
	0x9e, 0x5e, 0x83, 0xc5, 0x34, 0x4b, 0xc7, 0xb3, 0xb1, 0xa7, 0xe0, 0xf4, 0x2d, 0x1a, 0x66, 0x1a,
	0xc0, 0x19, 0x89, 0x49, 0x76, 0x64, 0x31, 0x61, 0xe3, 0x2e, 0x54, 0x06, 0x77, 0x09, 0x46, 0x86,
	0x6f, 0x93, 0x4d, 0x31, 0x87, 0x90, 0x88, 0x8b, 0x5f, 0xe5, 0xe0, 0x04, 0xbf, 0x7a, 0xd9, 0x59,
	0xc5, 0x5e, 0x47, 0x7b, 0xf4, 0xd2, 0x21, 0x37, 0x6e, 0xe9, 0x20, 0xdb, 0xef, 0xc4, 0x58, 0xce,
	0xe3, 0xe9, 0x24, 0x8c, 0x8d, 0xe2, 0xb2, 0xa2, 0x20, 0x77, 0xcc, 0x5a, 0x85, 0xb9, 0x1c, 0x59,
	0x75, 0xc7, 0x33, 0x87, 0xd7, 0x60, 0xe9, 0x4d, 0xd3, 0xb1, 0x2d, 0x71, 0x5c, 0xda, 0xf0, 0x17,
	0xe4, 0x1b, 0x89, 0x83, 0x6e, 0x35, 0xf5, 0xe4, 0x8b, 0xd2, 0xa3, 0xfe, 0x4f, 0x58, 0xce, 0x3e,
	0x50, 0xf0, 0xb9, 0x0c, 0xc5, 0x7d, 0x01, 0xe7, 0x9c, 0x4e, 0xd7, 0x93, 0x05, 0xe3, 0x77, 0x5a,
	0x24, 0x1c, 0x4f, 0xe1, 0x04, 0x1b, 0x5f, 0x4c, 0x55, 0x10, 0xe5, 0xe7, 0xb9, 0x91, 0xf3, 0xf3,
	0xd4, 0x55, 0x4d, 0x8c, 0x7b, 0x55, 0x77, 0xe1, 0xa4, 0x22, 0x8d, 0xd0, 0x81, 0x5c, 0x9e, 0x68,
	0x63, 0x94, 0x27, 0xc6, 0xe7, 0x13, 0x49, 0x2e, 0x83, 0x47, 0xfe, 0x3b, 0x3d, 0x15, 0x77, 0x7b,
	0x71, 0xd0, 0x42, 0x78, 0x96, 0x9a, 0xb2, 0x01, 0x39, 0x8d, 0x9d, 0x56, 0xd3, 0xd8, 0x15, 0xa5,
	0xf6, 0xe3, 0x19, 0xab, 0x54, 0xdd, 0xc5, 0x60, 0xb4, 0x21, 0x90, 0xc0, 0x77, 0x99, 0xa9, 0x24,
	0xb9, 0x6e, 0x49, 0xce, 0x75, 0x0d, 0x1b, 0x16, 0xd3, 0x37, 0x36, 0x6a, 0x46, 0xa8, 0x54, 0xd1,
	0xb9, 0xa3, 0xab, 0xe8, 0x0f, 0x35, 0x58, 0x56, 0x69, 0x8d, 0x9b, 0x83, 0xd6, 0x60, 0x9e, 0x53,
	0x1c, 0x48, 0x42, 0x4f, 0x0f, 0x10, 0x16, 0x67, 0xcf, 0xee, 0x25, 0x1f, 0x8c, 0x89, 0x8f, 0x72,
	0x51, 0x46, 0xa4, 0xbc, 0xe0, 0x47, 0x35, 0xf9, 0xaf, 0xfe, 0xd1, 0x66, 0x39, 0x9b, 0xfc, 0xd8,
	0xce, 0x86, 0x3d, 0x7d, 0x45, 0x0d, 0xc7, 0x7d, 0xfa, 0x8f, 0x47, 0xc9, 0x9e, 0xfa, 0xee, 0xcf,
	0x28, 0xe7, 0xc9, 0xf6, 0x6c, 0x3c, 0xc1, 0x2a, 0x59, 0x79, 0x47, 0x12, 0xaf, 0x87, 0x6d, 0x79,
	0x09, 0xe6, 0x5f, 0xf6, 0x6c, 0x57, 0xb9, 0xb9, 0xe1, 0xe8, 0x6a, 0x78, 0x97, 0x33, 0xcd, 0x5b,
	0x70, 0x42, 0x3a, 0xe7, 0x48, 0xba, 0x87, 0x1e, 0xf4, 0x2a, 0x35, 0xf7, 0xe9, 0xb1, 0x39, 0xba,
	0x0d, 0x44, 0x3e, 0xe8, 0x18, 0x2c, 0xfd, 0x68, 0x02, 0xf2, 0x75, 0xcf, 0xa1, 0x72, 0x15, 0xcb,
	0xa3, 0x63, 0x14, 0xe0, 0x97, 0xa0, 0x88, 0x80, 0xd8, 0x6e, 0x8b, 0x75, 0xec, 0x9d, 0xa1, 0x9f,
	0xd0, 0x07, 0xad, 0xb3, 0xa8, 0xda, 0xdf, 0x22, 0x14, 0xba, 0x9e, 0x1f, 0x9a, 0x0e, 0x9a, 0x5d,
	0xb1, 0x2e, 0xbe, 0x98, 0xd3, 0xf4, 0x0e, 0x5c, 0xea, 0xa3, 0x77, 0x2c, 0xd6, 0xf9, 0x07, 0x73,
	0x4b, 0xf8, 0x83, 0x7b, 0xad, 0x02, 0x82, 0x8a, 0xb8, 0x82, 0x5e, 0x2b, 0x71, 0x4b, 0x53, 0xfc,
	0x30, 0x51, 0x82, 0x9f, 0x05, 0x68, 0x7a, 0x6e, 0xe8, 0x7b, 0x8e, 0x43, 0x7d, 0xec, 0xe2, 0x14,
	0xeb, 0xd2, 0x4a, 0xba, 0x47, 0x54, 0x3c, 0x4e, 0x8f, 0x08, 0x8e, 0xd3, 0x23, 0x2a, 0x8d, 0xd5,
	0x23, 0x72, 0x60, 0xa2, 0xd6, 0xb5, 0xc9, 0x29, 0x28, 0x98, 0x5d, 0x3b, 0xb9, 0x99, 0x49, 0xb3,
	0x6b, 0x73, 0x0f, 0xcf, 0x96, 0x3b, 0x34, 0x6c, 0x7b, 0x51, 0xe6, 0x52, 0x34, 0xbb, 0xf6, 0x1d,
	0x5c, 0x60, 0xe0, 0x9e, 0xef, 0x44, 0x60, 0x7e, 0x33, 0xc5, 0x9e, 0xef, 0x08, 0xf0, 0x3c, 0x4c,
	0xf4, 0xfc, 0xe8, 0x52, 0xd8, 0x4f, 0xe3, 0x13, 0x0d, 0x66, 0x6a, 0x4d, 0x76, 0x69, 0x37, 0x7a,
	0xae, 0xe5, 0x50, 0xb2, 0x0a, 0xf3, 0x26, 0x7e, 0x37, 0x76, 0x71, 0x21, 0xe1, 0x60, 0xd6, 0x94,
	0xf0, 0x76, 0x2c, 0xb2, 0x0e, 0x44, 0xc5, 0x94, 0x8c, 0x65, 0x5e, 0xc6, 0x45, 0xa3, 0x59, 0x85,
	0x29, 0xc6, 0x78, 0xd2, 0x4d, 0x9d, 0x93, 0xdd, 0x71, 0xad, 0x6b, 0xd7, 0x99, 0xbc, 0xcc, 0xfd,
	0xfe, 0x41, 0x83, 0xa9, 0x97, 0xa8, 0x19, 0xf6, 0x7c, 0xca, 0xe4, 0x69, 0xf1, 0x9f, 0x09, 0x1f,
	0x45, 0xb1, 0xb2, 0x63, 0x91, 0xf3, 0x30, 0x13, 0x81, 0x25, 0xe2, 0x25, 0xb1, 0x86, 0x74, 0x6f,
	0xc2, 0x09, 0x95, 0xcb, 0x84, 0x83, 0x8a, 0xc2, 0x81, 0xc4, 0x70, 0x7d, 0x4e, 0x66, 0xff, 0x1e,
	0x0d, 0xc9, 0x75, 0x58, 0x6e, 0xb6, 0x69, 0xf3, 0x01, 0xb5, 0x1a, 0x69, 0xed, 0xe0, 0x81, 0x79,
	0x7c, 0x5f, 0x15, 0x81, 0x53, 0x53, 0x14, 0xc5, 0x64, 0xfa, 0xb5, 0x06, 0x70, 0xc7, 0xb3, 0x7a,
	0x0e, 0x7d, 0xd1, 0xa1, 0x1d, 0xf6, 0xbc, 0x3a, 0xf8, 0x95, 0x48, 0x35, 0xcd, 0x17, 0x76, 0x2c,
	0x16, 0xe2, 0x04, 0x50, 0x92, 0x09, 0xf8, 0xd2, 0x5d, 0xde, 0x72, 0x8d, 0x24, 0x94, 0x84, 0x39,
	0x29, 0x0b, 0x23, 0xd4, 0x57, 0x8f, 0x94, 0xc7, 0x44, 0x58, 0x01, 0xb0, 0xcc, 0xd0, 0x6c, 0x38,
	0x74, 0x9f, 0x46, 0x26, 0x50, 0x64, 0x2b, 0xaf, 0xb2, 0x05, 0xa2, 0xc3, 0x8c, 0x1d, 0x34, 0x50,
	0x80, 0x86, 0xe9, 0x38, 0xf8, 0x42, 0xa7, 0xeb, 0x60, 0x07, 0xdb, 0x6c, 0xa9, 0xe6, 0x38, 0xc6,
	0x6d, 0x28, 0x70, 0x11, 0xc8, 0x75, 0x98, 0x13, 0x1c, 0x52, 0x87, 0x76, 0x90, 0x09, 0x6d, 0xb0,
	0xcf, 0x93, 0xc8, 0x5b, 0x2f, 0x77, 0xe2, 0xdf, 0x4c, 0x1b, 0x07, 0x30, 0xb3, 0x6d, 0xba, 0x37,
	0xbd, 0xcc, 0xf6, 0x80, 0x54, 0x63, 0x45, 0xf6, 0x9a, 0x8b, 0xed, 0xf5, 0x28, 0x03, 0x57, 0x9f,
	0x47, 0x3e, 0xf5, 0x3c, 0x8c, 0x36, 0x94, 0x05, 0xe1, 0xac, 0x46, 0x83, 0x4c, 0xf9, 0x1c, 0x94,
	0xcc, 0x66, 0x93, 0x06, 0x01, 0x77, 0x4a, 0xe2, 0x12, 0xf8, 0x52, 0x94, 0x4b, 0x49, 0x4e, 0x6b,
	0x22, 0xe5, 0xb4, 0x8c, 0x4d, 0x58, 0xb8, 0x45, 0x43, 0xe6, 0x64, 0xb9, 0x1a, 0x24, 0x51, 0x33,
	0x3d, 0xae, 0xf1, 0xdf, 0x70, 0x2a, 0xb5, 0x21, 0x61, 0x31, 0xdb, 0x47, 0xaf, 0x41, 0x81, 0xab,
	0x55, 0x24, 0x16, 0x64, 0x50, 0xf9, 0x75, 0x81, 0x61, 0xbc, 0x0b, 0xa7, 0x79, 0x28, 0x1f, 0x9d,
	0xa3, 0xb1, 0xce, 0x7f, 0x12, 0x2a, 0x83, 0xe7, 0x1f, 0x21, 0x80, 0xf1, 0x5e, 0x54, 0x40, 0xe3,
	0xe4, 0x45, 0xb0, 0xa3, 0x44, 0x1e, 0xed, 0xf0, 0xc8, 0x93, 0x3b, 0x2c, 0xf2, 0x4c, 0xc8, 0x91,
	0xc7, 0xb8, 0x1a, 0x15, 0x65, 0x9c, 0xd6, 0x51, 0xac, 0xc5, 0x6d, 0x2c, 0x86, 0x1e, 0x64, 0xaa,
	0x4a, 0x6a, 0xfa, 0x26, 0x6d, 0x2c, 0x81, 0x9e, 0x75, 0xbc, 0x8c, 0xff, 0x20, 0xea, 0x73, 0xca,
	0x92, 0x7f, 0x49, 0xc1, 0x98, 0xc9, 0x22, 0x13, 0x3b, 0x4a, 0xf4, 0xcb, 0x30, 0x2b, 0x0c, 0xf1,
	0x48, 0x9b, 0x7d, 0x06, 0xe6, 0x62, 0x54, 0x71, 0xec, 0x05, 0xc8, 0x33, 0x60, 0xd6, 0x24, 0x0e,
	0xf1, 0x10, 0x6a, 0x7c, 0x96, 0x4b, 0x46, 0x14, 0x8a, 0x86, 0xcf, 0x0d, 0xd6, 0x80, 0x45, 0xa5,
	0xca, 0x3b, 0x93, 0xaa, 0xf2, 0x8a, 0x49, 0x1d, 0x57, 0x51, 0xeb, 0xb8, 0xe9, 0xa4, 0x56, 0x4b,
	0xaa, 0xb2, 0xbc, 0x52, 0x95, 0xc5, 0x35, 0xdc, 0xa4, 0x5c, 0xc3, 0x49, 0xe2, 0x16, 0x94, 0xd6,
	0xbe, 0x72, 0x0f, 0xbc, 0x34, 0x4b, 0xee, 0x21, 0x31, 0x3c, 0x31, 0x40, 0x10, 0x29, 0xcf, 0xb0,
	0x01, 0x42, 0x56, 0x9c, 0xe5, 0x15, 0x59, 0x2a, 0xce, 0xca, 0xcd, 0x7f, 0xd5, 0xbc, 0x46, 0x69,
	0xfe, 0x8f, 0x3c, 0xf0, 0x34, 0x6e, 0xc1, 0xc9, 0x1b, 0xb6, 0x6b, 0x61, 0x47, 0x46, 0xbd, 0xfc,
	0xcc, 0x56, 0xac, 0xac, 0xa6, 0x9c, 0x62, 0xdc, 0xb7, 0x61, 0x41, 0x3d, 0xe8, 0x88, 0xa6, 0xee,
	0xf0, 0x93, 0x76, 0xe0, 0xd4, 0x7d, 0x77, 0xf7, 0x0b, 0x61, 0xea, 0x65, 0x58, 0x4c, 0x1f, 0xf5,
	0xc8, 0x6c, 0x6d, 0x44, 0x2d, 0x91, 0x6d, 0xc7, 0xa6, 0x6e, 0x78, 0x54, 0x14, 0x33, 0xde, 0x87,
	0x05, 0x15, 0xff, 0xa8, 0xe0, 0xb3, 0x04, 0xc5, 0x26, 0xa2, 0x26, 0x5d, 0xc7, 0x69, 0xbe, 0xb0,
	0x63, 0x91, 0xc7, 0xa0, 0x2c, 0x80, 0x01, 0x6d, 0xfa, 0x18, 0xff, 0x19, 0xc2, 0x0c, 0x5f, 0xbc,
	0x87, 0x6b, 0xc6, 0x9f, 0x35, 0x98, 0x79, 0xc3, 0x7b, 0x40, 0xdd, 0x88, 0x39, 0x2c, 0xfd, 0x4d,
	0x37, 0x6c, 0x84, 0x0f, 0xbb, 0x91, 0x5f, 0x2d, 0xe2, 0xca, 0x1b, 0x0f, 0xbb, 0xf4, 0xf8, 0x14,
	0xd9, 0x5b, 0x0a, 0x9a, 0x5e, 0x97, 0x8a, 0xa0, 0xcb, 0x3f, 0x94, 0x69, 0x18, 0xcf, 0xf9, 0x93,
	0x91, 0x89, 0xdc, 0x82, 0x2b, 0xa8, 0x2d, 0x38, 0x46, 0xd2, 0xa7, 0x2d, 0x9f, 0x06, 0xed, 0x46,
	0xc8, 0xc4, 0x10, 0xa9, 0xff, 0x8c, 0x58, 0x44, 0xd1, 0x8c, 0xcf, 0x35, 0x28, 0x0b, 0x21, 0x85,
	0x46, 0x57, 0x00, 0x10, 0x5d, 0x91, 0x12, 0x57, 0x50, 0xca, 0x15, 0x00, 0xfa, 0x41, 0xd7, 0xf6,
	0x69, 0xd0, 0xb0, 0x79, 0xf4, 0x98, 0xac, 0x17, 0xc5, 0xca, 0x8e, 0xcb, 0xb2, 0x49, 0x11, 0xf3,
	0x39, 0x4d, 0xe1, 0x4b, 0xf9, 0x1a, 0x12, 0x1a, 0xe4, 0x2b, 0x3f, 0xc8, 0x17, 0xf3, 0x51, 0xb6,
	0x25, 0xe0, 0x5c, 0xe8, 0x29, 0xdb, 0x42, 0xd0, 0xd6, 0xdf, 0x16, 0x61, 0xb6, 0xc6, 0xff, 0xfd,
	0xe6, 0x8e, 0xe9, 0x9a, 0x7b, 0xd4, 0x27, 0xbf, 0xd5, 0xa0, 0xac, 0x4c, 0xdd, 0x88, 0x2e, 0x3f,
	0xd2, 0xac, 0x49, 0x6e, 0xf5, 0xfc, 0x21, 0x18, 0x5c, 0x15, 0x46, 0xd0, 0xaf, 0x35, 0xc8, 0x3b,
	0xb7, 0x68, 0xa8, 0x33, 0x85, 0x07, 0xeb, 0x7a, 0xcb, 0x76, 0x42, 0xea, 0xeb, 0x07, 0x76, 0xd8,
	0xd6, 0x5b, 0x36, 0x75, 0xac, 0x60, 0x55, 0x58, 0xdf, 0xba, 0x8e, 0x3d, 0xd1, 0x75, 0x5d, 0xee,
	0x42, 0xaf, 0xeb, 0xdc, 0x51, 0x5d, 0x5e, 0xd7, 0x2d, 0xda, 0x32, 0x7b, 0x4e, 0xa8, 0xfb, 0x34,
	0xec, 0xf9, 0xae, 0x6e, 0x3a, 0x0e, 0x3f, 0xf3, 0xc3, 0x3f, 0xfd, 0xf5, 0x7b, 0xb9, 0x12, 0x29,
	0x6e, 0xee, 0x3f, 0xb1, 0x89, 0x0b, 0xe4, 0x1b, 0x39, 0x16, 0x08, 0x07, 0x26, 0x88, 0x23, 0x48,
	0x74, 0x69, 0x28, 0x86, 0xda, 0x00, 0x32, 0x7e, 0xa2, 0xf5, 0x6b, 0x1f, 0x69, 0xe4, 0x43, 0x4d,
	0x12, 0xcd, 0x76, 0x9b, 0x4e, 0xcf, 0xa2, 0xf8, 0xa9, 0xdb, 0x6e, 0xcb, 0xd3, 0xbd, 0x96, 0xce,
	0x1e, 0xab, 0x6e, 0xba, 0x96, 0x8e, 0xe5, 0xf0, 0x97, 0x26, 0x3f, 0x21, 0xf3, 0xb1, 0xfc, 0xa2,
	0xe7, 0x44, 0xf6, 0x31, 0xd9, 0x17, 0x13, 0x35, 0xb2, 0x92, 0xca, 0x9b, 0xd4, 0xf1, 0x66, 0xf5,
	0xec, 0x30, 0xb0, 0x10, 0xf8, 0x72, 0xbf, 0x46, 0xc8, 0x3c, 0x07, 0x24, 0x12, 0x22, 0xed, 0xd9,
	0xad, 0x44, 0xf7, 0xd7, 0xb4, 0x35, 0xf2, 0x35, 0x28, 0x49, 0xd3, 0x34, 0x72, 0x56, 0xd5, 0x69,
	0x7a, 0x2a, 0x57, 0x3d, 0x37, 0x14, 0x2e, 0x48, 0x6f, 0xf6, 0x6b, 0x15, 0xb2, 0xc8, 0x21, 0x9c,
	0xf4, 0x2e, 0x67, 0xa1, 0x61, 0x5b, 0x9c, 0x81, 0x35, 0x95, 0x81, 0xef, 0x6b, 0x30, 0xab, 0xce,
	0x7a, 0x88, 0x62, 0xaa, 0x99, 0xa3, 0xa9, 0xaa, 0x71, 0x18, 0x8a, 0x60, 0xe5, 0xf9, 0x7e, 0x6d,
	0x91, 0x2c, 0x70, 0x20, 0x67, 0x25, 0xf2, 0x15, 0xc8, 0xc8, 0x59, 0xe3, 0x4c, 0xcc, 0xc8, 0x66,
	0x04, 0xb9, 0xd6, 0x44, 0x74, 0xc6, 0xd8, 0x2f, 0xb5, 0xc8, 0x67, 0x2b, 0x03, 0x20, 0x72, 0x51,
	0x21, 0x3d, 0x74, 0xb0, 0xa8, 0x9a, 0xe7, 0x21, 0x03, 0x3f, 0xe3, 0xb5, 0x7e, 0xed, 0x32, 0xb9,
	0xc4, 0x31, 0x74, 0x53, 0xf7, 0xf9, 0x7e, 0x3d, 0xf4, 0x74, 0x1c, 0x28, 0x21, 0xeb, 0x97, 0x02,
	0xc1, 0x3c, 0xb2, 0xbe, 0x62, 0x54, 0x32, 0x58, 0x47, 0x6c, 0xc6, 0xf9, 0x37, 0x35, 0x28, 0xef,
	0x04, 0xfb, 0xc9, 0xb8, 0x44, 0xb5, 0xa7, 0x81, 0x09, 0x94, 0x6a, 0x4f, 0x83, 0x53, 0x16, 0xe3,
	0xd9, 0x7e, 0x6d, 0x85, 0x2c, 0xed, 0x04, 0xfb, 0xec, 0x91, 0x74, 0x1d, 0x33, 0x6c, 0x79, 0x7e,
	0x47, 0xe7, 0xad, 0x0f, 0x64, 0x8f, 0x9b, 0xb5, 0x51, 0x66, 0x5c, 0xd9, 0xc1, 0x7e, 0x23, 0xbe,
	0xdd, 0x4f, 0x34, 0x80, 0x2f, 0x8e, 0x8f, 0xed, 0x7e, 0x6d, 0x9d, 0xac, 0x6d, 0x27, 0x74, 0xd7,
	0x75, 0xbb, 0xc5, 0xaf, 0xb6, 0x6d, 0xee, 0x53, 0xdd, 0xb4, 0x3a, 0xb6, 0xab, 0x77, 0xa9, 0xdf,
	0xb1, 0x83, 0xc0, 0xf6, 0x5c, 0x6e, 0x70, 0x86, 0x6a, 0x70, 0x9f, 0x69, 0x30, 0x9f, 0x9e, 0xea,
	0x91, 0xc7, 0x94, 0x46, 0x6f, 0xf6, 0xa4, 0xb0, 0x7a, 0xe1, 0x70, 0x24, 0xc1, 0xe4, 0x2b, 0xfd,
	0xda, 0x2a, 0xb9, 0xc8, 0x5c, 0x4d, 0x72, 0x97, 0xcc, 0xb7, 0x0c, 0xde, 0xa5, 0x30, 0xc4, 0x2a,
	0x19, 0x7a, 0x9b, 0xe4, 0x73, 0x0d, 0x16, 0xb2, 0x06, 0x4b, 0x44, 0xb1, 0xae, 0x43, 0x66, 0x59,
	0xd5, 0xd5, 0xa3, 0x11, 0x05, 0xe3, 0x2f, 0xf6, 0x6b, 0xcb, 0xa4, 0x1a, 0xa1, 0x70, 0xb5, 0x32,
	0x67, 0xa8, 0x30, 0xab, 0x1b, 0x4b, 0x19, 0xcc, 0x46, 0xa3, 0x2c, 0xa6, 0xdf, 0x4f, 0x35, 0x28,
	0x49, 0xe3, 0x1f, 0x92, 0x71, 0xa9, 0x72, 0x5f, 0x53, 0x75, 0x29, 0x19, 0x73, 0x23, 0xc6, 0xd7,
	0x55, 0x72, 0x45, 0xdc, 0xba, 0xf0, 0xcc, 0x26, 0xff, 0xa1, 0x37, 0x3d, 0x37, 0x34, 0x6d, 0x57,
	0xf7, 0x5c, 0xaa, 0x77, 0x3c, 0x5f, 0xb2, 0xc6, 0x39, 0x03, 0x18, 0xa3, 0x88, 0x86, 0xf7, 0xfe,
	0x17, 0x0d, 0x66, 0xd5, 0x39, 0x01, 0xc9, 0x8c, 0x89, 0x4a, 0xa7, 0x59, 0x75, 0x34, 0xd9, 0x23,
	0x0d, 0xe3, 0x5b, 0x5a, 0xbf, 0x16, 0x12, 0x9f, 0x5d, 0x39, 0x27, 0xb7, 0xae, 0x37, 0x4d, 0x57,
	0x89, 0x1e, 0x61, 0x9b, 0x06, 0x34, 0x8a, 0x21, 0x51, 0xf3, 0x75, 0x5d, 0x4f, 0x75, 0xdc, 0xd7,
	0xf5, 0x64, 0x14, 0x73, 0x78, 0x30, 0xe1, 0x74, 0x50, 0xd0, 0x19, 0x22, 0x09, 0x4a, 0x7e, 0x20,
	0x95, 0x49, 0xf2, 0x34, 0x64, 0x14, 0x59, 0x57, 0x87, 0xa3, 0xa4, 0x22, 0xea, 0x2f, 0xb4, 0x7e,
	0xed, 0x53, 0x8d, 0xf4, 0x35, 0x59, 0xe6, 0x28, 0xa4, 0x46, 0xc1, 0x4e, 0xb7, 0x5d, 0x3d, 0x6c,
	0xdb, 0x41, 0x74, 0x67, 0x5f, 0xa1, 0x4e, 0x4e, 0x92, 0x13, 0x89, 0x4e, 0xa2, 0x10, 0xfb, 0xbf,
	0x50, 0x92, 0x66, 0x13, 0x24, 0x23, 0x88, 0x0e, 0xb7, 0xcb, 0x8c, 0xa1, 0x86, 0x71, 0xa5, 0x5f,
	0x3b, 0x49, 0x44, 0x51, 0x2e, 0xcc, 0x31, 0x0e, 0xb3, 0x73, 0x5b, 0x29, 0xeb, 0xfb, 0x1f, 0x98,
	0x91, 0xc7, 0x12, 0x24, 0x23, 0x90, 0xaa, 0x97, 0xa1, 0x0f, 0x47, 0x10, 0xf4, 0x2f, 0xf5, 0x6b,
	0x73, 0xa4, 0x2c, 0x42, 0xad, 0x24, 0xfc, 0xdc, 0x5a, 0x8a, 0xf6, 0xc7, 0x1a, 0x14, 0xe3, 0xc1,
	0x04, 0x59, 0x96, 0x0f, 0x4e, 0xcf, 0x3d, 0xaa, 0x2b, 0x43, 0xa0, 0x89, 0x07, 0xbe, 0x48, 0x2e,
	0xb0, 0xf5, 0xf8, 0xda, 0xf1, 0xaa, 0xd9, 0xdd, 0xbe, 0xc7, 0x56, 0x63, 0x00, 0xb2, 0xb2, 0x60,
	0xcc, 0x49, 0xac, 0x30, 0x04, 0xe1, 0x21, 0x20, 0x19, 0x4b, 0xa8, 0x41, 0x61, 0x60, 0xee, 0xa1,
	0x06, 0x85, 0xc1, 0x69, 0x86, 0x71, 0xbb, 0x5f, 0x5b, 0x23, 0xab, 0x08, 0x18, 0xe4, 0xc9, 0xc1,
	0xe5, 0x96, 0xef, 0x75, 0x64, 0xb6, 0x4e, 0x19, 0xf3, 0x12, 0x5b, 0x88, 0x73, 0x4d, 0x5b, 0xdb,
	0xfa, 0x63, 0x09, 0xca, 0x35, 0xcc, 0xdc, 0xa3, 0x44, 0xfb, 0xe7, 0x1a, 0x4c, 0x62, 0xf7, 0x8f,
	0x28, 0x8d, 0x5f, 0xb9, 0x13, 0x59, 0x3d, 0x93, 0x01, 0x11, 0xac, 0xb9, 0xfd, 0xda, 0x5b, 0xe4,
	0x7e, 0xe4, 0x51, 0x03, 0xfd, 0xa0, 0x4d, 0xc3, 0x36, 0xf5, 0x99, 0xe5, 0x23, 0x8b, 0x6f, 0x8b,
	0xc4, 0xe8, 0x1d, 0x1e, 0xbe, 0x92, 0xc0, 0xc5, 0x82, 0xff, 0xbe, 0x1d, 0xd8, 0xcc, 0xbe, 0x03,
	0xaf, 0xe7, 0x37, 0xe9, 0xdb, 0x49, 0x0b, 0xf3, 0x5a, 0xcf, 0x77, 0xde, 0x91, 0x43, 0x5b, 0xd3,
	0x74, 0x2d, 0x8f, 0x29, 0xf6, 0x37, 0x1a, 0x94, 0x95, 0x8e, 0xa0, 0x9a, 0x45, 0x67, 0x75, 0x17,
	0xd5, 0xba, 0x20, 0xb3, 0x9d, 0x68, 0x74, 0xfb, 0xb5, 0xfb, 0xe4, 0x1e, 0x7b, 0xea, 0x98, 0x20,
	0xf3, 0xfe, 0xdd, 0xba, 0x6e, 0xd9, 0xad, 0x16, 0x65, 0x6f, 0x95, 0x2f, 0xb7, 0xcd, 0x40, 0x5a,
	0x52, 0x65, 0xe1, 0xf5, 0x90, 0x04, 0xe6, 0x67, 0xc8, 0xd9, 0x30, 0x3b, 0x23, 0xb8, 0xc6, 0xd7,
	0xc9, 0xcf, 0x34, 0x98, 0x4f, 0x37, 0x07, 0xd5, 0x18, 0x3d, 0xa4, 0x35, 0xa9, 0xc6, 0xe8, 0x61,
	0xfd, 0x45, 0xe3, 0x25, 0x8c, 0xd1, 0xe2, 0xe9, 0x4a, 0x42, 0xe9, 0x61, 0xdb, 0x0c, 0xd1, 0x70,
	0x76, 0x29, 0xbf, 0x00, 0x6a, 0xc9, 0x16, 0x23, 0x33, 0xc9, 0x14, 0xfe, 0xe3, 0x38, 0xbd, 0xc1,
	0xd9, 0x58, 0x46, 0x7a, 0x23, 0xb5, 0x20, 0xb2, 0xd2, 0x1b, 0xb9, 0xad, 0x60, 0xdc, 0xed, 0xd7,
	0x9e, 0x21, 0x4f, 0x8b, 0x40, 0xc7, 0x48, 0x8d, 0xac, 0xe3, 0x40, 0x36, 0x07, 0xce, 0xa4, 0xb6,
	0xc6, 0x1c, 0x9e, 0xd4, 0x62, 0xcc, 0xca, 0xed, 0xe5, 0x46, 0x5a, 0x56, 0x6e, 0xaf, 0x34, 0x8f,
	0x98, 0xc3, 0x5b, 0x20, 0xe4, 0x86, 0x19, 0x36, 0xdb, 0xba, 0xc5, 0xdd, 0x0e, 0xd2, 0x92, 0xf3,
	0xfa, 0x98, 0xf8, 0xff, 0x45, 0x05, 0xcd, 0xa0, 0x66, 0x06, 0xfa, 0x98, 0x59, 0x05, 0x8d, 0xa2,
	0x19, 0x5e, 0x55, 0x70, 0xca, 0x1d, 0xe9, 0xd6, 0xd2, 0x65, 0x4d, 0x4c, 0xbd, 0x05, 0x53, 0xc2,
	0x96, 0x49, 0x35, 0xc3, 0xc0, 0x23, 0xba, 0x4b, 0x99, 0x30, 0x41, 0xd4, 0x40, 0xff, 0x1a, 0x9b,
	0x7d, 0x4c, 0x0b, 0xc8, 0x74, 0x44, 0x8b, 0xf4, 0x92, 0x42, 0x9c, 0x2b, 0x39, 0xb3, 0x6c, 0x55,
	0xd4, 0x7c, 0xfe, 0x10, 0x0c, 0x41, 0xf9, 0x5c, 0xbf, 0x56, 0x22, 0xc5, 0x88, 0xb2, 0x52, 0x34,
	0xe3, 0x02, 0xb3, 0xbb, 0x19, 0xb9, 0x61, 0xa6, 0x86, 0x93, 0x8c, 0x9e, 0x9c, 0x1a, 0x4e, 0xb2,
	0x7a, 0x6d, 0xcc, 0x8f, 0x5e, 0x25, 0x57, 0x18, 0x28, 0xa9, 0x83, 0x79, 0x8e, 0x6d, 0x8a, 0x42,
	0x8e, 0x3a, 0x9e, 0xbb, 0x87, 0xcf, 0x19, 0x31, 0xe4, 0xa4, 0x9f, 0x21, 0x5c, 0x63, 0x8b, 0x4c,
	0xf9, 0xdf, 0xd6, 0x60, 0x56, 0xed, 0x9c, 0xa9, 0xd9, 0x47, 0x66, 0x83, 0x4e, 0xcd, 0xb4, 0xb2,
	0x1b, 0x6f, 0xc6, 0x13, 0x58, 0xd2, 0x71, 0x60, 0x92, 0xa0, 0x26, 0xcc, 0xac, 0x0d, 0x30, 0xb3,
	0xf5, 0xf7, 0xa8, 0xad, 0x15, 0xf9, 0xf4, 0xaf, 0x6b, 0x30, 0x23, 0xf7, 0xd6, 0x48, 0x46, 0x02,
	0xaa, 0x74, 0xe9, 0x54, 0xdd, 0x65, 0xb5, 0xe5, 0x8c, 0x0d, 0x34, 0x15, 0xf1, 0x72, 0x79, 0x8f,
	0x0b, 0x19, 0x5a, 0x34, 0x30, 0x0f, 0xf1, 0xcc, 0x5e, 0xd8, 0xde, 0xda, 0xe4, 0x00, 0xa6, 0xa1,
	0x77, 0x61, 0x92, 0xf7, 0x7d, 0x94, 0xb0, 0x22, 0x77, 0xdf, 0xd4, 0xb0, 0xa2, 0xb4, 0xac, 0x0c,
	0xbd, 0x5f, 0xcb, 0xed, 0xfe, 0x87, 0xec, 0x97, 0x04, 0x01, 0xec, 0x1f, 0x5d, 0xd3, 0xd6, 0x6e,
	0xe4, 0xff, 0x2b, 0xd7, 0xdd, 0xdd, 0x2d, 0xe0, 0xd8, 0xf8, 0xc9, 0x7f, 0x06, 0x00, 0x00, 0xff,
	0xff, 0xa9, 0x61, 0x9c, 0x7e, 0xbe, 0x35, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// AccountManagerClient is the client API for AccountManager service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AccountManagerClient interface {
	// Get users, filter with fields(user_id, email, phone_number, status), default return all users
	DescribeUsers(ctx context.Context, in *DescribeUsersRequest, opts ...grpc.CallOption) (*DescribeUsersResponse, error)
	// Get users, include user info of role and group, filter with fields(user_id, email, phone_number, status), default return all users
	DescribeUsersDetail(ctx context.Context, in *DescribeUsersRequest, opts ...grpc.CallOption) (*DescribeUsersDetailResponse, error)
	// Modify user info
	ModifyUser(ctx context.Context, in *ModifyUserRequest, opts ...grpc.CallOption) (*ModifyUserResponse, error)
	// Delete users by user_ids
	DeleteUsers(ctx context.Context, in *DeleteUsersRequest, opts ...grpc.CallOption) (*DeleteUsersResponse, error)
	// Change user password
	ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error)
	// Create a request to reset user password
	CreatePasswordReset(ctx context.Context, in *CreatePasswordResetRequest, opts ...grpc.CallOption) (*CreatePasswordResetResponse, error)
	// Isv of platform create user
	IsvCreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error)
	// Create user, if user have admin permission
	CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error)
	// Get a request of reset user's password
	GetPasswordReset(ctx context.Context, in *GetPasswordResetRequest, opts ...grpc.CallOption) (*GetPasswordResetResponse, error)
	// Validate user and password
	ValidateUserPassword(ctx context.Context, in *ValidateUserPasswordRequest, opts ...grpc.CallOption) (*ValidateUserPasswordResponse, error)
	// Create group, a group contain one more user
	CreateGroup(ctx context.Context, in *CreateGroupRequest, opts ...grpc.CallOption) (*CreateGroupResponse, error)
	// Get groups, can filter with these fields(group_id, parent_group_id, group_path, status), default return all groups
	DescribeGroups(ctx context.Context, in *DescribeGroupsRequest, opts ...grpc.CallOption) (*DescribeGroupsResponse, error)
	// Get groups, include all user in this group, can filter with these fields(group_id, parent_group_id, group_path, status), default return all groups
	DescribeGroupsDetail(ctx context.Context, in *DescribeGroupsRequest, opts ...grpc.CallOption) (*DescribeGroupsDetailResponse, error)
	//Modify group info
	ModifyGroup(ctx context.Context, in *ModifyGroupRequest, opts ...grpc.CallOption) (*ModifyGroupResponse, error)
	// Delete groups
	DeleteGroups(ctx context.Context, in *DeleteGroupsRequest, opts ...grpc.CallOption) (*DeleteGroupsResponse, error)
	// Join groups, user can join in groups
	JoinGroup(ctx context.Context, in *JoinGroupRequest, opts ...grpc.CallOption) (*JoinGroupResponse, error)
	// Leave groups, user can leave from groups
	LeaveGroup(ctx context.Context, in *LeaveGroupRequest, opts ...grpc.CallOption) (*LeaveGroupResponse, error)
}

type accountManagerClient struct {
	cc *grpc.ClientConn
}

func NewAccountManagerClient(cc *grpc.ClientConn) AccountManagerClient {
	return &accountManagerClient{cc}
}

func (c *accountManagerClient) DescribeUsers(ctx context.Context, in *DescribeUsersRequest, opts ...grpc.CallOption) (*DescribeUsersResponse, error) {
	out := new(DescribeUsersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DescribeUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) DescribeUsersDetail(ctx context.Context, in *DescribeUsersRequest, opts ...grpc.CallOption) (*DescribeUsersDetailResponse, error) {
	out := new(DescribeUsersDetailResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DescribeUsersDetail", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) ModifyUser(ctx context.Context, in *ModifyUserRequest, opts ...grpc.CallOption) (*ModifyUserResponse, error) {
	out := new(ModifyUserResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/ModifyUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) DeleteUsers(ctx context.Context, in *DeleteUsersRequest, opts ...grpc.CallOption) (*DeleteUsersResponse, error) {
	out := new(DeleteUsersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DeleteUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error) {
	out := new(ChangePasswordResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/ChangePassword", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) CreatePasswordReset(ctx context.Context, in *CreatePasswordResetRequest, opts ...grpc.CallOption) (*CreatePasswordResetResponse, error) {
	out := new(CreatePasswordResetResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/CreatePasswordReset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) IsvCreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) {
	out := new(CreateUserResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/IsvCreateUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) {
	out := new(CreateUserResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/CreateUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) GetPasswordReset(ctx context.Context, in *GetPasswordResetRequest, opts ...grpc.CallOption) (*GetPasswordResetResponse, error) {
	out := new(GetPasswordResetResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/GetPasswordReset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) ValidateUserPassword(ctx context.Context, in *ValidateUserPasswordRequest, opts ...grpc.CallOption) (*ValidateUserPasswordResponse, error) {
	out := new(ValidateUserPasswordResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/ValidateUserPassword", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) CreateGroup(ctx context.Context, in *CreateGroupRequest, opts ...grpc.CallOption) (*CreateGroupResponse, error) {
	out := new(CreateGroupResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/CreateGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) DescribeGroups(ctx context.Context, in *DescribeGroupsRequest, opts ...grpc.CallOption) (*DescribeGroupsResponse, error) {
	out := new(DescribeGroupsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DescribeGroups", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) DescribeGroupsDetail(ctx context.Context, in *DescribeGroupsRequest, opts ...grpc.CallOption) (*DescribeGroupsDetailResponse, error) {
	out := new(DescribeGroupsDetailResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DescribeGroupsDetail", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) ModifyGroup(ctx context.Context, in *ModifyGroupRequest, opts ...grpc.CallOption) (*ModifyGroupResponse, error) {
	out := new(ModifyGroupResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/ModifyGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) DeleteGroups(ctx context.Context, in *DeleteGroupsRequest, opts ...grpc.CallOption) (*DeleteGroupsResponse, error) {
	out := new(DeleteGroupsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/DeleteGroups", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) JoinGroup(ctx context.Context, in *JoinGroupRequest, opts ...grpc.CallOption) (*JoinGroupResponse, error) {
	out := new(JoinGroupResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/JoinGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accountManagerClient) LeaveGroup(ctx context.Context, in *LeaveGroupRequest, opts ...grpc.CallOption) (*LeaveGroupResponse, error) {
	out := new(LeaveGroupResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccountManager/LeaveGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// AccountManagerServer is the server API for AccountManager service.
type AccountManagerServer interface {
	// Get users, filter with fields(user_id, email, phone_number, status), default return all users
	DescribeUsers(context.Context, *DescribeUsersRequest) (*DescribeUsersResponse, error)
	// Get users, include user info of role and group, filter with fields(user_id, email, phone_number, status), default return all users
	DescribeUsersDetail(context.Context, *DescribeUsersRequest) (*DescribeUsersDetailResponse, error)
	// Modify user info
	ModifyUser(context.Context, *ModifyUserRequest) (*ModifyUserResponse, error)
	// Delete users by user_ids
	DeleteUsers(context.Context, *DeleteUsersRequest) (*DeleteUsersResponse, error)
	// Change user password
	ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error)
	// Create a request to reset user password
	CreatePasswordReset(context.Context, *CreatePasswordResetRequest) (*CreatePasswordResetResponse, error)
	// Isv of platform create user
	IsvCreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error)
	// Create user, if user have admin permission
	CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error)
	// Get a request of reset user's password
	GetPasswordReset(context.Context, *GetPasswordResetRequest) (*GetPasswordResetResponse, error)
	// Validate user and password
	ValidateUserPassword(context.Context, *ValidateUserPasswordRequest) (*ValidateUserPasswordResponse, error)
	// Create group, a group contain one more user
	CreateGroup(context.Context, *CreateGroupRequest) (*CreateGroupResponse, error)
	// Get groups, can filter with these fields(group_id, parent_group_id, group_path, status), default return all groups
	DescribeGroups(context.Context, *DescribeGroupsRequest) (*DescribeGroupsResponse, error)
	// Get groups, include all user in this group, can filter with these fields(group_id, parent_group_id, group_path, status), default return all groups
	DescribeGroupsDetail(context.Context, *DescribeGroupsRequest) (*DescribeGroupsDetailResponse, error)
	//Modify group info
	ModifyGroup(context.Context, *ModifyGroupRequest) (*ModifyGroupResponse, error)
	// Delete groups
	DeleteGroups(context.Context, *DeleteGroupsRequest) (*DeleteGroupsResponse, error)
	// Join groups, user can join in groups
	JoinGroup(context.Context, *JoinGroupRequest) (*JoinGroupResponse, error)
	// Leave groups, user can leave from groups
	LeaveGroup(context.Context, *LeaveGroupRequest) (*LeaveGroupResponse, error)
}

// UnimplementedAccountManagerServer can be embedded to have forward compatible implementations.
type UnimplementedAccountManagerServer struct {
}

func (*UnimplementedAccountManagerServer) DescribeUsers(ctx context.Context, req *DescribeUsersRequest) (*DescribeUsersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DescribeUsers not implemented")
}
func (*UnimplementedAccountManagerServer) DescribeUsersDetail(ctx context.Context, req *DescribeUsersRequest) (*DescribeUsersDetailResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DescribeUsersDetail not implemented")
}
func (*UnimplementedAccountManagerServer) ModifyUser(ctx context.Context, req *ModifyUserRequest) (*ModifyUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ModifyUser not implemented")
}
func (*UnimplementedAccountManagerServer) DeleteUsers(ctx context.Context, req *DeleteUsersRequest) (*DeleteUsersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteUsers not implemented")
}
func (*UnimplementedAccountManagerServer) ChangePassword(ctx context.Context, req *ChangePasswordRequest) (*ChangePasswordResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ChangePassword not implemented")
}
func (*UnimplementedAccountManagerServer) CreatePasswordReset(ctx context.Context, req *CreatePasswordResetRequest) (*CreatePasswordResetResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreatePasswordReset not implemented")
}
func (*UnimplementedAccountManagerServer) IsvCreateUser(ctx context.Context, req *CreateUserRequest) (*CreateUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method IsvCreateUser not implemented")
}
func (*UnimplementedAccountManagerServer) CreateUser(ctx context.Context, req *CreateUserRequest) (*CreateUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented")
}
func (*UnimplementedAccountManagerServer) GetPasswordReset(ctx context.Context, req *GetPasswordResetRequest) (*GetPasswordResetResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPasswordReset not implemented")
}
func (*UnimplementedAccountManagerServer) ValidateUserPassword(ctx context.Context, req *ValidateUserPasswordRequest) (*ValidateUserPasswordResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ValidateUserPassword not implemented")
}
func (*UnimplementedAccountManagerServer) CreateGroup(ctx context.Context, req *CreateGroupRequest) (*CreateGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented")
}
func (*UnimplementedAccountManagerServer) DescribeGroups(ctx context.Context, req *DescribeGroupsRequest) (*DescribeGroupsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DescribeGroups not implemented")
}
func (*UnimplementedAccountManagerServer) DescribeGroupsDetail(ctx context.Context, req *DescribeGroupsRequest) (*DescribeGroupsDetailResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DescribeGroupsDetail not implemented")
}
func (*UnimplementedAccountManagerServer) ModifyGroup(ctx context.Context, req *ModifyGroupRequest) (*ModifyGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ModifyGroup not implemented")
}
func (*UnimplementedAccountManagerServer) DeleteGroups(ctx context.Context, req *DeleteGroupsRequest) (*DeleteGroupsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteGroups not implemented")
}
func (*UnimplementedAccountManagerServer) JoinGroup(ctx context.Context, req *JoinGroupRequest) (*JoinGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method JoinGroup not implemented")
}
func (*UnimplementedAccountManagerServer) LeaveGroup(ctx context.Context, req *LeaveGroupRequest) (*LeaveGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LeaveGroup not implemented")
}

func RegisterAccountManagerServer(s *grpc.Server, srv AccountManagerServer) {
	s.RegisterService(&_AccountManager_serviceDesc, srv)
}

func _AccountManager_DescribeUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DescribeUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DescribeUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DescribeUsers(ctx, req.(*DescribeUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_DescribeUsersDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DescribeUsersDetail(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DescribeUsersDetail",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DescribeUsersDetail(ctx, req.(*DescribeUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_ModifyUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).ModifyUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/ModifyUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).ModifyUser(ctx, req.(*ModifyUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DeleteUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DeleteUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DeleteUsers(ctx, req.(*DeleteUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_ChangePassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChangePasswordRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).ChangePassword(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/ChangePassword",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).ChangePassword(ctx, req.(*ChangePasswordRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_CreatePasswordReset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreatePasswordResetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).CreatePasswordReset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/CreatePasswordReset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).CreatePasswordReset(ctx, req.(*CreatePasswordResetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_IsvCreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).IsvCreateUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/IsvCreateUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).IsvCreateUser(ctx, req.(*CreateUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_CreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).CreateUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/CreateUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).CreateUser(ctx, req.(*CreateUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_GetPasswordReset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetPasswordResetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).GetPasswordReset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/GetPasswordReset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).GetPasswordReset(ctx, req.(*GetPasswordResetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_ValidateUserPassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ValidateUserPasswordRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).ValidateUserPassword(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/ValidateUserPassword",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).ValidateUserPassword(ctx, req.(*ValidateUserPasswordRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_CreateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).CreateGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/CreateGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).CreateGroup(ctx, req.(*CreateGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_DescribeGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DescribeGroups(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DescribeGroups",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DescribeGroups(ctx, req.(*DescribeGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_DescribeGroupsDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DescribeGroupsDetail(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DescribeGroupsDetail",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DescribeGroupsDetail(ctx, req.(*DescribeGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_ModifyGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).ModifyGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/ModifyGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).ModifyGroup(ctx, req.(*ModifyGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_DeleteGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).DeleteGroups(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/DeleteGroups",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).DeleteGroups(ctx, req.(*DeleteGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_JoinGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(JoinGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).JoinGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/JoinGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).JoinGroup(ctx, req.(*JoinGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccountManager_LeaveGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LeaveGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccountManagerServer).LeaveGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccountManager/LeaveGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccountManagerServer).LeaveGroup(ctx, req.(*LeaveGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _AccountManager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "openpitrix.AccountManager",
	HandlerType: (*AccountManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "DescribeUsers",
			Handler:    _AccountManager_DescribeUsers_Handler,
		},
		{
			MethodName: "DescribeUsersDetail",
			Handler:    _AccountManager_DescribeUsersDetail_Handler,
		},
		{
			MethodName: "ModifyUser",
			Handler:    _AccountManager_ModifyUser_Handler,
		},
		{
			MethodName: "DeleteUsers",
			Handler:    _AccountManager_DeleteUsers_Handler,
		},
		{
			MethodName: "ChangePassword",
			Handler:    _AccountManager_ChangePassword_Handler,
		},
		{
			MethodName: "CreatePasswordReset",
			Handler:    _AccountManager_CreatePasswordReset_Handler,
		},
		{
			MethodName: "IsvCreateUser",
			Handler:    _AccountManager_IsvCreateUser_Handler,
		},
		{
			MethodName: "CreateUser",
			Handler:    _AccountManager_CreateUser_Handler,
		},
		{
			MethodName: "GetPasswordReset",
			Handler:    _AccountManager_GetPasswordReset_Handler,
		},
		{
			MethodName: "ValidateUserPassword",
			Handler:    _AccountManager_ValidateUserPassword_Handler,
		},
		{
			MethodName: "CreateGroup",
			Handler:    _AccountManager_CreateGroup_Handler,
		},
		{
			MethodName: "DescribeGroups",
			Handler:    _AccountManager_DescribeGroups_Handler,
		},
		{
			MethodName: "DescribeGroupsDetail",
			Handler:    _AccountManager_DescribeGroupsDetail_Handler,
		},
		{
			MethodName: "ModifyGroup",
			Handler:    _AccountManager_ModifyGroup_Handler,
		},
		{
			MethodName: "DeleteGroups",
			Handler:    _AccountManager_DeleteGroups_Handler,
		},
		{
			MethodName: "JoinGroup",
			Handler:    _AccountManager_JoinGroup_Handler,
		},
		{
			MethodName: "LeaveGroup",
			Handler:    _AccountManager_LeaveGroup_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "account.proto",
}

// AccessManagerClient is the client API for AccessManager service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AccessManagerClient interface {
	// Validate whether the user[user_id] have permission to visit resource[url_method:url]
	CanDo(ctx context.Context, in *CanDoRequest, opts ...grpc.CallOption) (*CanDoResponse, error)
	// Get role module, different role has different permission to access different module
	GetRoleModule(ctx context.Context, in *GetRoleModuleRequest, opts ...grpc.CallOption) (*GetRoleModuleResponse, error)
	// Modify role module that can be visited
	ModifyRoleModule(ctx context.Context, in *ModifyRoleModuleRequest, opts ...grpc.CallOption) (*ModifyRoleModuleResponse, error)
	// Create role, different role has different permissions
	CreateRole(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*CreateRoleResponse, error)
	// Batch delete roles
	DeleteRoles(ctx context.Context, in *DeleteRolesRequest, opts ...grpc.CallOption) (*DeleteRolesResponse, error)
	// Modify role info
	ModifyRole(ctx context.Context, in *ModifyRoleRequest, opts ...grpc.CallOption) (*ModifyRoleResponse, error)
	// Get role info
	GetRole(ctx context.Context, in *GetRoleRequest, opts ...grpc.CallOption) (*GetRoleResponse, error)
	// Get roles, filter with these fields(role_id, portal, status)
	DescribeRoles(ctx context.Context, in *DescribeRolesRequest, opts ...grpc.CallOption) (*DescribeRolesResponse, error)
	// Bind role and user, a user belong to a role
	BindUserRole(ctx context.Context, in *BindUserRoleRequest, opts ...grpc.CallOption) (*BindUserRoleResponse, error)
	// Unbind user and role
	UnbindUserRole(ctx context.Context, in *UnbindUserRoleRequest, opts ...grpc.CallOption) (*UnbindUserRoleResponse, error)
}

type accessManagerClient struct {
	cc *grpc.ClientConn
}

func NewAccessManagerClient(cc *grpc.ClientConn) AccessManagerClient {
	return &accessManagerClient{cc}
}

func (c *accessManagerClient) CanDo(ctx context.Context, in *CanDoRequest, opts ...grpc.CallOption) (*CanDoResponse, error) {
	out := new(CanDoResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/CanDo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) GetRoleModule(ctx context.Context, in *GetRoleModuleRequest, opts ...grpc.CallOption) (*GetRoleModuleResponse, error) {
	out := new(GetRoleModuleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/GetRoleModule", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) ModifyRoleModule(ctx context.Context, in *ModifyRoleModuleRequest, opts ...grpc.CallOption) (*ModifyRoleModuleResponse, error) {
	out := new(ModifyRoleModuleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/ModifyRoleModule", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) CreateRole(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*CreateRoleResponse, error) {
	out := new(CreateRoleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/CreateRole", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) DeleteRoles(ctx context.Context, in *DeleteRolesRequest, opts ...grpc.CallOption) (*DeleteRolesResponse, error) {
	out := new(DeleteRolesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/DeleteRoles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) ModifyRole(ctx context.Context, in *ModifyRoleRequest, opts ...grpc.CallOption) (*ModifyRoleResponse, error) {
	out := new(ModifyRoleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/ModifyRole", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) GetRole(ctx context.Context, in *GetRoleRequest, opts ...grpc.CallOption) (*GetRoleResponse, error) {
	out := new(GetRoleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/GetRole", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) DescribeRoles(ctx context.Context, in *DescribeRolesRequest, opts ...grpc.CallOption) (*DescribeRolesResponse, error) {
	out := new(DescribeRolesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/DescribeRoles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) BindUserRole(ctx context.Context, in *BindUserRoleRequest, opts ...grpc.CallOption) (*BindUserRoleResponse, error) {
	out := new(BindUserRoleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/BindUserRole", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *accessManagerClient) UnbindUserRole(ctx context.Context, in *UnbindUserRoleRequest, opts ...grpc.CallOption) (*UnbindUserRoleResponse, error) {
	out := new(UnbindUserRoleResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.AccessManager/UnbindUserRole", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// AccessManagerServer is the server API for AccessManager service.
type AccessManagerServer interface {
	// Validate whether the user[user_id] have permission to visit resource[url_method:url]
	CanDo(context.Context, *CanDoRequest) (*CanDoResponse, error)
	// Get role module, different role has different permission to access different module
	GetRoleModule(context.Context, *GetRoleModuleRequest) (*GetRoleModuleResponse, error)
	// Modify role module that can be visited
	ModifyRoleModule(context.Context, *ModifyRoleModuleRequest) (*ModifyRoleModuleResponse, error)
	// Create role, different role has different permissions
	CreateRole(context.Context, *CreateRoleRequest) (*CreateRoleResponse, error)
	// Batch delete roles
	DeleteRoles(context.Context, *DeleteRolesRequest) (*DeleteRolesResponse, error)
	// Modify role info
	ModifyRole(context.Context, *ModifyRoleRequest) (*ModifyRoleResponse, error)
	// Get role info
	GetRole(context.Context, *GetRoleRequest) (*GetRoleResponse, error)
	// Get roles, filter with these fields(role_id, portal, status)
	DescribeRoles(context.Context, *DescribeRolesRequest) (*DescribeRolesResponse, error)
	// Bind role and user, a user belong to a role
	BindUserRole(context.Context, *BindUserRoleRequest) (*BindUserRoleResponse, error)
	// Unbind user and role
	UnbindUserRole(context.Context, *UnbindUserRoleRequest) (*UnbindUserRoleResponse, error)
}

// UnimplementedAccessManagerServer can be embedded to have forward compatible implementations.
type UnimplementedAccessManagerServer struct {
}

func (*UnimplementedAccessManagerServer) CanDo(ctx context.Context, req *CanDoRequest) (*CanDoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CanDo not implemented")
}
func (*UnimplementedAccessManagerServer) GetRoleModule(ctx context.Context, req *GetRoleModuleRequest) (*GetRoleModuleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRoleModule not implemented")
}
func (*UnimplementedAccessManagerServer) ModifyRoleModule(ctx context.Context, req *ModifyRoleModuleRequest) (*ModifyRoleModuleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ModifyRoleModule not implemented")
}
func (*UnimplementedAccessManagerServer) CreateRole(ctx context.Context, req *CreateRoleRequest) (*CreateRoleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRole not implemented")
}
func (*UnimplementedAccessManagerServer) DeleteRoles(ctx context.Context, req *DeleteRolesRequest) (*DeleteRolesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteRoles not implemented")
}
func (*UnimplementedAccessManagerServer) ModifyRole(ctx context.Context, req *ModifyRoleRequest) (*ModifyRoleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ModifyRole not implemented")
}
func (*UnimplementedAccessManagerServer) GetRole(ctx context.Context, req *GetRoleRequest) (*GetRoleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRole not implemented")
}
func (*UnimplementedAccessManagerServer) DescribeRoles(ctx context.Context, req *DescribeRolesRequest) (*DescribeRolesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DescribeRoles not implemented")
}
func (*UnimplementedAccessManagerServer) BindUserRole(ctx context.Context, req *BindUserRoleRequest) (*BindUserRoleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BindUserRole not implemented")
}
func (*UnimplementedAccessManagerServer) UnbindUserRole(ctx context.Context, req *UnbindUserRoleRequest) (*UnbindUserRoleResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnbindUserRole not implemented")
}

func RegisterAccessManagerServer(s *grpc.Server, srv AccessManagerServer) {
	s.RegisterService(&_AccessManager_serviceDesc, srv)
}

func _AccessManager_CanDo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CanDoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).CanDo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/CanDo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).CanDo(ctx, req.(*CanDoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_GetRoleModule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRoleModuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).GetRoleModule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/GetRoleModule",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).GetRoleModule(ctx, req.(*GetRoleModuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_ModifyRoleModule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyRoleModuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).ModifyRoleModule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/ModifyRoleModule",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).ModifyRoleModule(ctx, req.(*ModifyRoleModuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_CreateRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateRoleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).CreateRole(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/CreateRole",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).CreateRole(ctx, req.(*CreateRoleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_DeleteRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteRolesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).DeleteRoles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/DeleteRoles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).DeleteRoles(ctx, req.(*DeleteRolesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_ModifyRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyRoleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).ModifyRole(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/ModifyRole",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).ModifyRole(ctx, req.(*ModifyRoleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_GetRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRoleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).GetRole(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/GetRole",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).GetRole(ctx, req.(*GetRoleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_DescribeRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeRolesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).DescribeRoles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/DescribeRoles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).DescribeRoles(ctx, req.(*DescribeRolesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_BindUserRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BindUserRoleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).BindUserRole(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/BindUserRole",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).BindUserRole(ctx, req.(*BindUserRoleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AccessManager_UnbindUserRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UnbindUserRoleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AccessManagerServer).UnbindUserRole(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.AccessManager/UnbindUserRole",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AccessManagerServer).UnbindUserRole(ctx, req.(*UnbindUserRoleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _AccessManager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "openpitrix.AccessManager",
	HandlerType: (*AccessManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CanDo",
			Handler:    _AccessManager_CanDo_Handler,
		},
		{
			MethodName: "GetRoleModule",
			Handler:    _AccessManager_GetRoleModule_Handler,
		},
		{
			MethodName: "ModifyRoleModule",
			Handler:    _AccessManager_ModifyRoleModule_Handler,
		},
		{
			MethodName: "CreateRole",
			Handler:    _AccessManager_CreateRole_Handler,
		},
		{
			MethodName: "DeleteRoles",
			Handler:    _AccessManager_DeleteRoles_Handler,
		},
		{
			MethodName: "ModifyRole",
			Handler:    _AccessManager_ModifyRole_Handler,
		},
		{
			MethodName: "GetRole",
			Handler:    _AccessManager_GetRole_Handler,
		},
		{
			MethodName: "DescribeRoles",
			Handler:    _AccessManager_DescribeRoles_Handler,
		},
		{
			MethodName: "BindUserRole",
			Handler:    _AccessManager_BindUserRole_Handler,
		},
		{
			MethodName: "UnbindUserRole",
			Handler:    _AccessManager_UnbindUserRole_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "account.proto",
}

// TokenManagerClient is the client API for TokenManager service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type TokenManagerClient interface {
	// Create client
	CreateClient(ctx context.Context, in *CreateClientRequest, opts ...grpc.CallOption) (*CreateClientResponse, error)
	// get access_token with client_credentials or password
	//
	// Ref:
	// - https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2
	// - https://alexbilbie.com/guide-to-oauth-2-grants/
	// - https://tools.ietf.org/html/rfc6749#section-4.4
	//
	// refresh access_token
	//
	// Ref: https://tools.ietf.org/html/rfc6749#section-6
	//
	// Get token
	Token(ctx context.Context, in *TokenRequest, opts ...grpc.CallOption) (*TokenResponse, error)
}

type tokenManagerClient struct {
	cc *grpc.ClientConn
}

func NewTokenManagerClient(cc *grpc.ClientConn) TokenManagerClient {
	return &tokenManagerClient{cc}
}

func (c *tokenManagerClient) CreateClient(ctx context.Context, in *CreateClientRequest, opts ...grpc.CallOption) (*CreateClientResponse, error) {
	out := new(CreateClientResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.TokenManager/CreateClient", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tokenManagerClient) Token(ctx context.Context, in *TokenRequest, opts ...grpc.CallOption) (*TokenResponse, error) {
	out := new(TokenResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.TokenManager/Token", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// TokenManagerServer is the server API for TokenManager service.
type TokenManagerServer interface {
	// Create client
	CreateClient(context.Context, *CreateClientRequest) (*CreateClientResponse, error)
	// get access_token with client_credentials or password
	//
	// Ref:
	// - https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2
	// - https://alexbilbie.com/guide-to-oauth-2-grants/
	// - https://tools.ietf.org/html/rfc6749#section-4.4
	//
	// refresh access_token
	//
	// Ref: https://tools.ietf.org/html/rfc6749#section-6
	//
	// Get token
	Token(context.Context, *TokenRequest) (*TokenResponse, error)
}

// UnimplementedTokenManagerServer can be embedded to have forward compatible implementations.
type UnimplementedTokenManagerServer struct {
}

func (*UnimplementedTokenManagerServer) CreateClient(ctx context.Context, req *CreateClientRequest) (*CreateClientResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented")
}
func (*UnimplementedTokenManagerServer) Token(ctx context.Context, req *TokenRequest) (*TokenResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Token not implemented")
}

func RegisterTokenManagerServer(s *grpc.Server, srv TokenManagerServer) {
	s.RegisterService(&_TokenManager_serviceDesc, srv)
}

func _TokenManager_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateClientRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TokenManagerServer).CreateClient(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.TokenManager/CreateClient",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TokenManagerServer).CreateClient(ctx, req.(*CreateClientRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _TokenManager_Token_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TokenRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TokenManagerServer).Token(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.TokenManager/Token",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TokenManagerServer).Token(ctx, req.(*TokenRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _TokenManager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "openpitrix.TokenManager",
	HandlerType: (*TokenManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateClient",
			Handler:    _TokenManager_CreateClient_Handler,
		},
		{
			MethodName: "Token",
			Handler:    _TokenManager_Token_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "account.proto",
}
