// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: yandex/cloud/ydb/v1/backup.proto

package ydb

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	dayofweek "google.golang.org/genproto/googleapis/type/dayofweek"
	timeofday "google.golang.org/genproto/googleapis/type/timeofday"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

type BackupSettings_Type int32

const (
	BackupSettings_TYPE_UNSPECIFIED BackupSettings_Type = 0
	BackupSettings_SYSTEM           BackupSettings_Type = 1
	BackupSettings_USER             BackupSettings_Type = 2
)

// Enum value maps for BackupSettings_Type.
var (
	BackupSettings_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "SYSTEM",
		2: "USER",
	}
	BackupSettings_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"SYSTEM":           1,
		"USER":             2,
	}
)

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

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

func (BackupSettings_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ydb_v1_backup_proto_enumTypes[0].Descriptor()
}

func (BackupSettings_Type) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ydb_v1_backup_proto_enumTypes[0]
}

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

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

type BackupSettings_StorageClass int32

const (
	BackupSettings_STORAGE_CLASS_UNSPECIFIED BackupSettings_StorageClass = 0
	BackupSettings_STANDARD                  BackupSettings_StorageClass = 1
	BackupSettings_REDUCED_REDUNDANCY        BackupSettings_StorageClass = 2
	BackupSettings_STANDARD_IA               BackupSettings_StorageClass = 3
	BackupSettings_ONEZONE_IA                BackupSettings_StorageClass = 4
	BackupSettings_INTELLIGENT_TIERING       BackupSettings_StorageClass = 5
	BackupSettings_GLACIER                   BackupSettings_StorageClass = 6
	BackupSettings_DEEP_ARCHIVE              BackupSettings_StorageClass = 7
	BackupSettings_OUTPOSTS                  BackupSettings_StorageClass = 8
)

// Enum value maps for BackupSettings_StorageClass.
var (
	BackupSettings_StorageClass_name = map[int32]string{
		0: "STORAGE_CLASS_UNSPECIFIED",
		1: "STANDARD",
		2: "REDUCED_REDUNDANCY",
		3: "STANDARD_IA",
		4: "ONEZONE_IA",
		5: "INTELLIGENT_TIERING",
		6: "GLACIER",
		7: "DEEP_ARCHIVE",
		8: "OUTPOSTS",
	}
	BackupSettings_StorageClass_value = map[string]int32{
		"STORAGE_CLASS_UNSPECIFIED": 0,
		"STANDARD":                  1,
		"REDUCED_REDUNDANCY":        2,
		"STANDARD_IA":               3,
		"ONEZONE_IA":                4,
		"INTELLIGENT_TIERING":       5,
		"GLACIER":                   6,
		"DEEP_ARCHIVE":              7,
		"OUTPOSTS":                  8,
	}
)

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

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

func (BackupSettings_StorageClass) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ydb_v1_backup_proto_enumTypes[1].Descriptor()
}

func (BackupSettings_StorageClass) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ydb_v1_backup_proto_enumTypes[1]
}

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

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

// id of backup
type Backup_Status int32

const (
	Backup_STATUS_UNSPECIFIED Backup_Status = 0
	Backup_CREATING           Backup_Status = 1
	Backup_READY              Backup_Status = 2
	Backup_ERROR              Backup_Status = 3
	Backup_CANCELLED          Backup_Status = 4
)

// Enum value maps for Backup_Status.
var (
	Backup_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "CREATING",
		2: "READY",
		3: "ERROR",
		4: "CANCELLED",
	}
	Backup_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"CREATING":           1,
		"READY":              2,
		"ERROR":              3,
		"CANCELLED":          4,
	}
)

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

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

func (Backup_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ydb_v1_backup_proto_enumTypes[2].Descriptor()
}

func (Backup_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ydb_v1_backup_proto_enumTypes[2]
}

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

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

type Backup_Type int32

const (
	Backup_TYPE_UNSPECIFIED Backup_Type = 0
	// indicates that backup started by the system.
	Backup_SYSTEM Backup_Type = 1
	Backup_USER   Backup_Type = 2
)

// Enum value maps for Backup_Type.
var (
	Backup_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "SYSTEM",
		2: "USER",
	}
	Backup_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"SYSTEM":           1,
		"USER":             2,
	}
)

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

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

func (Backup_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ydb_v1_backup_proto_enumTypes[3].Descriptor()
}

func (Backup_Type) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ydb_v1_backup_proto_enumTypes[3]
}

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

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

type BackupSchedule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Policy:
	//
	//	*BackupSchedule_DailyBackupSchedule
	//	*BackupSchedule_WeeklyBackupSchedule
	//	*BackupSchedule_RecurringBackupSchedule
	Policy isBackupSchedule_Policy `protobuf_oneof:"policy"`
	// output only field: when next backup will be executed
	// using provided schedule.
	NextExecuteTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=next_execute_time,json=nextExecuteTime,proto3" json:"next_execute_time,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*BackupSchedule) ProtoMessage() {}

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

func (x *BackupSchedule) GetPolicy() isBackupSchedule_Policy {
	if x != nil {
		return x.Policy
	}
	return nil
}

func (x *BackupSchedule) GetDailyBackupSchedule() *DailyBackupSchedule {
	if x != nil {
		if x, ok := x.Policy.(*BackupSchedule_DailyBackupSchedule); ok {
			return x.DailyBackupSchedule
		}
	}
	return nil
}

func (x *BackupSchedule) GetWeeklyBackupSchedule() *WeeklyBackupSchedule {
	if x != nil {
		if x, ok := x.Policy.(*BackupSchedule_WeeklyBackupSchedule); ok {
			return x.WeeklyBackupSchedule
		}
	}
	return nil
}

func (x *BackupSchedule) GetRecurringBackupSchedule() *RecurringBackupSchedule {
	if x != nil {
		if x, ok := x.Policy.(*BackupSchedule_RecurringBackupSchedule); ok {
			return x.RecurringBackupSchedule
		}
	}
	return nil
}

func (x *BackupSchedule) GetNextExecuteTime() *timestamppb.Timestamp {
	if x != nil {
		return x.NextExecuteTime
	}
	return nil
}

type isBackupSchedule_Policy interface {
	isBackupSchedule_Policy()
}

type BackupSchedule_DailyBackupSchedule struct {
	DailyBackupSchedule *DailyBackupSchedule `protobuf:"bytes,1,opt,name=daily_backup_schedule,json=dailyBackupSchedule,proto3,oneof"`
}

type BackupSchedule_WeeklyBackupSchedule struct {
	WeeklyBackupSchedule *WeeklyBackupSchedule `protobuf:"bytes,2,opt,name=weekly_backup_schedule,json=weeklyBackupSchedule,proto3,oneof"`
}

type BackupSchedule_RecurringBackupSchedule struct {
	RecurringBackupSchedule *RecurringBackupSchedule `protobuf:"bytes,4,opt,name=recurring_backup_schedule,json=recurringBackupSchedule,proto3,oneof"`
}

func (*BackupSchedule_DailyBackupSchedule) isBackupSchedule_Policy() {}

func (*BackupSchedule_WeeklyBackupSchedule) isBackupSchedule_Policy() {}

func (*BackupSchedule_RecurringBackupSchedule) isBackupSchedule_Policy() {}

type RecurringBackupSchedule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Timestamp of the first recurrence.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
	// this backup reccurs.
	// The FREQ values of MINUTELY, and SECONDLY are not supported.
	Recurrence    string `protobuf:"bytes,2,opt,name=recurrence,proto3" json:"recurrence,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecurringBackupSchedule) ProtoMessage() {}

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

func (x *RecurringBackupSchedule) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *RecurringBackupSchedule) GetRecurrence() string {
	if x != nil {
		return x.Recurrence
	}
	return ""
}

type DaysOfWeekBackupSchedule struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Days          []dayofweek.DayOfWeek  `protobuf:"varint,1,rep,packed,name=days,proto3,enum=google.type.DayOfWeek" json:"days,omitempty"`
	ExecuteTime   *timeofday.TimeOfDay   `protobuf:"bytes,2,opt,name=execute_time,json=executeTime,proto3" json:"execute_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DaysOfWeekBackupSchedule) ProtoMessage() {}

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

func (x *DaysOfWeekBackupSchedule) GetDays() []dayofweek.DayOfWeek {
	if x != nil {
		return x.Days
	}
	return nil
}

func (x *DaysOfWeekBackupSchedule) GetExecuteTime() *timeofday.TimeOfDay {
	if x != nil {
		return x.ExecuteTime
	}
	return nil
}

type WeeklyBackupSchedule struct {
	state         protoimpl.MessageState      `protogen:"open.v1"`
	DaysOfWeek    []*DaysOfWeekBackupSchedule `protobuf:"bytes,1,rep,name=days_of_week,json=daysOfWeek,proto3" json:"days_of_week,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WeeklyBackupSchedule) ProtoMessage() {}

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

func (x *WeeklyBackupSchedule) GetDaysOfWeek() []*DaysOfWeekBackupSchedule {
	if x != nil {
		return x.DaysOfWeek
	}
	return nil
}

type DailyBackupSchedule struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ExecuteTime   *timeofday.TimeOfDay   `protobuf:"bytes,1,opt,name=execute_time,json=executeTime,proto3" json:"execute_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DailyBackupSchedule) ProtoMessage() {}

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

func (x *DailyBackupSchedule) GetExecuteTime() *timeofday.TimeOfDay {
	if x != nil {
		return x.ExecuteTime
	}
	return nil
}

type BackupSettings struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of backup settings
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// human readable description.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// provide schedule. if empty, backup will be disabled.
	BackupSchedule *BackupSchedule `protobuf:"bytes,3,opt,name=backup_schedule,json=backupSchedule,proto3" json:"backup_schedule,omitempty"`
	// provide time to live of backup.
	BackupTimeToLive *durationpb.Duration `protobuf:"bytes,4,opt,name=backup_time_to_live,json=backupTimeToLive,proto3" json:"backup_time_to_live,omitempty"`
	// provide a list of source paths. Each path can be directory, table or even database itself.
	// Each directory (or database) will be traversed recursively and all childs of directory will be included to backup.
	// By default, backup will be created for full database.
	SourcePaths []string `protobuf:"bytes,5,rep,name=source_paths,json=sourcePaths,proto3" json:"source_paths,omitempty"`
	// provide a list of paths to exclude from backup.
	// Each path is a directory, table, or database.
	// Each directory (or database) will be traversed recursively and all childs of directory will be excluded.
	SourcePathsToExclude []string                    `protobuf:"bytes,6,rep,name=source_paths_to_exclude,json=sourcePathsToExclude,proto3" json:"source_paths_to_exclude,omitempty"`
	Type                 BackupSettings_Type         `protobuf:"varint,7,opt,name=type,proto3,enum=yandex.cloud.ydb.v1.BackupSettings_Type" json:"type,omitempty"`
	StorageClass         BackupSettings_StorageClass `protobuf:"varint,8,opt,name=storage_class,json=storageClass,proto3,enum=yandex.cloud.ydb.v1.BackupSettings_StorageClass" json:"storage_class,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*BackupSettings) ProtoMessage() {}

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

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

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

func (x *BackupSettings) GetBackupSchedule() *BackupSchedule {
	if x != nil {
		return x.BackupSchedule
	}
	return nil
}

func (x *BackupSettings) GetBackupTimeToLive() *durationpb.Duration {
	if x != nil {
		return x.BackupTimeToLive
	}
	return nil
}

func (x *BackupSettings) GetSourcePaths() []string {
	if x != nil {
		return x.SourcePaths
	}
	return nil
}

func (x *BackupSettings) GetSourcePathsToExclude() []string {
	if x != nil {
		return x.SourcePathsToExclude
	}
	return nil
}

func (x *BackupSettings) GetType() BackupSettings_Type {
	if x != nil {
		return x.Type
	}
	return BackupSettings_TYPE_UNSPECIFIED
}

func (x *BackupSettings) GetStorageClass() BackupSettings_StorageClass {
	if x != nil {
		return x.StorageClass
	}
	return BackupSettings_STORAGE_CLASS_UNSPECIFIED
}

type BackupConfig struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	BackupSettings []*BackupSettings      `protobuf:"bytes,1,rep,name=backup_settings,json=backupSettings,proto3" json:"backup_settings,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*BackupConfig) ProtoMessage() {}

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

func (x *BackupConfig) GetBackupSettings() []*BackupSettings {
	if x != nil {
		return x.BackupSettings
	}
	return nil
}

type Backup struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// human readable backup name.
	Name       string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	FolderId   string `protobuf:"bytes,3,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	DatabaseId string `protobuf:"bytes,4,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"`
	// description of backup.
	Description string                 `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	CreatedAt   *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// indicates when backup started.
	StartedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	// indicates when backup completed.
	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	Status      Backup_Status          `protobuf:"varint,9,opt,name=status,proto3,enum=yandex.cloud.ydb.v1.Backup_Status" json:"status,omitempty"`
	// settings used to make backup.
	BackupSettings *BackupSettings `protobuf:"bytes,10,opt,name=backup_settings,json=backupSettings,proto3" json:"backup_settings,omitempty"`
	Type           Backup_Type     `protobuf:"varint,11,opt,name=type,proto3,enum=yandex.cloud.ydb.v1.Backup_Type" json:"type,omitempty"`
	// size of backup in bytes.
	Size          int64 `protobuf:"varint,12,opt,name=size,proto3" json:"size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Backup) ProtoMessage() {}

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

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

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

func (x *Backup) GetFolderId() string {
	if x != nil {
		return x.FolderId
	}
	return ""
}

func (x *Backup) GetDatabaseId() string {
	if x != nil {
		return x.DatabaseId
	}
	return ""
}

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

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

func (x *Backup) GetStartedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartedAt
	}
	return nil
}

func (x *Backup) GetCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CompletedAt
	}
	return nil
}

func (x *Backup) GetStatus() Backup_Status {
	if x != nil {
		return x.Status
	}
	return Backup_STATUS_UNSPECIFIED
}

func (x *Backup) GetBackupSettings() *BackupSettings {
	if x != nil {
		return x.BackupSettings
	}
	return nil
}

func (x *Backup) GetType() Backup_Type {
	if x != nil {
		return x.Type
	}
	return Backup_TYPE_UNSPECIFIED
}

func (x *Backup) GetSize() int64 {
	if x != nil {
		return x.Size
	}
	return 0
}

var File_yandex_cloud_ydb_v1_backup_proto protoreflect.FileDescriptor

const file_yandex_cloud_ydb_v1_backup_proto_rawDesc = "" +
	"\n" +
	" yandex/cloud/ydb/v1/backup.proto\x12\x13yandex.cloud.ydb.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/type/timeofday.proto\x1a\x1bgoogle/type/dayofweek.proto\x1a\x1dyandex/cloud/validation.proto\"\x97\x03\n" +
	"\x0eBackupSchedule\x12^\n" +
	"\x15daily_backup_schedule\x18\x01 \x01(\v2(.yandex.cloud.ydb.v1.DailyBackupScheduleH\x00R\x13dailyBackupSchedule\x12a\n" +
	"\x16weekly_backup_schedule\x18\x02 \x01(\v2).yandex.cloud.ydb.v1.WeeklyBackupScheduleH\x00R\x14weeklyBackupSchedule\x12j\n" +
	"\x19recurring_backup_schedule\x18\x04 \x01(\v2,.yandex.cloud.ydb.v1.RecurringBackupScheduleH\x00R\x17recurringBackupSchedule\x12F\n" +
	"\x11next_execute_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x0fnextExecuteTimeB\x0e\n" +
	"\x06policy\x12\x04\xc0\xc11\x01\"\x80\x01\n" +
	"\x17RecurringBackupSchedule\x12?\n" +
	"\n" +
	"start_time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampB\x04\xe8\xc71\x01R\tstartTime\x12$\n" +
	"\n" +
	"recurrence\x18\x02 \x01(\tB\x04\xe8\xc71\x01R\n" +
	"recurrence\"\x90\x01\n" +
	"\x18DaysOfWeekBackupSchedule\x123\n" +
	"\x04days\x18\x01 \x03(\x0e2\x16.google.type.DayOfWeekB\a\x82\xc81\x031-7R\x04days\x12?\n" +
	"\fexecute_time\x18\x02 \x01(\v2\x16.google.type.TimeOfDayB\x04\xe8\xc71\x01R\vexecuteTime\"p\n" +
	"\x14WeeklyBackupSchedule\x12X\n" +
	"\fdays_of_week\x18\x01 \x03(\v2-.yandex.cloud.ydb.v1.DaysOfWeekBackupScheduleB\a\x82\xc81\x031-7R\n" +
	"daysOfWeek\"V\n" +
	"\x13DailyBackupSchedule\x12?\n" +
	"\fexecute_time\x18\x01 \x01(\v2\x16.google.type.TimeOfDayB\x04\xe8\xc71\x01R\vexecuteTime\"\xea\x05\n" +
	"\x0eBackupSettings\x12\x1d\n" +
	"\x04name\x18\x01 \x01(\tB\t\x8a\xc81\x05<=256R\x04name\x12+\n" +
	"\vdescription\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256R\vdescription\x12L\n" +
	"\x0fbackup_schedule\x18\x03 \x01(\v2#.yandex.cloud.ydb.v1.BackupScheduleR\x0ebackupSchedule\x12H\n" +
	"\x13backup_time_to_live\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x10backupTimeToLive\x12,\n" +
	"\fsource_paths\x18\x05 \x03(\tB\t\x82\xc81\x05<=256R\vsourcePaths\x12@\n" +
	"\x17source_paths_to_exclude\x18\x06 \x03(\tB\t\x82\xc81\x05<=256R\x14sourcePathsToExclude\x12<\n" +
	"\x04type\x18\a \x01(\x0e2(.yandex.cloud.ydb.v1.BackupSettings.TypeR\x04type\x12U\n" +
	"\rstorage_class\x18\b \x01(\x0e20.yandex.cloud.ydb.v1.BackupSettings.StorageClassR\fstorageClass\"2\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06SYSTEM\x10\x01\x12\b\n" +
	"\x04USER\x10\x02\"\xba\x01\n" +
	"\fStorageClass\x12\x1d\n" +
	"\x19STORAGE_CLASS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bSTANDARD\x10\x01\x12\x16\n" +
	"\x12REDUCED_REDUNDANCY\x10\x02\x12\x0f\n" +
	"\vSTANDARD_IA\x10\x03\x12\x0e\n" +
	"\n" +
	"ONEZONE_IA\x10\x04\x12\x17\n" +
	"\x13INTELLIGENT_TIERING\x10\x05\x12\v\n" +
	"\aGLACIER\x10\x06\x12\x10\n" +
	"\fDEEP_ARCHIVE\x10\a\x12\f\n" +
	"\bOUTPOSTS\x10\b\"\\\n" +
	"\fBackupConfig\x12L\n" +
	"\x0fbackup_settings\x18\x01 \x03(\v2#.yandex.cloud.ydb.v1.BackupSettingsR\x0ebackupSettings\"\x9e\x05\n" +
	"\x06Backup\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x1b\n" +
	"\tfolder_id\x18\x03 \x01(\tR\bfolderId\x12\x1f\n" +
	"\vdatabase_id\x18\x04 \x01(\tR\n" +
	"databaseId\x12 \n" +
	"\vdescription\x18\x05 \x01(\tR\vdescription\x129\n" +
	"\n" +
	"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"started_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
	"\fcompleted_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12:\n" +
	"\x06status\x18\t \x01(\x0e2\".yandex.cloud.ydb.v1.Backup.StatusR\x06status\x12L\n" +
	"\x0fbackup_settings\x18\n" +
	" \x01(\v2#.yandex.cloud.ydb.v1.BackupSettingsR\x0ebackupSettings\x124\n" +
	"\x04type\x18\v \x01(\x0e2 .yandex.cloud.ydb.v1.Backup.TypeR\x04type\x12\x12\n" +
	"\x04size\x18\f \x01(\x03R\x04size\"S\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCREATING\x10\x01\x12\t\n" +
	"\x05READY\x10\x02\x12\t\n" +
	"\x05ERROR\x10\x03\x12\r\n" +
	"\tCANCELLED\x10\x04\"2\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06SYSTEM\x10\x01\x12\b\n" +
	"\x04USER\x10\x02BV\n" +
	"\x17yandex.cloud.api.ydb.v1Z;github.com/yandex-cloud/go-genproto/yandex/cloud/ydb/v1;ydbb\x06proto3"

var (
	file_yandex_cloud_ydb_v1_backup_proto_rawDescOnce sync.Once
	file_yandex_cloud_ydb_v1_backup_proto_rawDescData []byte
)

func file_yandex_cloud_ydb_v1_backup_proto_rawDescGZIP() []byte {
	file_yandex_cloud_ydb_v1_backup_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_ydb_v1_backup_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_ydb_v1_backup_proto_rawDesc), len(file_yandex_cloud_ydb_v1_backup_proto_rawDesc)))
	})
	return file_yandex_cloud_ydb_v1_backup_proto_rawDescData
}

var file_yandex_cloud_ydb_v1_backup_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_yandex_cloud_ydb_v1_backup_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_yandex_cloud_ydb_v1_backup_proto_goTypes = []any{
	(BackupSettings_Type)(0),         // 0: yandex.cloud.ydb.v1.BackupSettings.Type
	(BackupSettings_StorageClass)(0), // 1: yandex.cloud.ydb.v1.BackupSettings.StorageClass
	(Backup_Status)(0),               // 2: yandex.cloud.ydb.v1.Backup.Status
	(Backup_Type)(0),                 // 3: yandex.cloud.ydb.v1.Backup.Type
	(*BackupSchedule)(nil),           // 4: yandex.cloud.ydb.v1.BackupSchedule
	(*RecurringBackupSchedule)(nil),  // 5: yandex.cloud.ydb.v1.RecurringBackupSchedule
	(*DaysOfWeekBackupSchedule)(nil), // 6: yandex.cloud.ydb.v1.DaysOfWeekBackupSchedule
	(*WeeklyBackupSchedule)(nil),     // 7: yandex.cloud.ydb.v1.WeeklyBackupSchedule
	(*DailyBackupSchedule)(nil),      // 8: yandex.cloud.ydb.v1.DailyBackupSchedule
	(*BackupSettings)(nil),           // 9: yandex.cloud.ydb.v1.BackupSettings
	(*BackupConfig)(nil),             // 10: yandex.cloud.ydb.v1.BackupConfig
	(*Backup)(nil),                   // 11: yandex.cloud.ydb.v1.Backup
	(*timestamppb.Timestamp)(nil),    // 12: google.protobuf.Timestamp
	(dayofweek.DayOfWeek)(0),         // 13: google.type.DayOfWeek
	(*timeofday.TimeOfDay)(nil),      // 14: google.type.TimeOfDay
	(*durationpb.Duration)(nil),      // 15: google.protobuf.Duration
}
var file_yandex_cloud_ydb_v1_backup_proto_depIdxs = []int32{
	8,  // 0: yandex.cloud.ydb.v1.BackupSchedule.daily_backup_schedule:type_name -> yandex.cloud.ydb.v1.DailyBackupSchedule
	7,  // 1: yandex.cloud.ydb.v1.BackupSchedule.weekly_backup_schedule:type_name -> yandex.cloud.ydb.v1.WeeklyBackupSchedule
	5,  // 2: yandex.cloud.ydb.v1.BackupSchedule.recurring_backup_schedule:type_name -> yandex.cloud.ydb.v1.RecurringBackupSchedule
	12, // 3: yandex.cloud.ydb.v1.BackupSchedule.next_execute_time:type_name -> google.protobuf.Timestamp
	12, // 4: yandex.cloud.ydb.v1.RecurringBackupSchedule.start_time:type_name -> google.protobuf.Timestamp
	13, // 5: yandex.cloud.ydb.v1.DaysOfWeekBackupSchedule.days:type_name -> google.type.DayOfWeek
	14, // 6: yandex.cloud.ydb.v1.DaysOfWeekBackupSchedule.execute_time:type_name -> google.type.TimeOfDay
	6,  // 7: yandex.cloud.ydb.v1.WeeklyBackupSchedule.days_of_week:type_name -> yandex.cloud.ydb.v1.DaysOfWeekBackupSchedule
	14, // 8: yandex.cloud.ydb.v1.DailyBackupSchedule.execute_time:type_name -> google.type.TimeOfDay
	4,  // 9: yandex.cloud.ydb.v1.BackupSettings.backup_schedule:type_name -> yandex.cloud.ydb.v1.BackupSchedule
	15, // 10: yandex.cloud.ydb.v1.BackupSettings.backup_time_to_live:type_name -> google.protobuf.Duration
	0,  // 11: yandex.cloud.ydb.v1.BackupSettings.type:type_name -> yandex.cloud.ydb.v1.BackupSettings.Type
	1,  // 12: yandex.cloud.ydb.v1.BackupSettings.storage_class:type_name -> yandex.cloud.ydb.v1.BackupSettings.StorageClass
	9,  // 13: yandex.cloud.ydb.v1.BackupConfig.backup_settings:type_name -> yandex.cloud.ydb.v1.BackupSettings
	12, // 14: yandex.cloud.ydb.v1.Backup.created_at:type_name -> google.protobuf.Timestamp
	12, // 15: yandex.cloud.ydb.v1.Backup.started_at:type_name -> google.protobuf.Timestamp
	12, // 16: yandex.cloud.ydb.v1.Backup.completed_at:type_name -> google.protobuf.Timestamp
	2,  // 17: yandex.cloud.ydb.v1.Backup.status:type_name -> yandex.cloud.ydb.v1.Backup.Status
	9,  // 18: yandex.cloud.ydb.v1.Backup.backup_settings:type_name -> yandex.cloud.ydb.v1.BackupSettings
	3,  // 19: yandex.cloud.ydb.v1.Backup.type:type_name -> yandex.cloud.ydb.v1.Backup.Type
	20, // [20:20] is the sub-list for method output_type
	20, // [20:20] is the sub-list for method input_type
	20, // [20:20] is the sub-list for extension type_name
	20, // [20:20] is the sub-list for extension extendee
	0,  // [0:20] is the sub-list for field type_name
}

func init() { file_yandex_cloud_ydb_v1_backup_proto_init() }
func file_yandex_cloud_ydb_v1_backup_proto_init() {
	if File_yandex_cloud_ydb_v1_backup_proto != nil {
		return
	}
	file_yandex_cloud_ydb_v1_backup_proto_msgTypes[0].OneofWrappers = []any{
		(*BackupSchedule_DailyBackupSchedule)(nil),
		(*BackupSchedule_WeeklyBackupSchedule)(nil),
		(*BackupSchedule_RecurringBackupSchedule)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_ydb_v1_backup_proto_rawDesc), len(file_yandex_cloud_ydb_v1_backup_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   8,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_ydb_v1_backup_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_ydb_v1_backup_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_ydb_v1_backup_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_ydb_v1_backup_proto_msgTypes,
	}.Build()
	File_yandex_cloud_ydb_v1_backup_proto = out.File
	file_yandex_cloud_ydb_v1_backup_proto_goTypes = nil
	file_yandex_cloud_ydb_v1_backup_proto_depIdxs = nil
}
