syntax = "proto3"; package queue; import "github.com/golang/protobuf/ptypes/timestamp/timestamp.proto"; message Message { // Message ID. Uniquely identifies this message, it is used for // auditing and troubleshooting. string ID = 1; // The envelope for this message. string from = 2; repeated string To = 3; repeated Recipient rcpt = 4; bytes data = 5; // Creation timestamp. google.protobuf.Timestamp created_at_ts = 6; // Hostname of the server receiving this message. string hostname = 7; } message Recipient { string address = 1; enum Type { EMAIL = 0; PIPE = 1; } Type type = 2; enum Status { PENDING = 0; SENT = 1; FAILED = 2; } Status status = 3; string last_failure_message = 4; }