// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/gitlab/v1/instance.proto

package gitlab

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 Instance_Status int32

const (
	// Default state.
	Instance_STATUS_UNSPECIFIED Instance_Status = 0
	// Instance is being created.
	Instance_CREATING Instance_Status = 1
	// Instance is running normally.
	Instance_RUNNING Instance_Status = 2
	// Instance is being updated.
	Instance_UPDATING Instance_Status = 3
	// Instance is in error state.
	Instance_ERROR Instance_Status = 4
	// Instance is being deleted.
	Instance_DELETING Instance_Status = 5
	// Backup is being created.
	Instance_BACKUP_CREATING Instance_Status = 6
	// Backup is being restored.
	Instance_BACKUP_RESTORING Instance_Status = 7
	// Instance is starting.
	Instance_STARTING Instance_Status = 8
	// Instance is stopping.
	Instance_STOPPING Instance_Status = 9
	// Instance is stopped.
	Instance_STOPPED Instance_Status = 10
	// Background migrations in progress.
	Instance_BACKGROUND_MIGRATIONS Instance_Status = 11
	// Object storage migrations in progress.
	Instance_OBJECT_STORAGE_MIGRATIONS Instance_Status = 12
	// Snapshot is being restored.
	Instance_SNAPSHOT_RESTORING Instance_Status = 13
)

// Enum value maps for Instance_Status.
var (
	Instance_Status_name = map[int32]string{
		0:  "STATUS_UNSPECIFIED",
		1:  "CREATING",
		2:  "RUNNING",
		3:  "UPDATING",
		4:  "ERROR",
		5:  "DELETING",
		6:  "BACKUP_CREATING",
		7:  "BACKUP_RESTORING",
		8:  "STARTING",
		9:  "STOPPING",
		10: "STOPPED",
		11: "BACKGROUND_MIGRATIONS",
		12: "OBJECT_STORAGE_MIGRATIONS",
		13: "SNAPSHOT_RESTORING",
	}
	Instance_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED":        0,
		"CREATING":                  1,
		"RUNNING":                   2,
		"UPDATING":                  3,
		"ERROR":                     4,
		"DELETING":                  5,
		"BACKUP_CREATING":           6,
		"BACKUP_RESTORING":          7,
		"STARTING":                  8,
		"STOPPING":                  9,
		"STOPPED":                   10,
		"BACKGROUND_MIGRATIONS":     11,
		"OBJECT_STORAGE_MIGRATIONS": 12,
		"SNAPSHOT_RESTORING":        13,
	}
)

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

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

func (Instance_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_gitlab_v1_instance_proto_enumTypes[0].Descriptor()
}

func (Instance_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_gitlab_v1_instance_proto_enumTypes[0]
}

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

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

// Instance represents a GitLab instance with its configuration and state.
type Instance struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique instance ID.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Folder ID where instance resides.
	FolderId string `protobuf:"bytes,2,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// Creation timestamp.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Last update timestamp.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Human-readable name.
	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	// Instance description.
	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// Resource labels as key-value pairs.
	Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Resource preset ID.
	ResourcePresetId string `protobuf:"bytes,8,opt,name=resource_preset_id,json=resourcePresetId,proto3" json:"resource_preset_id,omitempty"`
	// Disk size in bytes.
	DiskSize int64 `protobuf:"varint,9,opt,name=disk_size,json=diskSize,proto3" json:"disk_size,omitempty"`
	// Current instance status.
	Status Instance_Status `protobuf:"varint,10,opt,name=status,proto3,enum=yandex.cloud.gitlab.v1.Instance_Status" json:"status,omitempty"`
	// Admin username.
	AdminLogin string `protobuf:"bytes,11,opt,name=admin_login,json=adminLogin,proto3" json:"admin_login,omitempty"`
	// Admin email.
	AdminEmail string `protobuf:"bytes,12,opt,name=admin_email,json=adminEmail,proto3" json:"admin_email,omitempty"`
	// Instance domain.
	Domain string `protobuf:"bytes,13,opt,name=domain,proto3" json:"domain,omitempty"`
	// Subnet ID.
	SubnetId string `protobuf:"bytes,14,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	// Planned maintenance operation.
	PlannedOperation *MaintenanceOperation `protobuf:"bytes,16,opt,name=planned_operation,json=plannedOperation,proto3" json:"planned_operation,omitempty"`
	// How long to keep backups (days).
	BackupRetainPeriodDays int64 `protobuf:"varint,17,opt,name=backup_retain_period_days,json=backupRetainPeriodDays,proto3" json:"backup_retain_period_days,omitempty"`
	// Delete untagged resources during maintenance.
	MaintenanceDeleteUntagged bool `protobuf:"varint,19,opt,name=maintenance_delete_untagged,json=maintenanceDeleteUntagged,proto3" json:"maintenance_delete_untagged,omitempty"`
	// Protect from accidental deletion.
	DeletionProtection bool `protobuf:"varint,20,opt,name=deletion_protection,json=deletionProtection,proto3" json:"deletion_protection,omitempty"`
	// Approval rules ID.
	ApprovalRulesId string `protobuf:"bytes,22,opt,name=approval_rules_id,json=approvalRulesId,proto3" json:"approval_rules_id,omitempty"`
	// GitLab version of the instance.
	GitlabVersion string `protobuf:"bytes,23,opt,name=gitlab_version,json=gitlabVersion,proto3" json:"gitlab_version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Instance) ProtoMessage() {}

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

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

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

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

func (x *Instance) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

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

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

func (x *Instance) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *Instance) GetResourcePresetId() string {
	if x != nil {
		return x.ResourcePresetId
	}
	return ""
}

func (x *Instance) GetDiskSize() int64 {
	if x != nil {
		return x.DiskSize
	}
	return 0
}

func (x *Instance) GetStatus() Instance_Status {
	if x != nil {
		return x.Status
	}
	return Instance_STATUS_UNSPECIFIED
}

func (x *Instance) GetAdminLogin() string {
	if x != nil {
		return x.AdminLogin
	}
	return ""
}

func (x *Instance) GetAdminEmail() string {
	if x != nil {
		return x.AdminEmail
	}
	return ""
}

func (x *Instance) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *Instance) GetSubnetId() string {
	if x != nil {
		return x.SubnetId
	}
	return ""
}

func (x *Instance) GetPlannedOperation() *MaintenanceOperation {
	if x != nil {
		return x.PlannedOperation
	}
	return nil
}

func (x *Instance) GetBackupRetainPeriodDays() int64 {
	if x != nil {
		return x.BackupRetainPeriodDays
	}
	return 0
}

func (x *Instance) GetMaintenanceDeleteUntagged() bool {
	if x != nil {
		return x.MaintenanceDeleteUntagged
	}
	return false
}

func (x *Instance) GetDeletionProtection() bool {
	if x != nil {
		return x.DeletionProtection
	}
	return false
}

func (x *Instance) GetApprovalRulesId() string {
	if x != nil {
		return x.ApprovalRulesId
	}
	return ""
}

func (x *Instance) GetGitlabVersion() string {
	if x != nil {
		return x.GitlabVersion
	}
	return ""
}

var File_yandex_cloud_gitlab_v1_instance_proto protoreflect.FileDescriptor

const file_yandex_cloud_gitlab_v1_instance_proto_rawDesc = "" +
	"\n" +
	"%yandex/cloud/gitlab/v1/instance.proto\x12\x16yandex.cloud.gitlab.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\x1a(yandex/cloud/gitlab/v1/maintenance.proto\"\xf2\t\n" +
	"\bInstance\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" +
	"\tfolder_id\x18\x02 \x01(\tR\bfolderId\x129\n" +
	"\n" +
	"created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x12\n" +
	"\x04name\x18\x05 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x06 \x01(\tR\vdescription\x12D\n" +
	"\x06labels\x18\a \x03(\v2,.yandex.cloud.gitlab.v1.Instance.LabelsEntryR\x06labels\x12,\n" +
	"\x12resource_preset_id\x18\b \x01(\tR\x10resourcePresetId\x12\x1b\n" +
	"\tdisk_size\x18\t \x01(\x03R\bdiskSize\x12?\n" +
	"\x06status\x18\n" +
	" \x01(\x0e2'.yandex.cloud.gitlab.v1.Instance.StatusR\x06status\x12\x1f\n" +
	"\vadmin_login\x18\v \x01(\tR\n" +
	"adminLogin\x12\x1f\n" +
	"\vadmin_email\x18\f \x01(\tR\n" +
	"adminEmail\x12\x16\n" +
	"\x06domain\x18\r \x01(\tR\x06domain\x12\x1b\n" +
	"\tsubnet_id\x18\x0e \x01(\tR\bsubnetId\x12_\n" +
	"\x11planned_operation\x18\x10 \x01(\v2,.yandex.cloud.gitlab.v1.MaintenanceOperationB\x04\xe8\xc71\x00R\x10plannedOperation\x129\n" +
	"\x19backup_retain_period_days\x18\x11 \x01(\x03R\x16backupRetainPeriodDays\x12>\n" +
	"\x1bmaintenance_delete_untagged\x18\x13 \x01(\bR\x19maintenanceDeleteUntagged\x12/\n" +
	"\x13deletion_protection\x18\x14 \x01(\bR\x12deletionProtection\x128\n" +
	"\x11approval_rules_id\x18\x16 \x01(\tB\f\xe8\xc71\x00\x8a\xc81\x04<=30R\x0fapprovalRulesId\x12%\n" +
	"\x0egitlab_version\x18\x17 \x01(\tR\rgitlabVersion\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x88\x02\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCREATING\x10\x01\x12\v\n" +
	"\aRUNNING\x10\x02\x12\f\n" +
	"\bUPDATING\x10\x03\x12\t\n" +
	"\x05ERROR\x10\x04\x12\f\n" +
	"\bDELETING\x10\x05\x12\x13\n" +
	"\x0fBACKUP_CREATING\x10\x06\x12\x14\n" +
	"\x10BACKUP_RESTORING\x10\a\x12\f\n" +
	"\bSTARTING\x10\b\x12\f\n" +
	"\bSTOPPING\x10\t\x12\v\n" +
	"\aSTOPPED\x10\n" +
	"\x12\x19\n" +
	"\x15BACKGROUND_MIGRATIONS\x10\v\x12\x1d\n" +
	"\x19OBJECT_STORAGE_MIGRATIONS\x10\f\x12\x16\n" +
	"\x12SNAPSHOT_RESTORING\x10\rJ\x04\b\x0f\x10\x10J\x04\b\x12\x10\x13J\x04\b\x15\x10\x16Bc\n" +
	"\x1ayandex.cloud.api.gitlab.v1B\x02GIZAgithub.com/yandex-cloud/go-genproto/yandex/cloud/gitlab/v1;gitlabb\x06proto3"

var (
	file_yandex_cloud_gitlab_v1_instance_proto_rawDescOnce sync.Once
	file_yandex_cloud_gitlab_v1_instance_proto_rawDescData []byte
)

func file_yandex_cloud_gitlab_v1_instance_proto_rawDescGZIP() []byte {
	file_yandex_cloud_gitlab_v1_instance_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_gitlab_v1_instance_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_gitlab_v1_instance_proto_rawDesc), len(file_yandex_cloud_gitlab_v1_instance_proto_rawDesc)))
	})
	return file_yandex_cloud_gitlab_v1_instance_proto_rawDescData
}

var file_yandex_cloud_gitlab_v1_instance_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_yandex_cloud_gitlab_v1_instance_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_yandex_cloud_gitlab_v1_instance_proto_goTypes = []any{
	(Instance_Status)(0),          // 0: yandex.cloud.gitlab.v1.Instance.Status
	(*Instance)(nil),              // 1: yandex.cloud.gitlab.v1.Instance
	nil,                           // 2: yandex.cloud.gitlab.v1.Instance.LabelsEntry
	(*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp
	(*MaintenanceOperation)(nil),  // 4: yandex.cloud.gitlab.v1.MaintenanceOperation
}
var file_yandex_cloud_gitlab_v1_instance_proto_depIdxs = []int32{
	3, // 0: yandex.cloud.gitlab.v1.Instance.created_at:type_name -> google.protobuf.Timestamp
	3, // 1: yandex.cloud.gitlab.v1.Instance.updated_at:type_name -> google.protobuf.Timestamp
	2, // 2: yandex.cloud.gitlab.v1.Instance.labels:type_name -> yandex.cloud.gitlab.v1.Instance.LabelsEntry
	0, // 3: yandex.cloud.gitlab.v1.Instance.status:type_name -> yandex.cloud.gitlab.v1.Instance.Status
	4, // 4: yandex.cloud.gitlab.v1.Instance.planned_operation:type_name -> yandex.cloud.gitlab.v1.MaintenanceOperation
	5, // [5:5] is the sub-list for method output_type
	5, // [5:5] is the sub-list for method input_type
	5, // [5:5] is the sub-list for extension type_name
	5, // [5:5] is the sub-list for extension extendee
	0, // [0:5] is the sub-list for field type_name
}

func init() { file_yandex_cloud_gitlab_v1_instance_proto_init() }
func file_yandex_cloud_gitlab_v1_instance_proto_init() {
	if File_yandex_cloud_gitlab_v1_instance_proto != nil {
		return
	}
	file_yandex_cloud_gitlab_v1_maintenance_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_gitlab_v1_instance_proto_rawDesc), len(file_yandex_cloud_gitlab_v1_instance_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_gitlab_v1_instance_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_gitlab_v1_instance_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_gitlab_v1_instance_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_gitlab_v1_instance_proto_msgTypes,
	}.Build()
	File_yandex_cloud_gitlab_v1_instance_proto = out.File
	file_yandex_cloud_gitlab_v1_instance_proto_goTypes = nil
	file_yandex_cloud_gitlab_v1_instance_proto_depIdxs = nil
}
