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

package cloudregistry

import (
	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 Artifact_Kind int32

const (
	Artifact_KIND_UNSPECIFIED Artifact_Kind = 0
	// Artifact kind is folder.
	Artifact_FOLDER Artifact_Kind = 1
	// Artifact kind is package.
	Artifact_PACKAGE Artifact_Kind = 2
	// Artifact kind is artifact.
	Artifact_ARTIFACT Artifact_Kind = 3
)

// Enum value maps for Artifact_Kind.
var (
	Artifact_Kind_name = map[int32]string{
		0: "KIND_UNSPECIFIED",
		1: "FOLDER",
		2: "PACKAGE",
		3: "ARTIFACT",
	}
	Artifact_Kind_value = map[string]int32{
		"KIND_UNSPECIFIED": 0,
		"FOLDER":           1,
		"PACKAGE":          2,
		"ARTIFACT":         3,
	}
)

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

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

func (Artifact_Kind) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes[0].Descriptor()
}

func (Artifact_Kind) Type() protoreflect.EnumType {
	return &file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes[0]
}

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

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

type Artifact_Status int32

const (
	Artifact_STATUS_UNSPECIFIED Artifact_Status = 0
	// Artifact status is being created.
	Artifact_CREATING Artifact_Status = 1
	// Artifact status is ready to use.
	Artifact_ACTIVE Artifact_Status = 2
	// Artifact status is being deleted.
	Artifact_DELETING Artifact_Status = 3
)

// Enum value maps for Artifact_Status.
var (
	Artifact_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "CREATING",
		2: "ACTIVE",
		3: "DELETING",
	}
	Artifact_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"CREATING":           1,
		"ACTIVE":             2,
		"DELETING":           3,
	}
)

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

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

func (Artifact_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes[1].Descriptor()
}

func (Artifact_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes[1]
}

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

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

// A Artifact resource.
type Artifact struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Output only. ID of the artifact.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Path where the artifact is located.
	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	// Name of the artifact.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Kind of the artifact.
	Kind Artifact_Kind `protobuf:"varint,4,opt,name=kind,proto3,enum=yandex.cloud.cloudregistry.v1.Artifact_Kind" json:"kind,omitempty"`
	// Output only. Status of the artifact.
	Status Artifact_Status `protobuf:"varint,5,opt,name=status,proto3,enum=yandex.cloud.cloudregistry.v1.Artifact_Status" json:"status,omitempty"`
	// Output only. Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Output only. ID of the user or service account who created the artifact.
	CreatedBy string `protobuf:"bytes,8,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
	// Output only. Modification timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
	ModifiedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"`
	// Output only. ID of the user or service account who last modified the artifact.
	ModifiedBy string `protobuf:"bytes,9,opt,name=modified_by,json=modifiedBy,proto3" json:"modified_by,omitempty"`
	// Key-value properties associated with the artifact.
	Properties map[string]string `protobuf:"bytes,10,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Content of the artifact.
	Content       *Content `protobuf:"bytes,11,opt,name=content,proto3" json:"content,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Artifact) ProtoMessage() {}

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

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

func (x *Artifact) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

func (x *Artifact) GetKind() Artifact_Kind {
	if x != nil {
		return x.Kind
	}
	return Artifact_KIND_UNSPECIFIED
}

func (x *Artifact) GetStatus() Artifact_Status {
	if x != nil {
		return x.Status
	}
	return Artifact_STATUS_UNSPECIFIED
}

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

func (x *Artifact) GetCreatedBy() string {
	if x != nil {
		return x.CreatedBy
	}
	return ""
}

func (x *Artifact) GetModifiedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ModifiedAt
	}
	return nil
}

func (x *Artifact) GetModifiedBy() string {
	if x != nil {
		return x.ModifiedBy
	}
	return ""
}

func (x *Artifact) GetProperties() map[string]string {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *Artifact) GetContent() *Content {
	if x != nil {
		return x.Content
	}
	return nil
}

// Content of the artifact, specific to its type.
type Content struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Spec:
	//
	//	*Content_Docker
	Spec          isContent_Spec `protobuf_oneof:"spec"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Content) ProtoMessage() {}

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

func (x *Content) GetSpec() isContent_Spec {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *Content) GetDocker() *DockerContent {
	if x != nil {
		if x, ok := x.Spec.(*Content_Docker); ok {
			return x.Docker
		}
	}
	return nil
}

type isContent_Spec interface {
	isContent_Spec()
}

type Content_Docker struct {
	// Docker-specific content.
	Docker *DockerContent `protobuf:"bytes,1,opt,name=docker,proto3,oneof"`
}

func (*Content_Docker) isContent_Spec() {}

var File_yandex_cloud_cloudregistry_v1_artifact_proto protoreflect.FileDescriptor

const file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDesc = "" +
	"\n" +
	",yandex/cloud/cloudregistry/v1/artifact.proto\x12\x1dyandex.cloud.cloudregistry.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a2yandex/cloud/cloudregistry/v1/docker_content.proto\"\xed\x05\n" +
	"\bArtifact\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04path\x18\x02 \x01(\tR\x04path\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12@\n" +
	"\x04kind\x18\x04 \x01(\x0e2,.yandex.cloud.cloudregistry.v1.Artifact.KindR\x04kind\x12F\n" +
	"\x06status\x18\x05 \x01(\x0e2..yandex.cloud.cloudregistry.v1.Artifact.StatusR\x06status\x129\n" +
	"\n" +
	"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x1d\n" +
	"\n" +
	"created_by\x18\b \x01(\tR\tcreatedBy\x12;\n" +
	"\vmodified_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"modifiedAt\x12\x1f\n" +
	"\vmodified_by\x18\t \x01(\tR\n" +
	"modifiedBy\x12W\n" +
	"\n" +
	"properties\x18\n" +
	" \x03(\v27.yandex.cloud.cloudregistry.v1.Artifact.PropertiesEntryR\n" +
	"properties\x12@\n" +
	"\acontent\x18\v \x01(\v2&.yandex.cloud.cloudregistry.v1.ContentR\acontent\x1a=\n" +
	"\x0fPropertiesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"C\n" +
	"\x04Kind\x12\x14\n" +
	"\x10KIND_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06FOLDER\x10\x01\x12\v\n" +
	"\aPACKAGE\x10\x02\x12\f\n" +
	"\bARTIFACT\x10\x03\"H\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bCREATING\x10\x01\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x02\x12\f\n" +
	"\bDELETING\x10\x03\"Y\n" +
	"\aContent\x12F\n" +
	"\x06docker\x18\x01 \x01(\v2,.yandex.cloud.cloudregistry.v1.DockerContentH\x00R\x06dockerB\x06\n" +
	"\x04specBt\n" +
	"!yandex.cloud.api.cloudregistry.v1ZOgithub.com/yandex-cloud/go-genproto/yandex/cloud/cloudregistry/v1;cloudregistryb\x06proto3"

var (
	file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescOnce sync.Once
	file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescData []byte
)

func file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescGZIP() []byte {
	file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDesc), len(file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDesc)))
	})
	return file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDescData
}

var file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_yandex_cloud_cloudregistry_v1_artifact_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_yandex_cloud_cloudregistry_v1_artifact_proto_goTypes = []any{
	(Artifact_Kind)(0),            // 0: yandex.cloud.cloudregistry.v1.Artifact.Kind
	(Artifact_Status)(0),          // 1: yandex.cloud.cloudregistry.v1.Artifact.Status
	(*Artifact)(nil),              // 2: yandex.cloud.cloudregistry.v1.Artifact
	(*Content)(nil),               // 3: yandex.cloud.cloudregistry.v1.Content
	nil,                           // 4: yandex.cloud.cloudregistry.v1.Artifact.PropertiesEntry
	(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
	(*DockerContent)(nil),         // 6: yandex.cloud.cloudregistry.v1.DockerContent
}
var file_yandex_cloud_cloudregistry_v1_artifact_proto_depIdxs = []int32{
	0, // 0: yandex.cloud.cloudregistry.v1.Artifact.kind:type_name -> yandex.cloud.cloudregistry.v1.Artifact.Kind
	1, // 1: yandex.cloud.cloudregistry.v1.Artifact.status:type_name -> yandex.cloud.cloudregistry.v1.Artifact.Status
	5, // 2: yandex.cloud.cloudregistry.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp
	5, // 3: yandex.cloud.cloudregistry.v1.Artifact.modified_at:type_name -> google.protobuf.Timestamp
	4, // 4: yandex.cloud.cloudregistry.v1.Artifact.properties:type_name -> yandex.cloud.cloudregistry.v1.Artifact.PropertiesEntry
	3, // 5: yandex.cloud.cloudregistry.v1.Artifact.content:type_name -> yandex.cloud.cloudregistry.v1.Content
	6, // 6: yandex.cloud.cloudregistry.v1.Content.docker:type_name -> yandex.cloud.cloudregistry.v1.DockerContent
	7, // [7:7] is the sub-list for method output_type
	7, // [7:7] is the sub-list for method input_type
	7, // [7:7] is the sub-list for extension type_name
	7, // [7:7] is the sub-list for extension extendee
	0, // [0:7] is the sub-list for field type_name
}

func init() { file_yandex_cloud_cloudregistry_v1_artifact_proto_init() }
func file_yandex_cloud_cloudregistry_v1_artifact_proto_init() {
	if File_yandex_cloud_cloudregistry_v1_artifact_proto != nil {
		return
	}
	file_yandex_cloud_cloudregistry_v1_docker_content_proto_init()
	file_yandex_cloud_cloudregistry_v1_artifact_proto_msgTypes[1].OneofWrappers = []any{
		(*Content_Docker)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDesc), len(file_yandex_cloud_cloudregistry_v1_artifact_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   3,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_cloudregistry_v1_artifact_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_cloudregistry_v1_artifact_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_cloudregistry_v1_artifact_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_cloudregistry_v1_artifact_proto_msgTypes,
	}.Build()
	File_yandex_cloud_cloudregistry_v1_artifact_proto = out.File
	file_yandex_cloud_cloudregistry_v1_artifact_proto_goTypes = nil
	file_yandex_cloud_cloudregistry_v1_artifact_proto_depIdxs = nil
}
