// A 128-bit id, transferred as two 64-bit longs
message UUID {
required sint64 least_significant_bits = 1;
required sint64 most_significant_bits = 2;
}
// Seconds from the epoch of 1970-01-01T00:00:00Z
message UnixTime {
required int64 from_epoch = 1;
}
message Duration {
required int32 seconds = 1;
}
message BusinessKey {
required string id = 1;
}
message UnionKey {
required int32 id = 1;
}
message BankAccountNumber {
required int32 reg = 1;
required int64 number = 2;
}
message Fraction {
required int32 basis_point = 1;
}
message Money {
required int32 pennies = 1;
}
message Ssn {
required string id = 1;
}
message ClaimantKey {
required string id = 1;
}
message ClaimKey {
required ClaimantKey claimant_key = 1 [(scalapb.field).type = "toolbox.data.ClaimantKey"];
required int64 id = 2;
}
message Day {
required int32 year = 1;
required int32 month = 2;
required int32 day = 3;
}
message DayInterval {
required Day from = 1 [(scalapb.field).type = "toolbox.data.Day"];
optional Day to_opt = 2 [(scalapb.field).type = "toolbox.data.Day"];
}
message DayRange {
required Day from = 1 [(scalapb.field).type = "toolbox.data.Day"];
required Day to = 2 [(scalapb.field).type = "toolbox.data.Day"];
}
message DaySet {
repeated Day days = 1 [(scalapb.field).type = "toolbox.data.Day"];
}
message PeriodKey {
required int32 year = 1;
required int32 number = 2;
}
message Period {
required PeriodKey period_key = 1 [(scalapb.field).type = "toolbox.data.PeriodKey"];
required DaySet benefit_days = 2 [(scalapb.field).type = "toolbox.data.DaySet"];
required DayRange range = 3 [(scalapb.field).type = "toolbox.data.DayRange"];
}
enum Sign {
Zero = 0;
Positive = 1;
Negative = 2;
}
message DurationDelta {
required Duration delta = 1 [(scalapb.field).type = "toolbox.data.Duration"];
required Sign sign = 2 [(scalapb.field).type = "toolbox.data.Sign"];
}
message MoneyDelta {
required Money delta = 1 [(scalapb.field).type = "toolbox.data.Money"];
required Sign sign = 2 [(scalapb.field).type = "toolbox.data.Sign"];
}
After a year in production, none of those above have been subject for change.