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

package workload

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

const (
	CloudApplication_STATUS_UNSPECIFIED CloudApplication_Status = 0
	// Application under deploying / updating /deleting
	CloudApplication_PROCESSING CloudApplication_Status = 1
	// Application successfully deployed to YC
	CloudApplication_DEPLOYED CloudApplication_Status = 2
	// Application failed to deploy
	CloudApplication_FAILED CloudApplication_Status = 3
)

// Enum value maps for CloudApplication_Status.
var (
	CloudApplication_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "PROCESSING",
		2: "DEPLOYED",
		3: "FAILED",
	}
	CloudApplication_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"PROCESSING":         1,
		"DEPLOYED":           2,
		"FAILED":             3,
	}
)

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

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

func (CloudApplication_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes[0].Descriptor()
}

func (CloudApplication_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes[0]
}

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

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

type CloudApplication_Billing_BillingType int32

const (
	CloudApplication_Billing_BILLING_TYPE_UNSPECIFIED CloudApplication_Billing_BillingType = 0
	// User pays for application usage time
	CloudApplication_Billing_PAY_AS_YOU_GO CloudApplication_Billing_BillingType = 1
	// User bought a subscription
	CloudApplication_Billing_SUBSCRIPTION CloudApplication_Billing_BillingType = 2
)

// Enum value maps for CloudApplication_Billing_BillingType.
var (
	CloudApplication_Billing_BillingType_name = map[int32]string{
		0: "BILLING_TYPE_UNSPECIFIED",
		1: "PAY_AS_YOU_GO",
		2: "SUBSCRIPTION",
	}
	CloudApplication_Billing_BillingType_value = map[string]int32{
		"BILLING_TYPE_UNSPECIFIED": 0,
		"PAY_AS_YOU_GO":            1,
		"SUBSCRIPTION":             2,
	}
)

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

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

func (CloudApplication_Billing_BillingType) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes[1].Descriptor()
}

func (CloudApplication_Billing_BillingType) Type() protoreflect.EnumType {
	return &file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes[1]
}

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

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

type CloudApplication struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Application Identifier
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Application Status
	Status CloudApplication_Status `protobuf:"varint,2,opt,name=status,proto3,enum=yandex.cloud.cloudapps.workload.v1.CloudApplication_Status" json:"status,omitempty"`
	// Application billing info
	Billing       *CloudApplication_Billing `protobuf:"bytes,3,opt,name=billing,proto3" json:"billing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloudApplication) ProtoMessage() {}

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

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

func (x *CloudApplication) GetStatus() CloudApplication_Status {
	if x != nil {
		return x.Status
	}
	return CloudApplication_STATUS_UNSPECIFIED
}

func (x *CloudApplication) GetBilling() *CloudApplication_Billing {
	if x != nil {
		return x.Billing
	}
	return nil
}

type CloudApplication_Billing struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Type of application billing
	Type CloudApplication_Billing_BillingType `protobuf:"varint,1,opt,name=type,proto3,enum=yandex.cloud.cloudapps.workload.v1.CloudApplication_Billing_BillingType" json:"type,omitempty"`
	// Subscriptions bounded to cloud application
	Subscriptions []*CloudApplication_Billing_Subscription `protobuf:"bytes,2,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloudApplication_Billing) ProtoMessage() {}

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

func (x *CloudApplication_Billing) GetType() CloudApplication_Billing_BillingType {
	if x != nil {
		return x.Type
	}
	return CloudApplication_Billing_BILLING_TYPE_UNSPECIFIED
}

func (x *CloudApplication_Billing) GetSubscriptions() []*CloudApplication_Billing_Subscription {
	if x != nil {
		return x.Subscriptions
	}
	return nil
}

type CloudApplication_Billing_Subscription struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Identifier of subscription instance
	InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// Subscription template identifier
	TemplateId    string `protobuf:"bytes,2,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloudApplication_Billing_Subscription) ProtoMessage() {}

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

func (x *CloudApplication_Billing_Subscription) GetInstanceId() string {
	if x != nil {
		return x.InstanceId
	}
	return ""
}

func (x *CloudApplication_Billing_Subscription) GetTemplateId() string {
	if x != nil {
		return x.TemplateId
	}
	return ""
}

var File_yandex_cloud_cloudapps_workload_v1_cloud_application_proto protoreflect.FileDescriptor

const file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDesc = "" +
	"\n" +
	":yandex/cloud/cloudapps/workload/v1/cloud_application.proto\x12\"yandex.cloud.cloudapps.workload.v1\x1a\x1dyandex/cloud/validation.proto\"\xc6\x05\n" +
	"\x10CloudApplication\x12\x1c\n" +
	"\x02id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\x02id\x12Y\n" +
	"\x06status\x18\x02 \x01(\x0e2;.yandex.cloud.cloudapps.workload.v1.CloudApplication.StatusB\x04\xe8\xc71\x01R\x06status\x12\\\n" +
	"\abilling\x18\x03 \x01(\v2<.yandex.cloud.cloudapps.workload.v1.CloudApplication.BillingB\x04\xe8\xc71\x01R\abilling\x1a\x8e\x03\n" +
	"\aBilling\x12b\n" +
	"\x04type\x18\x01 \x01(\x0e2H.yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.BillingTypeB\x04\xe8\xc71\x01R\x04type\x12o\n" +
	"\rsubscriptions\x18\x02 \x03(\v2I.yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.SubscriptionR\rsubscriptions\x1a\\\n" +
	"\fSubscription\x12%\n" +
	"\vinstance_id\x18\x01 \x01(\tB\x04\xe8\xc71\x01R\n" +
	"instanceId\x12%\n" +
	"\vtemplate_id\x18\x02 \x01(\tB\x04\xe8\xc71\x01R\n" +
	"templateId\"P\n" +
	"\vBillingType\x12\x1c\n" +
	"\x18BILLING_TYPE_UNSPECIFIED\x10\x00\x12\x11\n" +
	"\rPAY_AS_YOU_GO\x10\x01\x12\x10\n" +
	"\fSUBSCRIPTION\x10\x02\"J\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\x0e\n" +
	"\n" +
	"PROCESSING\x10\x01\x12\f\n" +
	"\bDEPLOYED\x10\x02\x12\n" +
	"\n" +
	"\x06FAILED\x10\x03By\n" +
	"&yandex.cloud.api.cloudapps.workload.v1ZOgithub.com/yandex-cloud/go-genproto/yandex/cloud/cloudapps/workload/v1;workloadb\x06proto3"

var (
	file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescOnce sync.Once
	file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescData []byte
)

func file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescGZIP() []byte {
	file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDesc), len(file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDesc)))
	})
	return file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDescData
}

var file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_goTypes = []any{
	(CloudApplication_Status)(0),                  // 0: yandex.cloud.cloudapps.workload.v1.CloudApplication.Status
	(CloudApplication_Billing_BillingType)(0),     // 1: yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.BillingType
	(*CloudApplication)(nil),                      // 2: yandex.cloud.cloudapps.workload.v1.CloudApplication
	(*CloudApplication_Billing)(nil),              // 3: yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing
	(*CloudApplication_Billing_Subscription)(nil), // 4: yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.Subscription
}
var file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_depIdxs = []int32{
	0, // 0: yandex.cloud.cloudapps.workload.v1.CloudApplication.status:type_name -> yandex.cloud.cloudapps.workload.v1.CloudApplication.Status
	3, // 1: yandex.cloud.cloudapps.workload.v1.CloudApplication.billing:type_name -> yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing
	1, // 2: yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.type:type_name -> yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.BillingType
	4, // 3: yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.subscriptions:type_name -> yandex.cloud.cloudapps.workload.v1.CloudApplication.Billing.Subscription
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_init() }
func file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_init() {
	if File_yandex_cloud_cloudapps_workload_v1_cloud_application_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDesc), len(file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   3,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_msgTypes,
	}.Build()
	File_yandex_cloud_cloudapps_workload_v1_cloud_application_proto = out.File
	file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_goTypes = nil
	file_yandex_cloud_cloudapps_workload_v1_cloud_application_proto_depIdxs = nil
}
