Files
hyperswitch/proto/contract_routing.proto
Sarthak Soni 60ddddf24a feat(routing): Contract based routing integration (#6761)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
2025-02-06 13:46:00 +00:00

76 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package contract_routing;
service ContractScoreCalculator {
rpc FetchContractScore (CalContractScoreRequest) returns (CalContractScoreResponse);
rpc UpdateContract (UpdateContractRequest) returns (UpdateContractResponse);
rpc InvalidateContract (InvalidateContractRequest) returns (InvalidateContractResponse);
}
// API-1 types
message CalContractScoreRequest {
string id = 1;
string params = 2;
repeated string labels = 3;
CalContractScoreConfig config = 4;
}
message CalContractScoreConfig {
repeated double constants = 1;
TimeScale time_scale = 2;
}
message TimeScale {
enum Scale {
Day = 0;
Month = 1;
}
Scale time_scale = 1;
}
message CalContractScoreResponse {
repeated ScoreData labels_with_score = 1;
}
message ScoreData {
double score = 1;
string label = 2;
uint64 current_count = 3;
}
// API-2 types
message UpdateContractRequest {
string id = 1;
string params = 2;
repeated LabelInformation labels_information = 3;
}
message LabelInformation {
string label = 1;
uint64 target_count = 2;
uint64 target_time = 3;
uint64 current_count = 4;
}
message UpdateContractResponse {
enum UpdationStatus {
CONTRACT_UPDATION_SUCCEEDED = 0;
CONTRACT_UPDATION_FAILED = 1;
}
UpdationStatus status = 1;
}
// API-3 types
message InvalidateContractRequest {
string id = 1;
}
message InvalidateContractResponse {
enum InvalidationStatus {
CONTRACT_INVALIDATION_SUCCEEDED = 0;
CONTRACT_INVALIDATION_FAILED = 1;
}
InvalidationStatus status = 1;
}