// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.32.0
// 	protoc        v3.12.4
// source: bgs/low/pb/client/api/client/v2/friends_types.proto

package client

import (
	_ "github.com/cjbrigato/d4-bnet-mitm/bnet/bgs/protocol"
	v2 "github.com/cjbrigato/d4-bnet-mitm/bnet/bgs/protocol/v2"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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 FriendLevel int32

const (
	FriendLevel_FRIEND_LEVEL_BATTLE_TAG FriendLevel = 1
	FriendLevel_FRIEND_LEVEL_REAL_ID    FriendLevel = 2
)

// Enum value maps for FriendLevel.
var (
	FriendLevel_name = map[int32]string{
		1: "FRIEND_LEVEL_BATTLE_TAG",
		2: "FRIEND_LEVEL_REAL_ID",
	}
	FriendLevel_value = map[string]int32{
		"FRIEND_LEVEL_BATTLE_TAG": 1,
		"FRIEND_LEVEL_REAL_ID":    2,
	}
)

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

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

func (FriendLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_enumTypes[0].Descriptor()
}

func (FriendLevel) Type() protoreflect.EnumType {
	return &file_bgs_low_pb_client_api_client_v2_friends_types_proto_enumTypes[0]
}

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

// Deprecated: Do not use.
func (x *FriendLevel) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = FriendLevel(num)
	return nil
}

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

type SendInvitationTarget struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name        *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	AccountId   *uint64 `protobuf:"varint,10,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	Email       *string `protobuf:"bytes,11,opt,name=email" json:"email,omitempty"`
	BattleTag   *string `protobuf:"bytes,12,opt,name=battle_tag,json=battleTag" json:"battle_tag,omitempty"`
	PhoneNumber *string `protobuf:"bytes,13,opt,name=phone_number,json=phoneNumber" json:"phone_number,omitempty"`
}

func (x *SendInvitationTarget) Reset() {
	*x = SendInvitationTarget{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SendInvitationTarget) ProtoMessage() {}

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

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

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

func (x *SendInvitationTarget) GetAccountId() uint64 {
	if x != nil && x.AccountId != nil {
		return *x.AccountId
	}
	return 0
}

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

func (x *SendInvitationTarget) GetBattleTag() string {
	if x != nil && x.BattleTag != nil {
		return *x.BattleTag
	}
	return ""
}

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

type SendInvitationOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Level      *uint32         `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
	Attributes []*v2.Attribute `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty"`
}

func (x *SendInvitationOptions) Reset() {
	*x = SendInvitationOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SendInvitationOptions) ProtoMessage() {}

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

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

func (x *SendInvitationOptions) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *SendInvitationOptions) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type AcceptInvitationOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Level *uint32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
}

func (x *AcceptInvitationOptions) Reset() {
	*x = AcceptInvitationOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AcceptInvitationOptions) ProtoMessage() {}

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

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

func (x *AcceptInvitationOptions) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

type GetFriendsOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FetchNames *bool `protobuf:"varint,1,opt,name=fetch_names,json=fetchNames" json:"fetch_names,omitempty"`
}

func (x *GetFriendsOptions) Reset() {
	*x = GetFriendsOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetFriendsOptions) ProtoMessage() {}

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

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

func (x *GetFriendsOptions) GetFetchNames() bool {
	if x != nil && x.FetchNames != nil {
		return *x.FetchNames
	}
	return false
}

type UserDescription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountId *uint64 `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	BattleTag *string `protobuf:"bytes,2,opt,name=battle_tag,json=battleTag" json:"battle_tag,omitempty"`
	FullName  *string `protobuf:"bytes,3,opt,name=full_name,json=fullName" json:"full_name,omitempty"`
}

func (x *UserDescription) Reset() {
	*x = UserDescription{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserDescription) ProtoMessage() {}

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

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

func (x *UserDescription) GetAccountId() uint64 {
	if x != nil && x.AccountId != nil {
		return *x.AccountId
	}
	return 0
}

func (x *UserDescription) GetBattleTag() string {
	if x != nil && x.BattleTag != nil {
		return *x.BattleTag
	}
	return ""
}

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

type ReceivedInvitation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id              *uint64          `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	Inviter         *UserDescription `protobuf:"bytes,2,opt,name=inviter" json:"inviter,omitempty"`
	Invitee         *UserDescription `protobuf:"bytes,3,opt,name=invitee" json:"invitee,omitempty"`
	Level           *uint32          `protobuf:"varint,4,opt,name=level" json:"level,omitempty"`
	Program         *uint32          `protobuf:"fixed32,5,opt,name=program" json:"program,omitempty"`
	Attributes      []*v2.Attribute  `protobuf:"bytes,6,rep,name=attributes" json:"attributes,omitempty"`
	CreationTimeS   *uint64          `protobuf:"varint,7,opt,name=creation_time_s,json=creationTimeS" json:"creation_time_s,omitempty"`
	ExpirationTimeS *uint64          `protobuf:"varint,8,opt,name=expiration_time_s,json=expirationTimeS" json:"expiration_time_s,omitempty"`
}

func (x *ReceivedInvitation) Reset() {
	*x = ReceivedInvitation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceivedInvitation) ProtoMessage() {}

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

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

func (x *ReceivedInvitation) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *ReceivedInvitation) GetInviter() *UserDescription {
	if x != nil {
		return x.Inviter
	}
	return nil
}

func (x *ReceivedInvitation) GetInvitee() *UserDescription {
	if x != nil {
		return x.Invitee
	}
	return nil
}

func (x *ReceivedInvitation) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *ReceivedInvitation) GetProgram() uint32 {
	if x != nil && x.Program != nil {
		return *x.Program
	}
	return 0
}

func (x *ReceivedInvitation) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *ReceivedInvitation) GetCreationTimeS() uint64 {
	if x != nil && x.CreationTimeS != nil {
		return *x.CreationTimeS
	}
	return 0
}

func (x *ReceivedInvitation) GetExpirationTimeS() uint64 {
	if x != nil && x.ExpirationTimeS != nil {
		return *x.ExpirationTimeS
	}
	return 0
}

type SentInvitation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            *uint64         `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	TargetName    *string         `protobuf:"bytes,2,opt,name=target_name,json=targetName" json:"target_name,omitempty"`
	Level         *uint32         `protobuf:"varint,3,opt,name=level" json:"level,omitempty"`
	Program       *uint32         `protobuf:"fixed32,4,opt,name=program" json:"program,omitempty"`
	Attributes    []*v2.Attribute `protobuf:"bytes,5,rep,name=attributes" json:"attributes,omitempty"`
	CreationTimeS *uint64         `protobuf:"varint,6,opt,name=creation_time_s,json=creationTimeS" json:"creation_time_s,omitempty"`
}

func (x *SentInvitation) Reset() {
	*x = SentInvitation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SentInvitation) ProtoMessage() {}

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

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

func (x *SentInvitation) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *SentInvitation) GetTargetName() string {
	if x != nil && x.TargetName != nil {
		return *x.TargetName
	}
	return ""
}

func (x *SentInvitation) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *SentInvitation) GetProgram() uint32 {
	if x != nil && x.Program != nil {
		return *x.Program
	}
	return 0
}

func (x *SentInvitation) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *SentInvitation) GetCreationTimeS() uint64 {
	if x != nil && x.CreationTimeS != nil {
		return *x.CreationTimeS
	}
	return 0
}

type RemovedInvitationAssignment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InvitationId *uint64 `protobuf:"varint,1,opt,name=invitation_id,json=invitationId" json:"invitation_id,omitempty"`
	Reason       *uint32 `protobuf:"varint,2,opt,name=reason" json:"reason,omitempty"`
}

func (x *RemovedInvitationAssignment) Reset() {
	*x = RemovedInvitationAssignment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RemovedInvitationAssignment) ProtoMessage() {}

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

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

func (x *RemovedInvitationAssignment) GetInvitationId() uint64 {
	if x != nil && x.InvitationId != nil {
		return *x.InvitationId
	}
	return 0
}

func (x *RemovedInvitationAssignment) GetReason() uint32 {
	if x != nil && x.Reason != nil {
		return *x.Reason
	}
	return 0
}

type RemovedFriendAssignment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
}

func (x *RemovedFriendAssignment) Reset() {
	*x = RemovedFriendAssignment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RemovedFriendAssignment) ProtoMessage() {}

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

// Deprecated: Use RemovedFriendAssignment.ProtoReflect.Descriptor instead.
func (*RemovedFriendAssignment) Descriptor() ([]byte, []int) {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP(), []int{8}
}

func (x *RemovedFriendAssignment) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

type UpdateFriendStateOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Attributes []*v2.Attribute `protobuf:"bytes,1,rep,name=attributes" json:"attributes,omitempty"`
}

func (x *UpdateFriendStateOptions) Reset() {
	*x = UpdateFriendStateOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateFriendStateOptions) ProtoMessage() {}

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

// Deprecated: Use UpdateFriendStateOptions.ProtoReflect.Descriptor instead.
func (*UpdateFriendStateOptions) Descriptor() ([]byte, []int) {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP(), []int{9}
}

func (x *UpdateFriendStateOptions) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type Friend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            *uint64         `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	Level         *uint32         `protobuf:"varint,2,opt,name=level" json:"level,omitempty"`
	BattleTag     *string         `protobuf:"bytes,3,opt,name=battle_tag,json=battleTag" json:"battle_tag,omitempty"`
	FullName      *string         `protobuf:"bytes,4,opt,name=full_name,json=fullName" json:"full_name,omitempty"`
	Attributes    []*v2.Attribute `protobuf:"bytes,5,rep,name=attributes" json:"attributes,omitempty"`
	CreationTimeS *uint64         `protobuf:"varint,6,opt,name=creation_time_s,json=creationTimeS" json:"creation_time_s,omitempty"`
}

func (x *Friend) Reset() {
	*x = Friend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Friend) ProtoMessage() {}

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

// Deprecated: Use Friend.ProtoReflect.Descriptor instead.
func (*Friend) Descriptor() ([]byte, []int) {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP(), []int{10}
}

func (x *Friend) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *Friend) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *Friend) GetBattleTag() string {
	if x != nil && x.BattleTag != nil {
		return *x.BattleTag
	}
	return ""
}

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

func (x *Friend) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *Friend) GetCreationTimeS() uint64 {
	if x != nil && x.CreationTimeS != nil {
		return *x.CreationTimeS
	}
	return 0
}

type FriendStateAssignment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         *uint64         `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	Level      *uint32         `protobuf:"varint,2,opt,name=level" json:"level,omitempty"`
	Attributes []*v2.Attribute `protobuf:"bytes,3,rep,name=attributes" json:"attributes,omitempty"`
}

func (x *FriendStateAssignment) Reset() {
	*x = FriendStateAssignment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FriendStateAssignment) ProtoMessage() {}

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

// Deprecated: Use FriendStateAssignment.ProtoReflect.Descriptor instead.
func (*FriendStateAssignment) Descriptor() ([]byte, []int) {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP(), []int{11}
}

func (x *FriendStateAssignment) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *FriendStateAssignment) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *FriendStateAssignment) GetAttributes() []*v2.Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type FriendOfFriend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id        *uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	Level     *uint32 `protobuf:"varint,2,opt,name=level" json:"level,omitempty"`
	FullName  *string `protobuf:"bytes,3,opt,name=full_name,json=fullName" json:"full_name,omitempty"`
	BattleTag *string `protobuf:"bytes,4,opt,name=battle_tag,json=battleTag" json:"battle_tag,omitempty"`
}

func (x *FriendOfFriend) Reset() {
	*x = FriendOfFriend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FriendOfFriend) ProtoMessage() {}

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

// Deprecated: Use FriendOfFriend.ProtoReflect.Descriptor instead.
func (*FriendOfFriend) Descriptor() ([]byte, []int) {
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP(), []int{12}
}

func (x *FriendOfFriend) GetId() uint64 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *FriendOfFriend) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

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

func (x *FriendOfFriend) GetBattleTag() string {
	if x != nil && x.BattleTag != nil {
		return *x.BattleTag
	}
	return ""
}

var File_bgs_low_pb_client_api_client_v2_friends_types_proto protoreflect.FileDescriptor

var file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDesc = []byte{
	0x0a, 0x33, 0x62, 0x67, 0x73, 0x2f, 0x6c, 0x6f, 0x77, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x76,
	0x32, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x62, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x37, 0x62, 0x67, 0x73, 0x2f, 0x6c, 0x6f, 0x77, 0x2f, 0x70,
	0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f,
	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
	0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35,
	0x62, 0x67, 0x73, 0x2f, 0x6c, 0x6f, 0x77, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, 0x2f,
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x62, 0x67, 0x73, 0x2f, 0x6c, 0x6f, 0x77, 0x2f, 0x70,
	0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
	0xa1, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65,
	0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69,
	0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x61, 0x67,
	0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x12, 0x3a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x2f,
	0x0a, 0x17, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22,
	0x34, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x65, 0x74, 0x63, 0x68,
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x74, 0x6c,
	0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74,
	0x74, 0x6c, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e,
	0x61, 0x6d, 0x65, 0x22, 0xfa, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64,
	0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x07, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x67,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x2e, 0x76, 0x32,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,
	0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d,
	0x12, 0x3a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
	0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x69, 0x6d, 0x65, 0x53, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53,
	0x22, 0xd5, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72,
	0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x61, 0x6d, 0x12, 0x3a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
	0x12, 0x26, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x5f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x22, 0x5a, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x73,
	0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46,
	0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22,
	0x56, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x61,
	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76,
	0x32, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x74,
	0x6c, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61,
	0x74, 0x74, 0x6c, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x67, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
	0x12, 0x26, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x5f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x22, 0x79, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x67,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x74,
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x73, 0x22, 0x72, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x46,
	0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66,
	0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x74,
	0x6c, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61,
	0x74, 0x74, 0x6c, 0x65, 0x54, 0x61, 0x67, 0x2a, 0x44, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e,
	0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44,
	0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x54, 0x41,
	0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x4c, 0x45,
	0x56, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x41, 0x4c, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x42, 0x47, 0x5a,
	0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6a, 0x62, 0x72,
	0x69, 0x67, 0x61, 0x74, 0x6f, 0x2f, 0x64, 0x34, 0x2d, 0x62, 0x6e, 0x65, 0x74, 0x2d, 0x6d, 0x69,
	0x74, 0x6d, 0x2f, 0x62, 0x6e, 0x65, 0x74, 0x2f, 0x62, 0x67, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x2f, 0x76, 0x32, 0x2f,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
}

var (
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescOnce sync.Once
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescData = file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDesc
)

func file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescGZIP() []byte {
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescOnce.Do(func() {
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescData)
	})
	return file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDescData
}

var file_bgs_low_pb_client_api_client_v2_friends_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_bgs_low_pb_client_api_client_v2_friends_types_proto_goTypes = []interface{}{
	(FriendLevel)(0),                    // 0: bgs.protocol.friends.v2.client.FriendLevel
	(*SendInvitationTarget)(nil),        // 1: bgs.protocol.friends.v2.client.SendInvitationTarget
	(*SendInvitationOptions)(nil),       // 2: bgs.protocol.friends.v2.client.SendInvitationOptions
	(*AcceptInvitationOptions)(nil),     // 3: bgs.protocol.friends.v2.client.AcceptInvitationOptions
	(*GetFriendsOptions)(nil),           // 4: bgs.protocol.friends.v2.client.GetFriendsOptions
	(*UserDescription)(nil),             // 5: bgs.protocol.friends.v2.client.UserDescription
	(*ReceivedInvitation)(nil),          // 6: bgs.protocol.friends.v2.client.ReceivedInvitation
	(*SentInvitation)(nil),              // 7: bgs.protocol.friends.v2.client.SentInvitation
	(*RemovedInvitationAssignment)(nil), // 8: bgs.protocol.friends.v2.client.RemovedInvitationAssignment
	(*RemovedFriendAssignment)(nil),     // 9: bgs.protocol.friends.v2.client.RemovedFriendAssignment
	(*UpdateFriendStateOptions)(nil),    // 10: bgs.protocol.friends.v2.client.UpdateFriendStateOptions
	(*Friend)(nil),                      // 11: bgs.protocol.friends.v2.client.Friend
	(*FriendStateAssignment)(nil),       // 12: bgs.protocol.friends.v2.client.FriendStateAssignment
	(*FriendOfFriend)(nil),              // 13: bgs.protocol.friends.v2.client.FriendOfFriend
	(*v2.Attribute)(nil),                // 14: bgs.protocol.v2.Attribute
}
var file_bgs_low_pb_client_api_client_v2_friends_types_proto_depIdxs = []int32{
	14, // 0: bgs.protocol.friends.v2.client.SendInvitationOptions.attributes:type_name -> bgs.protocol.v2.Attribute
	5,  // 1: bgs.protocol.friends.v2.client.ReceivedInvitation.inviter:type_name -> bgs.protocol.friends.v2.client.UserDescription
	5,  // 2: bgs.protocol.friends.v2.client.ReceivedInvitation.invitee:type_name -> bgs.protocol.friends.v2.client.UserDescription
	14, // 3: bgs.protocol.friends.v2.client.ReceivedInvitation.attributes:type_name -> bgs.protocol.v2.Attribute
	14, // 4: bgs.protocol.friends.v2.client.SentInvitation.attributes:type_name -> bgs.protocol.v2.Attribute
	14, // 5: bgs.protocol.friends.v2.client.UpdateFriendStateOptions.attributes:type_name -> bgs.protocol.v2.Attribute
	14, // 6: bgs.protocol.friends.v2.client.Friend.attributes:type_name -> bgs.protocol.v2.Attribute
	14, // 7: bgs.protocol.friends.v2.client.FriendStateAssignment.attributes:type_name -> bgs.protocol.v2.Attribute
	8,  // [8:8] is the sub-list for method output_type
	8,  // [8:8] is the sub-list for method input_type
	8,  // [8:8] is the sub-list for extension type_name
	8,  // [8:8] is the sub-list for extension extendee
	0,  // [0:8] is the sub-list for field type_name
}

func init() { file_bgs_low_pb_client_api_client_v2_friends_types_proto_init() }
func file_bgs_low_pb_client_api_client_v2_friends_types_proto_init() {
	if File_bgs_low_pb_client_api_client_v2_friends_types_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SendInvitationTarget); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SendInvitationOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AcceptInvitationOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFriendsOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDescription); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceivedInvitation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SentInvitation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemovedInvitationAssignment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemovedFriendAssignment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFriendStateOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Friend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendStateAssignment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendOfFriend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   13,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_bgs_low_pb_client_api_client_v2_friends_types_proto_goTypes,
		DependencyIndexes: file_bgs_low_pb_client_api_client_v2_friends_types_proto_depIdxs,
		EnumInfos:         file_bgs_low_pb_client_api_client_v2_friends_types_proto_enumTypes,
		MessageInfos:      file_bgs_low_pb_client_api_client_v2_friends_types_proto_msgTypes,
	}.Build()
	File_bgs_low_pb_client_api_client_v2_friends_types_proto = out.File
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_rawDesc = nil
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_goTypes = nil
	file_bgs_low_pb_client_api_client_v2_friends_types_proto_depIdxs = nil
}
