// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.19.0
// source: interservice/local_user/users.proto

package local_user

import (
	context "context"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type Email struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Email         string                 `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty" toml:"email,omitempty" mapstructure:"email,omitempty"` // forbid empty strings;
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Email) ProtoMessage() {}

func (x *Email) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Email.ProtoReflect.Descriptor instead.
func (*Email) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{0}
}

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

type GetUsersReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetUsersReq) ProtoMessage() {}

func (x *GetUsersReq) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead.
func (*GetUsersReq) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{1}
}

type User struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" toml:"id,omitempty" mapstructure:"id,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"`
	Email         string                 `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty" toml:"email,omitempty" mapstructure:"email,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*User) ProtoMessage() {}

func (x *User) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{2}
}

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

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

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

type CreateUserReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" toml:"id,omitempty" mapstructure:"id,omitempty"`
	// forbid empty strings
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"`
	// Note: we're explicitly more strict than email (RFC 1034), although PGV
	// knows how to validate an email address using
	//
	//	[(validate.rules).string.email = true];
	Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty" toml:"email,omitempty" mapstructure:"email,omitempty"`
	// Note: password validation happens in the service's handler
	Password      string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty" toml:"password,omitempty" mapstructure:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateUserReq) ProtoMessage() {}

func (x *CreateUserReq) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateUserReq.ProtoReflect.Descriptor instead.
func (*CreateUserReq) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{3}
}

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

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

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

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

type UpdateUserReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// TODO (tc) Unfortunately ID is not returned by Dex in UpdatePassword.
	// We currently have ID being returned as part of our update contract
	// for the gateway API. The only way we are currently populating that
	// is by passing back to the user exactly what they gave us in the update request.
	// This isn't ideal, but we have a few options that aren't ideal either:
	//
	// 1. Call ListPasswords on every update, find our user, and populate the ID field,
	// then deprecate the ID field as in input into our update APIs.
	//
	// 2.  Break our public API (not an option afaik).
	//
	// 3. Wait until my GetPassword API merges into Dex and call that on every
	// update to get the ID, then deprecate the ID field as in input into our update APIs.
	// This is probably the best option.
	// https://github.com/dexidp/dex/pull/1271
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" toml:"id,omitempty" mapstructure:"id,omitempty"`
	// Currently, this validation doesn't make much sense, since user's can't change their
	// email (aka username) via update, but leaving it in since 1) it doesn't hurt and
	// 2) keep it consistent if we allow it in the future.
	Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty" toml:"email,omitempty" mapstructure:"email,omitempty"`
	Name  string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"`
	// Note: for UpdateUserReq, the password is optional
	Password      string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty" toml:"password,omitempty" mapstructure:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UpdateUserReq) ProtoMessage() {}

func (x *UpdateUserReq) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateUserReq.ProtoReflect.Descriptor instead.
func (*UpdateUserReq) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{4}
}

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

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

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

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

// See UpdateUserReq for other relevant comments.
type UpdateSelfReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" toml:"id,omitempty" mapstructure:"id,omitempty"`
	Email string                 `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty" toml:"email,omitempty" mapstructure:"email,omitempty"`
	Name  string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" toml:"name,omitempty" mapstructure:"name,omitempty"`
	// Note: for UpdateSelfReq, the password and previous_password are optional,
	// but if passed, they must both be passed.
	Password         string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty" toml:"password,omitempty" mapstructure:"password,omitempty"`
	PreviousPassword string `protobuf:"bytes,5,opt,name=previous_password,json=previousPassword,proto3" json:"previous_password,omitempty" toml:"previous_password,omitempty" mapstructure:"previous_password,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*UpdateSelfReq) ProtoMessage() {}

func (x *UpdateSelfReq) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateSelfReq.ProtoReflect.Descriptor instead.
func (*UpdateSelfReq) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{5}
}

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

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

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

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

func (x *UpdateSelfReq) GetPreviousPassword() string {
	if x != nil {
		return x.PreviousPassword
	}
	return ""
}

type DeleteUserResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeleteUserResp) ProtoMessage() {}

func (x *DeleteUserResp) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteUserResp.ProtoReflect.Descriptor instead.
func (*DeleteUserResp) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{6}
}

type Users struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Users         map[string]*User       `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value" toml:"users,omitempty" mapstructure:"users,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Users) ProtoMessage() {}

func (x *Users) ProtoReflect() protoreflect.Message {
	mi := &file_interservice_local_user_users_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Users.ProtoReflect.Descriptor instead.
func (*Users) Descriptor() ([]byte, []int) {
	return file_interservice_local_user_users_proto_rawDescGZIP(), []int{7}
}

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

var File_interservice_local_user_users_proto protoreflect.FileDescriptor

const file_interservice_local_user_users_proto_rawDesc = "" +
	"\n" +
	"#interservice/local_user/users.proto\x12\x1fchef.automate.domain.local_user\x1a\x1cgoogle/api/annotations.proto\x1a\x17validate/validate.proto\"&\n" +
	"\x05Email\x12\x1d\n" +
	"\x05email\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x05email\"\r\n" +
	"\vGetUsersReq\"@\n" +
	"\x04User\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" +
	"\x05email\x18\x03 \x01(\tR\x05email\"\x81\x01\n" +
	"\rCreateUserReq\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x120\n" +
	"\x05email\x18\x03 \x01(\tB\x1a\xfaB\x17r\x152\x13^[[:alnum:]_.+@-]+$R\x05email\x12\x1a\n" +
	"\bpassword\x18\x04 \x01(\tR\bpassword\"\x8a\x01\n" +
	"\rUpdateUserReq\x12\x17\n" +
	"\x02id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x02id\x120\n" +
	"\x05email\x18\x02 \x01(\tB\x1a\xfaB\x17r\x152\x13^[[:alnum:]_.+@-]+$R\x05email\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1a\n" +
	"\bpassword\x18\x04 \x01(\tR\bpassword\"\xb7\x01\n" +
	"\rUpdateSelfReq\x12\x17\n" +
	"\x02id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x02id\x120\n" +
	"\x05email\x18\x02 \x01(\tB\x1a\xfaB\x17r\x152\x13^[[:alnum:]_.+@-]+$R\x05email\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1a\n" +
	"\bpassword\x18\x04 \x01(\tR\bpassword\x12+\n" +
	"\x11previous_password\x18\x05 \x01(\tR\x10previousPassword\"\x10\n" +
	"\x0eDeleteUserResp\"\xb1\x01\n" +
	"\x05Users\x12G\n" +
	"\x05users\x18\x01 \x03(\v21.chef.automate.domain.local_user.Users.UsersEntryR\x05users\x1a_\n" +
	"\n" +
	"UsersEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12;\n" +
	"\x05value\x18\x02 \x01(\v2%.chef.automate.domain.local_user.UserR\x05value:\x028\x012\xf0\x04\n" +
	"\x10UsersMgmtService\x12b\n" +
	"\bGetUsers\x12,.chef.automate.domain.local_user.GetUsersReq\x1a&.chef.automate.domain.local_user.Users\"\x00\x12Z\n" +
	"\aGetUser\x12&.chef.automate.domain.local_user.Email\x1a%.chef.automate.domain.local_user.User\"\x00\x12e\n" +
	"\n" +
	"CreateUser\x12..chef.automate.domain.local_user.CreateUserReq\x1a%.chef.automate.domain.local_user.User\"\x00\x12g\n" +
	"\n" +
	"DeleteUser\x12&.chef.automate.domain.local_user.Email\x1a/.chef.automate.domain.local_user.DeleteUserResp\"\x00\x12e\n" +
	"\n" +
	"UpdateUser\x12..chef.automate.domain.local_user.UpdateUserReq\x1a%.chef.automate.domain.local_user.User\"\x00\x12e\n" +
	"\n" +
	"UpdateSelf\x12..chef.automate.domain.local_user.UpdateSelfReq\x1a%.chef.automate.domain.local_user.User\"\x00B6Z4github.com/chef/automate/api/interservice/local_userb\x06proto3"

var (
	file_interservice_local_user_users_proto_rawDescOnce sync.Once
	file_interservice_local_user_users_proto_rawDescData []byte
)

func file_interservice_local_user_users_proto_rawDescGZIP() []byte {
	file_interservice_local_user_users_proto_rawDescOnce.Do(func() {
		file_interservice_local_user_users_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_interservice_local_user_users_proto_rawDesc), len(file_interservice_local_user_users_proto_rawDesc)))
	})
	return file_interservice_local_user_users_proto_rawDescData
}

var file_interservice_local_user_users_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_interservice_local_user_users_proto_goTypes = []any{
	(*Email)(nil),          // 0: chef.automate.domain.local_user.Email
	(*GetUsersReq)(nil),    // 1: chef.automate.domain.local_user.GetUsersReq
	(*User)(nil),           // 2: chef.automate.domain.local_user.User
	(*CreateUserReq)(nil),  // 3: chef.automate.domain.local_user.CreateUserReq
	(*UpdateUserReq)(nil),  // 4: chef.automate.domain.local_user.UpdateUserReq
	(*UpdateSelfReq)(nil),  // 5: chef.automate.domain.local_user.UpdateSelfReq
	(*DeleteUserResp)(nil), // 6: chef.automate.domain.local_user.DeleteUserResp
	(*Users)(nil),          // 7: chef.automate.domain.local_user.Users
	nil,                    // 8: chef.automate.domain.local_user.Users.UsersEntry
}
var file_interservice_local_user_users_proto_depIdxs = []int32{
	8, // 0: chef.automate.domain.local_user.Users.users:type_name -> chef.automate.domain.local_user.Users.UsersEntry
	2, // 1: chef.automate.domain.local_user.Users.UsersEntry.value:type_name -> chef.automate.domain.local_user.User
	1, // 2: chef.automate.domain.local_user.UsersMgmtService.GetUsers:input_type -> chef.automate.domain.local_user.GetUsersReq
	0, // 3: chef.automate.domain.local_user.UsersMgmtService.GetUser:input_type -> chef.automate.domain.local_user.Email
	3, // 4: chef.automate.domain.local_user.UsersMgmtService.CreateUser:input_type -> chef.automate.domain.local_user.CreateUserReq
	0, // 5: chef.automate.domain.local_user.UsersMgmtService.DeleteUser:input_type -> chef.automate.domain.local_user.Email
	4, // 6: chef.automate.domain.local_user.UsersMgmtService.UpdateUser:input_type -> chef.automate.domain.local_user.UpdateUserReq
	5, // 7: chef.automate.domain.local_user.UsersMgmtService.UpdateSelf:input_type -> chef.automate.domain.local_user.UpdateSelfReq
	7, // 8: chef.automate.domain.local_user.UsersMgmtService.GetUsers:output_type -> chef.automate.domain.local_user.Users
	2, // 9: chef.automate.domain.local_user.UsersMgmtService.GetUser:output_type -> chef.automate.domain.local_user.User
	2, // 10: chef.automate.domain.local_user.UsersMgmtService.CreateUser:output_type -> chef.automate.domain.local_user.User
	6, // 11: chef.automate.domain.local_user.UsersMgmtService.DeleteUser:output_type -> chef.automate.domain.local_user.DeleteUserResp
	2, // 12: chef.automate.domain.local_user.UsersMgmtService.UpdateUser:output_type -> chef.automate.domain.local_user.User
	2, // 13: chef.automate.domain.local_user.UsersMgmtService.UpdateSelf:output_type -> chef.automate.domain.local_user.User
	8, // [8:14] is the sub-list for method output_type
	2, // [2:8] is the sub-list for method input_type
	2, // [2:2] is the sub-list for extension type_name
	2, // [2:2] is the sub-list for extension extendee
	0, // [0:2] is the sub-list for field type_name
}

func init() { file_interservice_local_user_users_proto_init() }
func file_interservice_local_user_users_proto_init() {
	if File_interservice_local_user_users_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_interservice_local_user_users_proto_rawDesc), len(file_interservice_local_user_users_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   9,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_interservice_local_user_users_proto_goTypes,
		DependencyIndexes: file_interservice_local_user_users_proto_depIdxs,
		MessageInfos:      file_interservice_local_user_users_proto_msgTypes,
	}.Build()
	File_interservice_local_user_users_proto = out.File
	file_interservice_local_user_users_proto_goTypes = nil
	file_interservice_local_user_users_proto_depIdxs = nil
}

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

// 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.SupportPackageIsVersion6

// UsersMgmtServiceClient is the client API for UsersMgmtService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type UsersMgmtServiceClient interface {
	GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*Users, error)
	GetUser(ctx context.Context, in *Email, opts ...grpc.CallOption) (*User, error)
	CreateUser(ctx context.Context, in *CreateUserReq, opts ...grpc.CallOption) (*User, error)
	DeleteUser(ctx context.Context, in *Email, opts ...grpc.CallOption) (*DeleteUserResp, error)
	UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*User, error)
	UpdateSelf(ctx context.Context, in *UpdateSelfReq, opts ...grpc.CallOption) (*User, error)
}

type usersMgmtServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewUsersMgmtServiceClient(cc grpc.ClientConnInterface) UsersMgmtServiceClient {
	return &usersMgmtServiceClient{cc}
}

func (c *usersMgmtServiceClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*Users, error) {
	out := new(Users)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/GetUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *usersMgmtServiceClient) GetUser(ctx context.Context, in *Email, opts ...grpc.CallOption) (*User, error) {
	out := new(User)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/GetUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *usersMgmtServiceClient) CreateUser(ctx context.Context, in *CreateUserReq, opts ...grpc.CallOption) (*User, error) {
	out := new(User)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/CreateUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *usersMgmtServiceClient) DeleteUser(ctx context.Context, in *Email, opts ...grpc.CallOption) (*DeleteUserResp, error) {
	out := new(DeleteUserResp)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/DeleteUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *usersMgmtServiceClient) UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*User, error) {
	out := new(User)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/UpdateUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *usersMgmtServiceClient) UpdateSelf(ctx context.Context, in *UpdateSelfReq, opts ...grpc.CallOption) (*User, error) {
	out := new(User)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.local_user.UsersMgmtService/UpdateSelf", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// UsersMgmtServiceServer is the server API for UsersMgmtService service.
type UsersMgmtServiceServer interface {
	GetUsers(context.Context, *GetUsersReq) (*Users, error)
	GetUser(context.Context, *Email) (*User, error)
	CreateUser(context.Context, *CreateUserReq) (*User, error)
	DeleteUser(context.Context, *Email) (*DeleteUserResp, error)
	UpdateUser(context.Context, *UpdateUserReq) (*User, error)
	UpdateSelf(context.Context, *UpdateSelfReq) (*User, error)
}

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

func (*UnimplementedUsersMgmtServiceServer) GetUsers(context.Context, *GetUsersReq) (*Users, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented")
}
func (*UnimplementedUsersMgmtServiceServer) GetUser(context.Context, *Email) (*User, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
}
func (*UnimplementedUsersMgmtServiceServer) CreateUser(context.Context, *CreateUserReq) (*User, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented")
}
func (*UnimplementedUsersMgmtServiceServer) DeleteUser(context.Context, *Email) (*DeleteUserResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented")
}
func (*UnimplementedUsersMgmtServiceServer) UpdateUser(context.Context, *UpdateUserReq) (*User, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateUser not implemented")
}
func (*UnimplementedUsersMgmtServiceServer) UpdateSelf(context.Context, *UpdateSelfReq) (*User, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateSelf not implemented")
}

func RegisterUsersMgmtServiceServer(s *grpc.Server, srv UsersMgmtServiceServer) {
	s.RegisterService(&_UsersMgmtService_serviceDesc, srv)
}

func _UsersMgmtService_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetUsersReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).GetUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/GetUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).GetUsers(ctx, req.(*GetUsersReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _UsersMgmtService_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Email)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).GetUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/GetUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).GetUser(ctx, req.(*Email))
	}
	return interceptor(ctx, in, info, handler)
}

func _UsersMgmtService_CreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateUserReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).CreateUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/CreateUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).CreateUser(ctx, req.(*CreateUserReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _UsersMgmtService_DeleteUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Email)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).DeleteUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/DeleteUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).DeleteUser(ctx, req.(*Email))
	}
	return interceptor(ctx, in, info, handler)
}

func _UsersMgmtService_UpdateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateUserReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).UpdateUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/UpdateUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).UpdateUser(ctx, req.(*UpdateUserReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _UsersMgmtService_UpdateSelf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateSelfReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(UsersMgmtServiceServer).UpdateSelf(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.local_user.UsersMgmtService/UpdateSelf",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(UsersMgmtServiceServer).UpdateSelf(ctx, req.(*UpdateSelfReq))
	}
	return interceptor(ctx, in, info, handler)
}

var _UsersMgmtService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "chef.automate.domain.local_user.UsersMgmtService",
	HandlerType: (*UsersMgmtServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetUsers",
			Handler:    _UsersMgmtService_GetUsers_Handler,
		},
		{
			MethodName: "GetUser",
			Handler:    _UsersMgmtService_GetUser_Handler,
		},
		{
			MethodName: "CreateUser",
			Handler:    _UsersMgmtService_CreateUser_Handler,
		},
		{
			MethodName: "DeleteUser",
			Handler:    _UsersMgmtService_DeleteUser_Handler,
		},
		{
			MethodName: "UpdateUser",
			Handler:    _UsersMgmtService_UpdateUser_Handler,
		},
		{
			MethodName: "UpdateSelf",
			Handler:    _UsersMgmtService_UpdateSelf_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "interservice/local_user/users.proto",
}
