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

package compute

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

type Secret struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the secret.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Name of the key.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// Version of the secret.
	VersionId     string `protobuf:"bytes,3,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Secret) ProtoMessage() {}

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

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

func (x *Secret) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Secret) GetVersionId() string {
	if x != nil {
		return x.VersionId
	}
	return ""
}

type ContainerSolutionSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the product.
	ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
	// A list of the secrets.
	Secrets map[string]*Secret `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// A list of the environmets.
	Environment   map[string]string `protobuf:"bytes,3,rep,name=environment,proto3" json:"environment,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ContainerSolutionSpec) ProtoMessage() {}

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

func (x *ContainerSolutionSpec) GetProductId() string {
	if x != nil {
		return x.ProductId
	}
	return ""
}

func (x *ContainerSolutionSpec) GetSecrets() map[string]*Secret {
	if x != nil {
		return x.Secrets
	}
	return nil
}

func (x *ContainerSolutionSpec) GetEnvironment() map[string]string {
	if x != nil {
		return x.Environment
	}
	return nil
}

type BackupSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If true, backup is enabled.
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// A list of policy IDs to apply after resource registration.
	InitialPolicyIds []string `protobuf:"bytes,2,rep,name=initial_policy_ids,json=initialPolicyIds,proto3" json:"initial_policy_ids,omitempty"`
	// If true, recovery from backup starts on instance.
	RecoveryFromBackup bool `protobuf:"varint,3,opt,name=recovery_from_backup,json=recoveryFromBackup,proto3" json:"recovery_from_backup,omitempty"`
	// ID of the backup to recover from.
	BackupId string `protobuf:"bytes,4,opt,name=backup_id,json=backupId,proto3" json:"backup_id,omitempty"`
	// ID of the instance registration for cloud backup agent installation.
	InstanceRegistrationId string `protobuf:"bytes,5,opt,name=instance_registration_id,json=instanceRegistrationId,proto3" json:"instance_registration_id,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*BackupSpec) ProtoMessage() {}

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

func (x *BackupSpec) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *BackupSpec) GetInitialPolicyIds() []string {
	if x != nil {
		return x.InitialPolicyIds
	}
	return nil
}

func (x *BackupSpec) GetRecoveryFromBackup() bool {
	if x != nil {
		return x.RecoveryFromBackup
	}
	return false
}

func (x *BackupSpec) GetBackupId() string {
	if x != nil {
		return x.BackupId
	}
	return ""
}

func (x *BackupSpec) GetInstanceRegistrationId() string {
	if x != nil {
		return x.InstanceRegistrationId
	}
	return ""
}

type Application struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Container:
	//
	//	*Application_ContainerSolution
	Container isApplication_Container `protobuf_oneof:"container"`
	// Backup settings.
	Cloudbackup   *BackupSpec `protobuf:"bytes,2,opt,name=cloudbackup,proto3" json:"cloudbackup,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Application) ProtoMessage() {}

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

func (x *Application) GetContainer() isApplication_Container {
	if x != nil {
		return x.Container
	}
	return nil
}

func (x *Application) GetContainerSolution() *ContainerSolutionSpec {
	if x != nil {
		if x, ok := x.Container.(*Application_ContainerSolution); ok {
			return x.ContainerSolution
		}
	}
	return nil
}

func (x *Application) GetCloudbackup() *BackupSpec {
	if x != nil {
		return x.Cloudbackup
	}
	return nil
}

type isApplication_Container interface {
	isApplication_Container()
}

type Application_ContainerSolution struct {
	// Container specification.
	ContainerSolution *ContainerSolutionSpec `protobuf:"bytes,1,opt,name=container_solution,json=containerSolution,proto3,oneof"`
}

func (*Application_ContainerSolution) isApplication_Container() {}

var File_yandex_cloud_compute_v1_application_proto protoreflect.FileDescriptor

const file_yandex_cloud_compute_v1_application_proto_rawDesc = "" +
	"\n" +
	")yandex/cloud/compute/v1/application.proto\x12\x17yandex.cloud.compute.v1\x1a\x1dyandex/cloud/validation.proto\"p\n" +
	"\x06Secret\x12\x1c\n" +
	"\x02id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\x02id\x12\x1f\n" +
	"\x03key\x18\x02 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=256R\x03key\x12'\n" +
	"\n" +
	"version_id\x18\x03 \x01(\tB\b\x8a\xc81\x04<=50R\tversionId\"\xd3\x03\n" +
	"\x15ContainerSolutionSpec\x12+\n" +
	"\n" +
	"product_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tproductId\x12k\n" +
	"\asecrets\x18\x02 \x03(\v2;.yandex.cloud.compute.v1.ContainerSolutionSpec.SecretsEntryB\x14\x82\xc81\x05<=100\xb2\xc81\a\x1a\x05<=100R\asecrets\x12\x82\x01\n" +
	"\venvironment\x18\x03 \x03(\v2?.yandex.cloud.compute.v1.ContainerSolutionSpec.EnvironmentEntryB\x1f\x82\xc81\x05<=100\x8a\xc81\a<=10000\xb2\xc81\a\x1a\x05<=100R\venvironment\x1a[\n" +
	"\fSecretsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x125\n" +
	"\x05value\x18\x02 \x01(\v2\x1f.yandex.cloud.compute.v1.SecretR\x05value:\x028\x01\x1a>\n" +
	"\x10EnvironmentEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x85\x02\n" +
	"\n" +
	"BackupSpec\x12\x18\n" +
	"\aenabled\x18\x01 \x01(\bR\aenabled\x12>\n" +
	"\x12initial_policy_ids\x18\x02 \x03(\tB\x10\x82\xc81\x04<=50\x8a\xc81\x041-50R\x10initialPolicyIds\x120\n" +
	"\x14recovery_from_backup\x18\x03 \x01(\bR\x12recoveryFromBackup\x12&\n" +
	"\tbackup_id\x18\x04 \x01(\tB\t\x8a\xc81\x05<=100R\bbackupId\x12C\n" +
	"\x18instance_registration_id\x18\x05 \x01(\tB\t\x8a\xc81\x05<=100R\x16instanceRegistrationId\"\xc2\x01\n" +
	"\vApplication\x12_\n" +
	"\x12container_solution\x18\x01 \x01(\v2..yandex.cloud.compute.v1.ContainerSolutionSpecH\x00R\x11containerSolution\x12E\n" +
	"\vcloudbackup\x18\x02 \x01(\v2#.yandex.cloud.compute.v1.BackupSpecR\vcloudbackupB\v\n" +
	"\tcontainerBb\n" +
	"\x1byandex.cloud.api.compute.v1ZCgithub.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1;computeb\x06proto3"

var (
	file_yandex_cloud_compute_v1_application_proto_rawDescOnce sync.Once
	file_yandex_cloud_compute_v1_application_proto_rawDescData []byte
)

func file_yandex_cloud_compute_v1_application_proto_rawDescGZIP() []byte {
	file_yandex_cloud_compute_v1_application_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_compute_v1_application_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_compute_v1_application_proto_rawDesc), len(file_yandex_cloud_compute_v1_application_proto_rawDesc)))
	})
	return file_yandex_cloud_compute_v1_application_proto_rawDescData
}

var file_yandex_cloud_compute_v1_application_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_yandex_cloud_compute_v1_application_proto_goTypes = []any{
	(*Secret)(nil),                // 0: yandex.cloud.compute.v1.Secret
	(*ContainerSolutionSpec)(nil), // 1: yandex.cloud.compute.v1.ContainerSolutionSpec
	(*BackupSpec)(nil),            // 2: yandex.cloud.compute.v1.BackupSpec
	(*Application)(nil),           // 3: yandex.cloud.compute.v1.Application
	nil,                           // 4: yandex.cloud.compute.v1.ContainerSolutionSpec.SecretsEntry
	nil,                           // 5: yandex.cloud.compute.v1.ContainerSolutionSpec.EnvironmentEntry
}
var file_yandex_cloud_compute_v1_application_proto_depIdxs = []int32{
	4, // 0: yandex.cloud.compute.v1.ContainerSolutionSpec.secrets:type_name -> yandex.cloud.compute.v1.ContainerSolutionSpec.SecretsEntry
	5, // 1: yandex.cloud.compute.v1.ContainerSolutionSpec.environment:type_name -> yandex.cloud.compute.v1.ContainerSolutionSpec.EnvironmentEntry
	1, // 2: yandex.cloud.compute.v1.Application.container_solution:type_name -> yandex.cloud.compute.v1.ContainerSolutionSpec
	2, // 3: yandex.cloud.compute.v1.Application.cloudbackup:type_name -> yandex.cloud.compute.v1.BackupSpec
	0, // 4: yandex.cloud.compute.v1.ContainerSolutionSpec.SecretsEntry.value:type_name -> yandex.cloud.compute.v1.Secret
	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_compute_v1_application_proto_init() }
func file_yandex_cloud_compute_v1_application_proto_init() {
	if File_yandex_cloud_compute_v1_application_proto != nil {
		return
	}
	file_yandex_cloud_compute_v1_application_proto_msgTypes[3].OneofWrappers = []any{
		(*Application_ContainerSolution)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_compute_v1_application_proto_rawDesc), len(file_yandex_cloud_compute_v1_application_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_compute_v1_application_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_compute_v1_application_proto_depIdxs,
		MessageInfos:      file_yandex_cloud_compute_v1_application_proto_msgTypes,
	}.Build()
	File_yandex_cloud_compute_v1_application_proto = out.File
	file_yandex_cloud_compute_v1_application_proto_goTypes = nil
	file_yandex_cloud_compute_v1_application_proto_depIdxs = nil
}
