syntax = "proto3"; package queue; option go_package = "blitiri.com.ar/go/chasquid/internal/queue"; 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. Timestamp created_at_ts = 6; } message Recipient { // Address to send the message to. // This is the final one, after expanding aliases. 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; // Address that this recipient was originally intended to. // This is before expanding aliases and only used in very particular // cases. string original_address = 5; } // Timestamp representation, for convenience. // We used to use the well-known type, but the dependency makes packaging much // more convoluted and adds very little value, so we now just include it here. message Timestamp { // Represents seconds of UTC time since Unix epoch. int64 seconds = 1; // Non-negative fractions of a second at nanosecond resolution. int32 nanos = 2; }