syntax = "proto3"; package configuration.routing; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; message RoutingConfiguration { bool active = 1; optional string name = 2; string version = 3; repeated Message messages = 4; google.protobuf.Timestamp created_at = 5; google.protobuf.Timestamp updated_at = 6; } message Message { string id = 1; string version = 2; string tx_tp = 3; repeated Typology typologies = 4; } message Typology { string id = 1; string version = 2; repeated Rule rules = 3; } message Rule { string id = 1; optional string version = 2; } message RoutingConfigurationRequest { string id = 1; } message UpdateRoutingRequest { string id = 1; RoutingConfiguration configuration = 2; } message GetActiveRoutingResponse { optional RoutingConfiguration configuration = 1; } message DeleteConfigurationRequest { string id = 1; } service QueryRouting { rpc GetActiveRoutingConfiguration (google.protobuf.Empty) returns (GetActiveRoutingResponse); } service MutateRouting { rpc CreateRoutingConfiguration (RoutingConfiguration) returns (RoutingConfiguration); rpc UpdateRoutingConfiguration (UpdateRoutingRequest) returns (RoutingConfiguration); rpc DeleteRoutingConfiguration (DeleteConfigurationRequest) returns (RoutingConfiguration); }