// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: api/v1/instance_service.proto

package apiv1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	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)
)

// Enumeration of instance setting keys.
type InstanceSetting_Key int32

const (
	InstanceSetting_KEY_UNSPECIFIED InstanceSetting_Key = 0
	// GENERAL is the key for general settings.
	InstanceSetting_GENERAL InstanceSetting_Key = 1
	// STORAGE is the key for storage settings.
	InstanceSetting_STORAGE InstanceSetting_Key = 2
	// MEMO_RELATED is the key for memo related settings.
	InstanceSetting_MEMO_RELATED InstanceSetting_Key = 3
)

// Enum value maps for InstanceSetting_Key.
var (
	InstanceSetting_Key_name = map[int32]string{
		0: "KEY_UNSPECIFIED",
		1: "GENERAL",
		2: "STORAGE",
		3: "MEMO_RELATED",
	}
	InstanceSetting_Key_value = map[string]int32{
		"KEY_UNSPECIFIED": 0,
		"GENERAL":         1,
		"STORAGE":         2,
		"MEMO_RELATED":    3,
	}
)

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

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

func (InstanceSetting_Key) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1_instance_service_proto_enumTypes[0].Descriptor()
}

func (InstanceSetting_Key) Type() protoreflect.EnumType {
	return &file_api_v1_instance_service_proto_enumTypes[0]
}

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

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

// Storage type enumeration for different storage backends.
type InstanceSetting_StorageSetting_StorageType int32

const (
	InstanceSetting_StorageSetting_STORAGE_TYPE_UNSPECIFIED InstanceSetting_StorageSetting_StorageType = 0
	// DATABASE is the database storage type.
	InstanceSetting_StorageSetting_DATABASE InstanceSetting_StorageSetting_StorageType = 1
	// LOCAL is the local storage type.
	InstanceSetting_StorageSetting_LOCAL InstanceSetting_StorageSetting_StorageType = 2
	// S3 is the S3 storage type.
	InstanceSetting_StorageSetting_S3 InstanceSetting_StorageSetting_StorageType = 3
)

// Enum value maps for InstanceSetting_StorageSetting_StorageType.
var (
	InstanceSetting_StorageSetting_StorageType_name = map[int32]string{
		0: "STORAGE_TYPE_UNSPECIFIED",
		1: "DATABASE",
		2: "LOCAL",
		3: "S3",
	}
	InstanceSetting_StorageSetting_StorageType_value = map[string]int32{
		"STORAGE_TYPE_UNSPECIFIED": 0,
		"DATABASE":                 1,
		"LOCAL":                    2,
		"S3":                       3,
	}
)

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

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

func (InstanceSetting_StorageSetting_StorageType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1_instance_service_proto_enumTypes[1].Descriptor()
}

func (InstanceSetting_StorageSetting_StorageType) Type() protoreflect.EnumType {
	return &file_api_v1_instance_service_proto_enumTypes[1]
}

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

// Deprecated: Use InstanceSetting_StorageSetting_StorageType.Descriptor instead.
func (InstanceSetting_StorageSetting_StorageType) EnumDescriptor() ([]byte, []int) {
	return file_api_v1_instance_service_proto_rawDescGZIP(), []int{2, 1, 0}
}

// Instance profile message containing basic instance information.
type InstanceProfile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of instance owner.
	// Format: users/{user}
	Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`
	// Version is the current version of instance.
	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	// Mode is the instance mode (e.g. "prod", "dev" or "demo").
	Mode string `protobuf:"bytes,3,opt,name=mode,proto3" json:"mode,omitempty"`
	// Instance URL is the URL of the instance.
	InstanceUrl   string `protobuf:"bytes,6,opt,name=instance_url,json=instanceUrl,proto3" json:"instance_url,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceProfile) ProtoMessage() {}

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

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

func (x *InstanceProfile) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *InstanceProfile) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *InstanceProfile) GetInstanceUrl() string {
	if x != nil {
		return x.InstanceUrl
	}
	return ""
}

// Request for instance profile.
type GetInstanceProfileRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetInstanceProfileRequest) ProtoMessage() {}

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

// An instance setting resource.
type InstanceSetting struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the instance setting.
	// Format: instance/settings/{setting}
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to Value:
	//
	//	*InstanceSetting_GeneralSetting_
	//	*InstanceSetting_StorageSetting_
	//	*InstanceSetting_MemoRelatedSetting_
	Value         isInstanceSetting_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceSetting) ProtoMessage() {}

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

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

func (x *InstanceSetting) GetValue() isInstanceSetting_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *InstanceSetting) GetGeneralSetting() *InstanceSetting_GeneralSetting {
	if x != nil {
		if x, ok := x.Value.(*InstanceSetting_GeneralSetting_); ok {
			return x.GeneralSetting
		}
	}
	return nil
}

func (x *InstanceSetting) GetStorageSetting() *InstanceSetting_StorageSetting {
	if x != nil {
		if x, ok := x.Value.(*InstanceSetting_StorageSetting_); ok {
			return x.StorageSetting
		}
	}
	return nil
}

func (x *InstanceSetting) GetMemoRelatedSetting() *InstanceSetting_MemoRelatedSetting {
	if x != nil {
		if x, ok := x.Value.(*InstanceSetting_MemoRelatedSetting_); ok {
			return x.MemoRelatedSetting
		}
	}
	return nil
}

type isInstanceSetting_Value interface {
	isInstanceSetting_Value()
}

type InstanceSetting_GeneralSetting_ struct {
	GeneralSetting *InstanceSetting_GeneralSetting `protobuf:"bytes,2,opt,name=general_setting,json=generalSetting,proto3,oneof"`
}

type InstanceSetting_StorageSetting_ struct {
	StorageSetting *InstanceSetting_StorageSetting `protobuf:"bytes,3,opt,name=storage_setting,json=storageSetting,proto3,oneof"`
}

type InstanceSetting_MemoRelatedSetting_ struct {
	MemoRelatedSetting *InstanceSetting_MemoRelatedSetting `protobuf:"bytes,4,opt,name=memo_related_setting,json=memoRelatedSetting,proto3,oneof"`
}

func (*InstanceSetting_GeneralSetting_) isInstanceSetting_Value() {}

func (*InstanceSetting_StorageSetting_) isInstanceSetting_Value() {}

func (*InstanceSetting_MemoRelatedSetting_) isInstanceSetting_Value() {}

// Request message for GetInstanceSetting method.
type GetInstanceSettingRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The resource name of the instance setting.
	// Format: instance/settings/{setting}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetInstanceSettingRequest) ProtoMessage() {}

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

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

// Request message for UpdateInstanceSetting method.
type UpdateInstanceSettingRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The instance setting resource which replaces the resource on the server.
	Setting *InstanceSetting `protobuf:"bytes,1,opt,name=setting,proto3" json:"setting,omitempty"`
	// The list of fields to update.
	UpdateMask    *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UpdateInstanceSettingRequest) ProtoMessage() {}

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

func (x *UpdateInstanceSettingRequest) GetSetting() *InstanceSetting {
	if x != nil {
		return x.Setting
	}
	return nil
}

func (x *UpdateInstanceSettingRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

// General instance settings configuration.
type InstanceSetting_GeneralSetting struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// disallow_user_registration disallows user registration.
	DisallowUserRegistration bool `protobuf:"varint,2,opt,name=disallow_user_registration,json=disallowUserRegistration,proto3" json:"disallow_user_registration,omitempty"`
	// disallow_password_auth disallows password authentication.
	DisallowPasswordAuth bool `protobuf:"varint,3,opt,name=disallow_password_auth,json=disallowPasswordAuth,proto3" json:"disallow_password_auth,omitempty"`
	// additional_script is the additional script.
	AdditionalScript string `protobuf:"bytes,4,opt,name=additional_script,json=additionalScript,proto3" json:"additional_script,omitempty"`
	// additional_style is the additional style.
	AdditionalStyle string `protobuf:"bytes,5,opt,name=additional_style,json=additionalStyle,proto3" json:"additional_style,omitempty"`
	// custom_profile is the custom profile.
	CustomProfile *InstanceSetting_GeneralSetting_CustomProfile `protobuf:"bytes,6,opt,name=custom_profile,json=customProfile,proto3" json:"custom_profile,omitempty"`
	// week_start_day_offset is the week start day offset from Sunday.
	// 0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday
	// Default is Sunday.
	WeekStartDayOffset int32 `protobuf:"varint,7,opt,name=week_start_day_offset,json=weekStartDayOffset,proto3" json:"week_start_day_offset,omitempty"`
	// disallow_change_username disallows changing username.
	DisallowChangeUsername bool `protobuf:"varint,8,opt,name=disallow_change_username,json=disallowChangeUsername,proto3" json:"disallow_change_username,omitempty"`
	// disallow_change_nickname disallows changing nickname.
	DisallowChangeNickname bool `protobuf:"varint,9,opt,name=disallow_change_nickname,json=disallowChangeNickname,proto3" json:"disallow_change_nickname,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*InstanceSetting_GeneralSetting) ProtoMessage() {}

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

func (x *InstanceSetting_GeneralSetting) GetDisallowUserRegistration() bool {
	if x != nil {
		return x.DisallowUserRegistration
	}
	return false
}

func (x *InstanceSetting_GeneralSetting) GetDisallowPasswordAuth() bool {
	if x != nil {
		return x.DisallowPasswordAuth
	}
	return false
}

func (x *InstanceSetting_GeneralSetting) GetAdditionalScript() string {
	if x != nil {
		return x.AdditionalScript
	}
	return ""
}

func (x *InstanceSetting_GeneralSetting) GetAdditionalStyle() string {
	if x != nil {
		return x.AdditionalStyle
	}
	return ""
}

func (x *InstanceSetting_GeneralSetting) GetCustomProfile() *InstanceSetting_GeneralSetting_CustomProfile {
	if x != nil {
		return x.CustomProfile
	}
	return nil
}

func (x *InstanceSetting_GeneralSetting) GetWeekStartDayOffset() int32 {
	if x != nil {
		return x.WeekStartDayOffset
	}
	return 0
}

func (x *InstanceSetting_GeneralSetting) GetDisallowChangeUsername() bool {
	if x != nil {
		return x.DisallowChangeUsername
	}
	return false
}

func (x *InstanceSetting_GeneralSetting) GetDisallowChangeNickname() bool {
	if x != nil {
		return x.DisallowChangeNickname
	}
	return false
}

// Storage configuration settings for instance attachments.
type InstanceSetting_StorageSetting struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// storage_type is the storage type.
	StorageType InstanceSetting_StorageSetting_StorageType `protobuf:"varint,1,opt,name=storage_type,json=storageType,proto3,enum=memos.api.v1.InstanceSetting_StorageSetting_StorageType" json:"storage_type,omitempty"`
	// The template of file path.
	// e.g. assets/{timestamp}_{filename}
	FilepathTemplate string `protobuf:"bytes,2,opt,name=filepath_template,json=filepathTemplate,proto3" json:"filepath_template,omitempty"`
	// The max upload size in megabytes.
	UploadSizeLimitMb int64 `protobuf:"varint,3,opt,name=upload_size_limit_mb,json=uploadSizeLimitMb,proto3" json:"upload_size_limit_mb,omitempty"`
	// The S3 config.
	S3Config      *InstanceSetting_StorageSetting_S3Config `protobuf:"bytes,4,opt,name=s3_config,json=s3Config,proto3" json:"s3_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceSetting_StorageSetting) ProtoMessage() {}

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

func (x *InstanceSetting_StorageSetting) GetStorageType() InstanceSetting_StorageSetting_StorageType {
	if x != nil {
		return x.StorageType
	}
	return InstanceSetting_StorageSetting_STORAGE_TYPE_UNSPECIFIED
}

func (x *InstanceSetting_StorageSetting) GetFilepathTemplate() string {
	if x != nil {
		return x.FilepathTemplate
	}
	return ""
}

func (x *InstanceSetting_StorageSetting) GetUploadSizeLimitMb() int64 {
	if x != nil {
		return x.UploadSizeLimitMb
	}
	return 0
}

func (x *InstanceSetting_StorageSetting) GetS3Config() *InstanceSetting_StorageSetting_S3Config {
	if x != nil {
		return x.S3Config
	}
	return nil
}

// Memo-related instance settings and policies.
type InstanceSetting_MemoRelatedSetting struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// disallow_public_visibility disallows set memo as public visibility.
	DisallowPublicVisibility bool `protobuf:"varint,1,opt,name=disallow_public_visibility,json=disallowPublicVisibility,proto3" json:"disallow_public_visibility,omitempty"`
	// display_with_update_time orders and displays memo with update time.
	DisplayWithUpdateTime bool `protobuf:"varint,2,opt,name=display_with_update_time,json=displayWithUpdateTime,proto3" json:"display_with_update_time,omitempty"`
	// content_length_limit is the limit of content length. Unit is byte.
	ContentLengthLimit int32 `protobuf:"varint,3,opt,name=content_length_limit,json=contentLengthLimit,proto3" json:"content_length_limit,omitempty"`
	// enable_double_click_edit enables editing on double click.
	EnableDoubleClickEdit bool `protobuf:"varint,4,opt,name=enable_double_click_edit,json=enableDoubleClickEdit,proto3" json:"enable_double_click_edit,omitempty"`
	// reactions is the list of reactions.
	Reactions     []string `protobuf:"bytes,7,rep,name=reactions,proto3" json:"reactions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceSetting_MemoRelatedSetting) ProtoMessage() {}

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

func (x *InstanceSetting_MemoRelatedSetting) GetDisallowPublicVisibility() bool {
	if x != nil {
		return x.DisallowPublicVisibility
	}
	return false
}

func (x *InstanceSetting_MemoRelatedSetting) GetDisplayWithUpdateTime() bool {
	if x != nil {
		return x.DisplayWithUpdateTime
	}
	return false
}

func (x *InstanceSetting_MemoRelatedSetting) GetContentLengthLimit() int32 {
	if x != nil {
		return x.ContentLengthLimit
	}
	return 0
}

func (x *InstanceSetting_MemoRelatedSetting) GetEnableDoubleClickEdit() bool {
	if x != nil {
		return x.EnableDoubleClickEdit
	}
	return false
}

func (x *InstanceSetting_MemoRelatedSetting) GetReactions() []string {
	if x != nil {
		return x.Reactions
	}
	return nil
}

// Custom profile configuration for instance branding.
type InstanceSetting_GeneralSetting_CustomProfile struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Title         string                 `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	Description   string                 `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	LogoUrl       string                 `protobuf:"bytes,3,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*InstanceSetting_GeneralSetting_CustomProfile) ProtoMessage() {}

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

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

func (x *InstanceSetting_GeneralSetting_CustomProfile) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

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

func (x *InstanceSetting_GeneralSetting_CustomProfile) GetLogoUrl() string {
	if x != nil {
		return x.LogoUrl
	}
	return ""
}

// S3 configuration for cloud storage backend.
// Reference: https://developers.cloudflare.com/r2/examples/aws/aws-sdk-go/
type InstanceSetting_StorageSetting_S3Config struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	AccessKeyId     string                 `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId,proto3" json:"access_key_id,omitempty"`
	AccessKeySecret string                 `protobuf:"bytes,2,opt,name=access_key_secret,json=accessKeySecret,proto3" json:"access_key_secret,omitempty"`
	Endpoint        string                 `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	Region          string                 `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
	Bucket          string                 `protobuf:"bytes,5,opt,name=bucket,proto3" json:"bucket,omitempty"`
	UsePathStyle    bool                   `protobuf:"varint,6,opt,name=use_path_style,json=usePathStyle,proto3" json:"use_path_style,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*InstanceSetting_StorageSetting_S3Config) ProtoMessage() {}

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

// Deprecated: Use InstanceSetting_StorageSetting_S3Config.ProtoReflect.Descriptor instead.
func (*InstanceSetting_StorageSetting_S3Config) Descriptor() ([]byte, []int) {
	return file_api_v1_instance_service_proto_rawDescGZIP(), []int{2, 1, 0}
}

func (x *InstanceSetting_StorageSetting_S3Config) GetAccessKeyId() string {
	if x != nil {
		return x.AccessKeyId
	}
	return ""
}

func (x *InstanceSetting_StorageSetting_S3Config) GetAccessKeySecret() string {
	if x != nil {
		return x.AccessKeySecret
	}
	return ""
}

func (x *InstanceSetting_StorageSetting_S3Config) GetEndpoint() string {
	if x != nil {
		return x.Endpoint
	}
	return ""
}

func (x *InstanceSetting_StorageSetting_S3Config) GetRegion() string {
	if x != nil {
		return x.Region
	}
	return ""
}

func (x *InstanceSetting_StorageSetting_S3Config) GetBucket() string {
	if x != nil {
		return x.Bucket
	}
	return ""
}

func (x *InstanceSetting_StorageSetting_S3Config) GetUsePathStyle() bool {
	if x != nil {
		return x.UsePathStyle
	}
	return false
}

var File_api_v1_instance_service_proto protoreflect.FileDescriptor

const file_api_v1_instance_service_proto_rawDesc = "" +
	"\n" +
	"\x1dapi/v1/instance_service.proto\x12\fmemos.api.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"x\n" +
	"\x0fInstanceProfile\x12\x14\n" +
	"\x05owner\x18\x01 \x01(\tR\x05owner\x12\x18\n" +
	"\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" +
	"\x04mode\x18\x03 \x01(\tR\x04mode\x12!\n" +
	"\finstance_url\x18\x06 \x01(\tR\vinstanceUrl\"\x1b\n" +
	"\x19GetInstanceProfileRequest\"\x99\x0f\n" +
	"\x0fInstanceSetting\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12W\n" +
	"\x0fgeneral_setting\x18\x02 \x01(\v2,.memos.api.v1.InstanceSetting.GeneralSettingH\x00R\x0egeneralSetting\x12W\n" +
	"\x0fstorage_setting\x18\x03 \x01(\v2,.memos.api.v1.InstanceSetting.StorageSettingH\x00R\x0estorageSetting\x12d\n" +
	"\x14memo_related_setting\x18\x04 \x01(\v20.memos.api.v1.InstanceSetting.MemoRelatedSettingH\x00R\x12memoRelatedSetting\x1a\xca\x04\n" +
	"\x0eGeneralSetting\x12<\n" +
	"\x1adisallow_user_registration\x18\x02 \x01(\bR\x18disallowUserRegistration\x124\n" +
	"\x16disallow_password_auth\x18\x03 \x01(\bR\x14disallowPasswordAuth\x12+\n" +
	"\x11additional_script\x18\x04 \x01(\tR\x10additionalScript\x12)\n" +
	"\x10additional_style\x18\x05 \x01(\tR\x0fadditionalStyle\x12a\n" +
	"\x0ecustom_profile\x18\x06 \x01(\v2:.memos.api.v1.InstanceSetting.GeneralSetting.CustomProfileR\rcustomProfile\x121\n" +
	"\x15week_start_day_offset\x18\a \x01(\x05R\x12weekStartDayOffset\x128\n" +
	"\x18disallow_change_username\x18\b \x01(\bR\x16disallowChangeUsername\x128\n" +
	"\x18disallow_change_nickname\x18\t \x01(\bR\x16disallowChangeNickname\x1ab\n" +
	"\rCustomProfile\x12\x14\n" +
	"\x05title\x18\x01 \x01(\tR\x05title\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x19\n" +
	"\blogo_url\x18\x03 \x01(\tR\alogoUrl\x1a\xbc\x04\n" +
	"\x0eStorageSetting\x12[\n" +
	"\fstorage_type\x18\x01 \x01(\x0e28.memos.api.v1.InstanceSetting.StorageSetting.StorageTypeR\vstorageType\x12+\n" +
	"\x11filepath_template\x18\x02 \x01(\tR\x10filepathTemplate\x12/\n" +
	"\x14upload_size_limit_mb\x18\x03 \x01(\x03R\x11uploadSizeLimitMb\x12R\n" +
	"\ts3_config\x18\x04 \x01(\v25.memos.api.v1.InstanceSetting.StorageSetting.S3ConfigR\bs3Config\x1a\xcc\x01\n" +
	"\bS3Config\x12\"\n" +
	"\raccess_key_id\x18\x01 \x01(\tR\vaccessKeyId\x12*\n" +
	"\x11access_key_secret\x18\x02 \x01(\tR\x0faccessKeySecret\x12\x1a\n" +
	"\bendpoint\x18\x03 \x01(\tR\bendpoint\x12\x16\n" +
	"\x06region\x18\x04 \x01(\tR\x06region\x12\x16\n" +
	"\x06bucket\x18\x05 \x01(\tR\x06bucket\x12$\n" +
	"\x0euse_path_style\x18\x06 \x01(\bR\fusePathStyle\"L\n" +
	"\vStorageType\x12\x1c\n" +
	"\x18STORAGE_TYPE_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bDATABASE\x10\x01\x12\t\n" +
	"\x05LOCAL\x10\x02\x12\x06\n" +
	"\x02S3\x10\x03\x1a\x94\x02\n" +
	"\x12MemoRelatedSetting\x12<\n" +
	"\x1adisallow_public_visibility\x18\x01 \x01(\bR\x18disallowPublicVisibility\x127\n" +
	"\x18display_with_update_time\x18\x02 \x01(\bR\x15displayWithUpdateTime\x120\n" +
	"\x14content_length_limit\x18\x03 \x01(\x05R\x12contentLengthLimit\x127\n" +
	"\x18enable_double_click_edit\x18\x04 \x01(\bR\x15enableDoubleClickEdit\x12\x1c\n" +
	"\treactions\x18\a \x03(\tR\treactions\"F\n" +
	"\x03Key\x12\x13\n" +
	"\x0fKEY_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aGENERAL\x10\x01\x12\v\n" +
	"\aSTORAGE\x10\x02\x12\x10\n" +
	"\fMEMO_RELATED\x10\x03:a\xeaA^\n" +
	"\x1cmemos.api.v1/InstanceSetting\x12\x1binstance/settings/{setting}*\x10instanceSettings2\x0finstanceSettingB\a\n" +
	"\x05value\"U\n" +
	"\x19GetInstanceSettingRequest\x128\n" +
	"\x04name\x18\x01 \x01(\tB$\xe0A\x02\xfaA\x1e\n" +
	"\x1cmemos.api.v1/InstanceSettingR\x04name\"\x9e\x01\n" +
	"\x1cUpdateInstanceSettingRequest\x12<\n" +
	"\asetting\x18\x01 \x01(\v2\x1d.memos.api.v1.InstanceSettingB\x03\xe0A\x02R\asetting\x12@\n" +
	"\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x03\xe0A\x01R\n" +
	"updateMask2\xdb\x03\n" +
	"\x0fInstanceService\x12~\n" +
	"\x12GetInstanceProfile\x12'.memos.api.v1.GetInstanceProfileRequest\x1a\x1d.memos.api.v1.InstanceProfile\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/api/v1/instance/profile\x12\x8f\x01\n" +
	"\x12GetInstanceSetting\x12'.memos.api.v1.GetInstanceSettingRequest\x1a\x1d.memos.api.v1.InstanceSetting\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$\x12\"/api/v1/{name=instance/settings/*}\x12\xb5\x01\n" +
	"\x15UpdateInstanceSetting\x12*.memos.api.v1.UpdateInstanceSettingRequest\x1a\x1d.memos.api.v1.InstanceSetting\"Q\xdaA\x13setting,update_mask\x82\xd3\xe4\x93\x025:\asetting2*/api/v1/{setting.name=instance/settings/*}B\xac\x01\n" +
	"\x10com.memos.api.v1B\x14InstanceServiceProtoP\x01Z0github.com/usememos/memos/proto/gen/api/v1;apiv1\xa2\x02\x03MAX\xaa\x02\fMemos.Api.V1\xca\x02\fMemos\\Api\\V1\xe2\x02\x18Memos\\Api\\V1\\GPBMetadata\xea\x02\x0eMemos::Api::V1b\x06proto3"

var (
	file_api_v1_instance_service_proto_rawDescOnce sync.Once
	file_api_v1_instance_service_proto_rawDescData []byte
)

func file_api_v1_instance_service_proto_rawDescGZIP() []byte {
	file_api_v1_instance_service_proto_rawDescOnce.Do(func() {
		file_api_v1_instance_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_v1_instance_service_proto_rawDesc), len(file_api_v1_instance_service_proto_rawDesc)))
	})
	return file_api_v1_instance_service_proto_rawDescData
}

var file_api_v1_instance_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_api_v1_instance_service_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_api_v1_instance_service_proto_goTypes = []any{
	(InstanceSetting_Key)(0),                             // 0: memos.api.v1.InstanceSetting.Key
	(InstanceSetting_StorageSetting_StorageType)(0),      // 1: memos.api.v1.InstanceSetting.StorageSetting.StorageType
	(*InstanceProfile)(nil),                              // 2: memos.api.v1.InstanceProfile
	(*GetInstanceProfileRequest)(nil),                    // 3: memos.api.v1.GetInstanceProfileRequest
	(*InstanceSetting)(nil),                              // 4: memos.api.v1.InstanceSetting
	(*GetInstanceSettingRequest)(nil),                    // 5: memos.api.v1.GetInstanceSettingRequest
	(*UpdateInstanceSettingRequest)(nil),                 // 6: memos.api.v1.UpdateInstanceSettingRequest
	(*InstanceSetting_GeneralSetting)(nil),               // 7: memos.api.v1.InstanceSetting.GeneralSetting
	(*InstanceSetting_StorageSetting)(nil),               // 8: memos.api.v1.InstanceSetting.StorageSetting
	(*InstanceSetting_MemoRelatedSetting)(nil),           // 9: memos.api.v1.InstanceSetting.MemoRelatedSetting
	(*InstanceSetting_GeneralSetting_CustomProfile)(nil), // 10: memos.api.v1.InstanceSetting.GeneralSetting.CustomProfile
	(*InstanceSetting_StorageSetting_S3Config)(nil),      // 11: memos.api.v1.InstanceSetting.StorageSetting.S3Config
	(*fieldmaskpb.FieldMask)(nil),                        // 12: google.protobuf.FieldMask
}
var file_api_v1_instance_service_proto_depIdxs = []int32{
	7,  // 0: memos.api.v1.InstanceSetting.general_setting:type_name -> memos.api.v1.InstanceSetting.GeneralSetting
	8,  // 1: memos.api.v1.InstanceSetting.storage_setting:type_name -> memos.api.v1.InstanceSetting.StorageSetting
	9,  // 2: memos.api.v1.InstanceSetting.memo_related_setting:type_name -> memos.api.v1.InstanceSetting.MemoRelatedSetting
	4,  // 3: memos.api.v1.UpdateInstanceSettingRequest.setting:type_name -> memos.api.v1.InstanceSetting
	12, // 4: memos.api.v1.UpdateInstanceSettingRequest.update_mask:type_name -> google.protobuf.FieldMask
	10, // 5: memos.api.v1.InstanceSetting.GeneralSetting.custom_profile:type_name -> memos.api.v1.InstanceSetting.GeneralSetting.CustomProfile
	1,  // 6: memos.api.v1.InstanceSetting.StorageSetting.storage_type:type_name -> memos.api.v1.InstanceSetting.StorageSetting.StorageType
	11, // 7: memos.api.v1.InstanceSetting.StorageSetting.s3_config:type_name -> memos.api.v1.InstanceSetting.StorageSetting.S3Config
	3,  // 8: memos.api.v1.InstanceService.GetInstanceProfile:input_type -> memos.api.v1.GetInstanceProfileRequest
	5,  // 9: memos.api.v1.InstanceService.GetInstanceSetting:input_type -> memos.api.v1.GetInstanceSettingRequest
	6,  // 10: memos.api.v1.InstanceService.UpdateInstanceSetting:input_type -> memos.api.v1.UpdateInstanceSettingRequest
	2,  // 11: memos.api.v1.InstanceService.GetInstanceProfile:output_type -> memos.api.v1.InstanceProfile
	4,  // 12: memos.api.v1.InstanceService.GetInstanceSetting:output_type -> memos.api.v1.InstanceSetting
	4,  // 13: memos.api.v1.InstanceService.UpdateInstanceSetting:output_type -> memos.api.v1.InstanceSetting
	11, // [11:14] is the sub-list for method output_type
	8,  // [8:11] 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_api_v1_instance_service_proto_init() }
func file_api_v1_instance_service_proto_init() {
	if File_api_v1_instance_service_proto != nil {
		return
	}
	file_api_v1_instance_service_proto_msgTypes[2].OneofWrappers = []any{
		(*InstanceSetting_GeneralSetting_)(nil),
		(*InstanceSetting_StorageSetting_)(nil),
		(*InstanceSetting_MemoRelatedSetting_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_v1_instance_service_proto_rawDesc), len(file_api_v1_instance_service_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_api_v1_instance_service_proto_goTypes,
		DependencyIndexes: file_api_v1_instance_service_proto_depIdxs,
		EnumInfos:         file_api_v1_instance_service_proto_enumTypes,
		MessageInfos:      file_api_v1_instance_service_proto_msgTypes,
	}.Build()
	File_api_v1_instance_service_proto = out.File
	file_api_v1_instance_service_proto_goTypes = nil
	file_api_v1_instance_service_proto_depIdxs = nil
}
