syntax = "proto3";
package macro_traffic_sim;
option go_package = "github.com/LdDl/macro_traffic_sim_grpc/clients/go;macrotraffic";
import "uuid.proto";
// Current phase of the pipeline execution.
enum PipelinePhase {
PIPELINE_PHASE_UNSPECIFIED = 0;
PIPELINE_PHASE_PREFLIGHT = 1;
PIPELINE_PHASE_GENERATION = 2;
PIPELINE_PHASE_DISTRIBUTION = 3;
PIPELINE_PHASE_MODE_CHOICE = 4;
PIPELINE_PHASE_ASSIGNMENT = 5;
PIPELINE_PHASE_DONE = 6;
}
// Request to run the 4-step pipeline
message RunPipelineRequest {
// Session identifier
UUIDv4 session_id = 1;
}
// Progress event streamed during pipeline execution
message RunPipelineProgress {
// Response code (0 = OK)
uint32 code = 1;
// Human-readable message
string text = 2;
// Session identifier
UUIDv4 session_id = 3;
// Current pipeline phase
PipelinePhase phase = 4;
// Multi-period progress
uint32 period_current = 5; // 1-based
uint32 period_total = 6;
// Feedback loop progress
uint32 feedback_current = 7; // 1-based
uint32 feedback_total = 8;
// Assignment iteration detail
uint32 assignment_iteration = 9;
uint32 assignment_max_iterations = 10;
double relative_gap = 11;
// Completion flags
bool is_completed = 12;
bool is_failed = 13;
string error_message = 14;
}