diff options
Diffstat (limited to 'event.proto')
| -rw-r--r-- | event.proto | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/event.proto b/event.proto new file mode 100644 index 0000000..49a8543 --- /dev/null +++ b/event.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; +package virtbuf; + +import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp +import "google/protobuf/any.proto"; // Import the well-known type for Timestamp + +message Events { + string uuid = 1; // I guess why not just have this on each file + string version = 2; // maybe can be used for protobuf schema change violations + int64 event_size = 3; // max events to store in a single + repeated Event events = 4; // all the events +} + +// this information leans towards being human readable not programatic +// in other words, it's better to just have the droplet name here rather than the uuid +// at least for now in the early days. but maybe forever. +// homelab clouds normally don't have many events. +// we are talking less than 1 a minute. even 1 an hour is often a lot +message Event { + int32 id = 1; + EventType etype = 2; + string droplet = 3; // name of the droplet + string droplet_uuid = 4; // uuid of the droplet + string hypervisor = 5; // name of the hypervisor + string hypervisor_uuid = 6; // uuid of the hypervisor + google.protobuf.Timestamp start = 7; // start time + google.protobuf.Timestamp end = 8; // end time + string field_name = 9; // the field name that changed + string orig_val = 10; // original value + string new_val = 11; // new value + google.protobuf.Any orig_any = 12; // anypb format. probably overkill + google.protobuf.Any new_any = 13; // anypb format +} + +enum EventType { + ADD = 0; + DELETE = 1; + POWERON = 2; + POWEROFF = 3; // should indicate a "normal" shutdown + HIBERNATE = 4; + MIGRATE = 5; + DEMO = 6; + GET = 7; // request something + LOGIN = 8; // attempt to login + OK = 9; // everything is ok + FAIL = 10; // everything failed + CRASH = 11; // droplet hard crashed + CHANGE = 12; // droplet or hypervisor config change +} |
