diff --git a/da9fb2cbe2ae0d33bbadafc1da24747326d22e1d b/da9fb2cbe2ae0d33bbadafc1da24747326d22e1d index 3f83f99..13e2efd 100644 --- a/da9fb2cbe2ae0d33bbadafc1da24747326d22e1d +++ b/da9fb2cbe2ae0d33bbadafc1da24747326d22e1d @@ -123,3 +123,839 @@ func (v *Droplet) Unmarshal(data []byte) error { } // `autogen:droplet.pb.go` + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2-devel +// protoc v3.21.12 +// source: droplet.proto + +package virtbuf + +import ( + 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" +) + +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) +) + +// virtual machine state +type DropletState int32 + +const ( + DropletState_ON DropletState = 0 + DropletState_OFF DropletState = 1 + DropletState_UNKNOWN DropletState = 2 // qemu says 'Shutdown' + DropletState_PAUSED DropletState = 3 + DropletState_CRASHED DropletState = 4 + DropletState_INMIGRATE DropletState = 5 +) + +// Enum value maps for DropletState. +var ( + DropletState_name = map[int32]string{ + 0: "ON", + 1: "OFF", + 2: "UNKNOWN", + 3: "PAUSED", + 4: "CRASHED", + 5: "INMIGRATE", + } + DropletState_value = map[string]int32{ + "ON": 0, + "OFF": 1, + "UNKNOWN": 2, + "PAUSED": 3, + "CRASHED": 4, + "INMIGRATE": 5, + } +) + +func (x DropletState) Enum() *DropletState { + p := new(DropletState) + *p = x + return p +} + +func (x DropletState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DropletState) Descriptor() protoreflect.EnumDescriptor { + return file_droplet_proto_enumTypes[0].Descriptor() +} + +func (DropletState) Type() protoreflect.EnumType { + return &file_droplet_proto_enumTypes[0] +} + +func (x DropletState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DropletState.Descriptor instead. +func (DropletState) EnumDescriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{0} +} + +type DropletArchive int32 + +const ( + DropletArchive_DUP DropletArchive = 0 + DropletArchive_USER DropletArchive = 1 +) + +// Enum value maps for DropletArchive. +var ( + DropletArchive_name = map[int32]string{ + 0: "DUP", + 1: "USER", + } + DropletArchive_value = map[string]int32{ + "DUP": 0, + "USER": 1, + } +) + +func (x DropletArchive) Enum() *DropletArchive { + p := new(DropletArchive) + *p = x + return p +} + +func (x DropletArchive) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DropletArchive) Descriptor() protoreflect.EnumDescriptor { + return file_droplet_proto_enumTypes[1].Descriptor() +} + +func (DropletArchive) Type() protoreflect.EnumType { + return &file_droplet_proto_enumTypes[1] +} + +func (x DropletArchive) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DropletArchive.Descriptor instead. +func (DropletArchive) EnumDescriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{1} +} + +type Droplets struct { + Lock sync.RWMutex // auto-added by go.wit.com/apps/autogenpb + + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // I guess why not just have this on each file + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // maybe can be used for protobuf schema change violations + Droplets []*Droplet `protobuf:"bytes,3,rep,name=droplets,proto3" json:"droplets,omitempty"` +} + +func (x *Droplets) Reset() { + *x = Droplets{} + mi := &file_droplet_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Droplets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Droplets) ProtoMessage() {} + +func (x *Droplets) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Droplets.ProtoReflect.Descriptor instead. +func (*Droplets) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{0} +} + +func (x *Droplets) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *Droplets) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Droplets) GetDroplets() []*Droplet { + if x != nil { + return x.Droplets + } + return nil +} + +type Droplet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // `autogenpb:unique` // should be unique across the cluster + Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` // `autogenpb:unique` // should be unique and work in DNS + Cpus int64 `protobuf:"varint,3,opt,name=cpus,proto3" json:"cpus,omitempty"` // what's the point of int64 vs int32 + Memory int64 `protobuf:"varint,4,opt,name=memory,proto3" json:"memory,omitempty"` // in bytes + Current *Current `protobuf:"bytes,5,opt,name=current,proto3" json:"current,omitempty"` // what the state and values of the droplet is + StartState DropletState `protobuf:"varint,6,opt,name=start_state,json=startState,proto3,enum=virtbuf.DropletState" json:"start_state,omitempty"` // what the state of the droplet is SUPPOSED TO BE ('on' or 'off') + QemuMachine string `protobuf:"bytes,7,opt,name=qemu_machine,json=qemuMachine,proto3" json:"qemu_machine,omitempty"` // the qemu machine type to use "pc-q35-9.0" + SpicePort int64 `protobuf:"varint,8,opt,name=spice_port,json=spicePort,proto3" json:"spice_port,omitempty"` // preferred port to use for spice + PreferredHypervisor string `protobuf:"bytes,9,opt,name=preferred_hypervisor,json=preferredHypervisor,proto3" json:"preferred_hypervisor,omitempty"` // the hypervisor to prefer to run the droplet on + ForceHypervisor string `protobuf:"bytes,10,opt,name=force_hypervisor,json=forceHypervisor,proto3" json:"force_hypervisor,omitempty"` // use this hypervisor and this hypervisor only + PreferredArch string `protobuf:"bytes,11,opt,name=preferred_arch,json=preferredArch,proto3" json:"preferred_arch,omitempty"` // the cpu arch to use "x86_64" (should really get this from the disk?) + Networks []*Network `protobuf:"bytes,12,rep,name=networks,proto3" json:"networks,omitempty"` // really just mac addresses. should be unique across cluster + Disks []*Disk `protobuf:"bytes,13,rep,name=disks,proto3" json:"disks,omitempty"` // disks to attach + LocalOnly string `protobuf:"bytes,14,opt,name=local_only,json=localOnly,proto3" json:"local_only,omitempty"` // this is only defined locally on the hypervisor + CustomXml string `protobuf:"bytes,15,opt,name=custom_xml,json=customXml,proto3" json:"custom_xml,omitempty"` // if needed, + Archive *Archive `protobuf:"bytes,16,opt,name=archive,proto3" json:"archive,omitempty"` // what the state of the droplet is SUPPOSED TO BE ('on' or 'off') + Unstable *timestamppb.Timestamp `protobuf:"bytes,39,opt,name=unstable,proto3" json:"unstable,omitempty"` // the last time we heard anything from this droplet + UnstableTimeout *durationpb.Duration `protobuf:"bytes,40,opt,name=unstable_timeout,json=unstableTimeout,proto3" json:"unstable_timeout,omitempty"` // the last time we heard anything from this droplet +} + +func (x *Droplet) Reset() { + *x = Droplet{} + mi := &file_droplet_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Droplet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Droplet) ProtoMessage() {} + +func (x *Droplet) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Droplet.ProtoReflect.Descriptor instead. +func (*Droplet) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{1} +} + +func (x *Droplet) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *Droplet) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *Droplet) GetCpus() int64 { + if x != nil { + return x.Cpus + } + return 0 +} + +func (x *Droplet) GetMemory() int64 { + if x != nil { + return x.Memory + } + return 0 +} + +func (x *Droplet) GetCurrent() *Current { + if x != nil { + return x.Current + } + return nil +} + +func (x *Droplet) GetStartState() DropletState { + if x != nil { + return x.StartState + } + return DropletState_ON +} + +func (x *Droplet) GetQemuMachine() string { + if x != nil { + return x.QemuMachine + } + return "" +} + +func (x *Droplet) GetSpicePort() int64 { + if x != nil { + return x.SpicePort + } + return 0 +} + +func (x *Droplet) GetPreferredHypervisor() string { + if x != nil { + return x.PreferredHypervisor + } + return "" +} + +func (x *Droplet) GetForceHypervisor() string { + if x != nil { + return x.ForceHypervisor + } + return "" +} + +func (x *Droplet) GetPreferredArch() string { + if x != nil { + return x.PreferredArch + } + return "" +} + +func (x *Droplet) GetNetworks() []*Network { + if x != nil { + return x.Networks + } + return nil +} + +func (x *Droplet) GetDisks() []*Disk { + if x != nil { + return x.Disks + } + return nil +} + +func (x *Droplet) GetLocalOnly() string { + if x != nil { + return x.LocalOnly + } + return "" +} + +func (x *Droplet) GetCustomXml() string { + if x != nil { + return x.CustomXml + } + return "" +} + +func (x *Droplet) GetArchive() *Archive { + if x != nil { + return x.Archive + } + return nil +} + +func (x *Droplet) GetUnstable() *timestamppb.Timestamp { + if x != nil { + return x.Unstable + } + return nil +} + +func (x *Droplet) GetUnstableTimeout() *durationpb.Duration { + if x != nil { + return x.UnstableTimeout + } + return nil +} + +// volatile data. the current settings and values of things. +// These are passed around while the cluster to monitor and control the systems +// but they are not saved to the config file +type Current struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State DropletState `protobuf:"varint,1,opt,name=state,proto3,enum=virtbuf.DropletState" json:"state,omitempty"` // used to track the current state before taking any action + Hypervisor string `protobuf:"bytes,2,opt,name=hypervisor,proto3" json:"hypervisor,omitempty"` // the current hypervisor the droplet is running on + StartAttempts int64 `protobuf:"varint,3,opt,name=start_attempts,json=startAttempts,proto3" json:"start_attempts,omitempty"` // how many times a start has been attempted + FullXml string `protobuf:"bytes,4,opt,name=full_xml,json=fullXml,proto3" json:"full_xml,omitempty"` // the full libvirt xml to import + LastPoll *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=last_poll,json=lastPoll,proto3" json:"last_poll,omitempty"` // the last time we heard anything from this droplet + ImageUrl string `protobuf:"bytes,6,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"` // url to the image + OffSince *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=off_since,json=offSince,proto3" json:"off_since,omitempty"` // when the droplet was turned off + OnSince *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=on_since,json=onSince,proto3" json:"on_since,omitempty"` // when the droplet was turned on +} + +func (x *Current) Reset() { + *x = Current{} + mi := &file_droplet_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Current) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Current) ProtoMessage() {} + +func (x *Current) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Current.ProtoReflect.Descriptor instead. +func (*Current) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{2} +} + +func (x *Current) GetState() DropletState { + if x != nil { + return x.State + } + return DropletState_ON +} + +func (x *Current) GetHypervisor() string { + if x != nil { + return x.Hypervisor + } + return "" +} + +func (x *Current) GetStartAttempts() int64 { + if x != nil { + return x.StartAttempts + } + return 0 +} + +func (x *Current) GetFullXml() string { + if x != nil { + return x.FullXml + } + return "" +} + +func (x *Current) GetLastPoll() *timestamppb.Timestamp { + if x != nil { + return x.LastPoll + } + return nil +} + +func (x *Current) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *Current) GetOffSince() *timestamppb.Timestamp { + if x != nil { + return x.OffSince + } + return nil +} + +func (x *Current) GetOnSince() *timestamppb.Timestamp { + if x != nil { + return x.OnSince + } + return nil +} + +type Archive struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reason DropletArchive `protobuf:"varint,1,opt,name=reason,proto3,enum=virtbuf.DropletArchive" json:"reason,omitempty"` // why the droplet was archived + When *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=when,proto3" json:"when,omitempty"` // when it was archived +} + +func (x *Archive) Reset() { + *x = Archive{} + mi := &file_droplet_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Archive) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Archive) ProtoMessage() {} + +func (x *Archive) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Archive.ProtoReflect.Descriptor instead. +func (*Archive) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{3} +} + +func (x *Archive) GetReason() DropletArchive { + if x != nil { + return x.Reason + } + return DropletArchive_DUP +} + +func (x *Archive) GetWhen() *timestamppb.Timestamp { + if x != nil { + return x.When + } + return nil +} + +type Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mac string `protobuf:"bytes,1,opt,name=mac,proto3" json:"mac,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Network) Reset() { + *x = Network{} + mi := &file_droplet_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Network) ProtoMessage() {} + +func (x *Network) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Network.ProtoReflect.Descriptor instead. +func (*Network) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{4} +} + +func (x *Network) GetMac() string { + if x != nil { + return x.Mac + } + return "" +} + +func (x *Network) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type Disk struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + Filepath string `protobuf:"bytes,2,opt,name=filepath,proto3" json:"filepath,omitempty"` + Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + QemuArch string `protobuf:"bytes,4,opt,name=qemu_arch,json=qemuArch,proto3" json:"qemu_arch,omitempty"` // what arch. example: "x86_64" or "riscv64" +} + +func (x *Disk) Reset() { + *x = Disk{} + mi := &file_droplet_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Disk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Disk) ProtoMessage() {} + +func (x *Disk) ProtoReflect() protoreflect.Message { + mi := &file_droplet_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 Disk.ProtoReflect.Descriptor instead. +func (*Disk) Descriptor() ([]byte, []int) { + return file_droplet_proto_rawDescGZIP(), []int{5} +} + +func (x *Disk) GetFilename() string { + if x != nil { + return x.Filename + } + return "" +} + +func (x *Disk) GetFilepath() string { + if x != nil { + return x.Filepath + } + return "" +} + +func (x *Disk) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *Disk) GetQemuArch() string { + if x != nil { + return x.QemuArch + } + return "" +} + +var File_droplet_proto protoreflect.FileDescriptor + +var file_droplet_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x76, 0x69, 0x72, 0x74, 0x62, 0x75, 0x66, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x66, 0x0a, 0x08, 0x44, 0x72, 0x6f, + 0x70, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x69, 0x72, 0x74, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, + 0x73, 0x22, 0xcb, 0x05, 0x0a, 0x07, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x75, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x69, 0x72, + 0x74, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x69, 0x72, + 0x74, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x71, 0x65, 0x6d, 0x75, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x65, 0x6d, 0x75, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x70, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x70, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x31, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x79, 0x70, + 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, + 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x68, 0x79, 0x70, 0x65, + 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x48, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x41, 0x72, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x69, 0x72, 0x74, 0x62, 0x75, 0x66, + 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x69, 0x72, 0x74, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x73, 0x6b, + 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x78, 0x6d, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x58, 0x6d, 0x6c, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x69, 0x72, 0x74, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x12, 0x36, 0x0a, 0x08, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x08, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x28, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, + 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, + 0xde, 0x02, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x69, 0x72, + 0x74, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x79, 0x70, 0x65, + 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x79, + 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x78, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x66, 0x75, 0x6c, 0x6c, 0x58, 0x6d, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x50, + 0x6f, 0x6c, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, + 0x12, 0x37, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x08, 0x6f, 0x66, 0x66, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x22, 0x6a, 0x0a, 0x07, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x69, + 0x72, 0x74, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, + 0x77, 0x68, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x77, 0x68, 0x65, 0x6e, 0x22, 0x2f, 0x0a, 0x07, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, + 0x04, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x65, 0x6d, 0x75, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x65, 0x6d, 0x75, 0x41, 0x72, 0x63, 0x68, 0x2a, 0x54, + 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x41, 0x53, + 0x48, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x4d, 0x49, 0x47, 0x52, 0x41, + 0x54, 0x45, 0x10, 0x05, 0x2a, 0x23, 0x0a, 0x0e, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x55, 0x50, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_droplet_proto_rawDescOnce sync.Once + file_droplet_proto_rawDescData = file_droplet_proto_rawDesc +) + +func file_droplet_proto_rawDescGZIP() []byte { + file_droplet_proto_rawDescOnce.Do(func() { + file_droplet_proto_rawDescData = protoimpl.X.CompressGZIP(file_droplet_proto_rawDescData) + }) + return file_droplet_proto_rawDescData +} + +var file_droplet_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_droplet_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_droplet_proto_goTypes = []any{ + (DropletState)(0), // 0: virtbuf.DropletState + (DropletArchive)(0), // 1: virtbuf.DropletArchive + (*Droplets)(nil), // 2: virtbuf.Droplets + (*Droplet)(nil), // 3: virtbuf.Droplet + (*Current)(nil), // 4: virtbuf.Current + (*Archive)(nil), // 5: virtbuf.Archive + (*Network)(nil), // 6: virtbuf.Network + (*Disk)(nil), // 7: virtbuf.Disk + (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 9: google.protobuf.Duration +} +var file_droplet_proto_depIdxs = []int32{ + 3, // 0: virtbuf.Droplets.droplets:type_name -> virtbuf.Droplet + 4, // 1: virtbuf.Droplet.current:type_name -> virtbuf.Current + 0, // 2: virtbuf.Droplet.start_state:type_name -> virtbuf.DropletState + 6, // 3: virtbuf.Droplet.networks:type_name -> virtbuf.Network + 7, // 4: virtbuf.Droplet.disks:type_name -> virtbuf.Disk + 5, // 5: virtbuf.Droplet.archive:type_name -> virtbuf.Archive + 8, // 6: virtbuf.Droplet.unstable:type_name -> google.protobuf.Timestamp + 9, // 7: virtbuf.Droplet.unstable_timeout:type_name -> google.protobuf.Duration + 0, // 8: virtbuf.Current.state:type_name -> virtbuf.DropletState + 8, // 9: virtbuf.Current.last_poll:type_name -> google.protobuf.Timestamp + 8, // 10: virtbuf.Current.off_since:type_name -> google.protobuf.Timestamp + 8, // 11: virtbuf.Current.on_since:type_name -> google.protobuf.Timestamp + 1, // 12: virtbuf.Archive.reason:type_name -> virtbuf.DropletArchive + 8, // 13: virtbuf.Archive.when:type_name -> google.protobuf.Timestamp + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name +} + +func init() { file_droplet_proto_init() } +func file_droplet_proto_init() { + if File_droplet_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_droplet_proto_rawDesc, + NumEnums: 2, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_droplet_proto_goTypes, + DependencyIndexes: file_droplet_proto_depIdxs, + EnumInfos: file_droplet_proto_enumTypes, + MessageInfos: file_droplet_proto_msgTypes, + }.Build() + File_droplet_proto = out.File + file_droplet_proto_rawDesc = nil + file_droplet_proto_goTypes = nil + file_droplet_proto_depIdxs = nil +}