syntax = "proto3"; import "PdmObject.proto"; package rips; service Case { rpc GetGridCount(CaseRequest) returns(GridCount) {} rpc GetCellCount(CellInfoRequest) returns (CellCount) {} rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {} rpc GetCoarseningInfoArray(CaseRequest) returns (CoarseningInfoArray) {} rpc GetTimeSteps(CaseRequest) returns (TimeStepDates) {} rpc GetDaysSinceStart(CaseRequest) returns (DaysSinceStart) {} rpc GetCaseInfo(CaseRequest) returns (CaseInfo) {} rpc GetPdmObject(CaseRequest) returns (PdmObject) {} } message CaseRequest { int32 id = 1; } message CaseInfo { int32 id = 1; int32 group_id = 2; string name = 3; string type = 4; } message CaseInfoArray { repeated CaseInfo data = 1; } message CaseGroup { int32 id = 1; string name = 2; } message CaseGroups { repeated CaseGroup case_groups = 1; } message GridCount { int32 count = 1; } message Vec3i { int32 i = 1; int32 j = 2; int32 k = 3; } message CellCount { int32 active_cell_count = 1; int32 reservoir_cell_count = 2; } enum PorosityModelType { MATRIX_MODEL = 0; FRACTURE_MODEL = 1; } message CellInfoRequest { CaseRequest case_request = 1; PorosityModelType porosity_model = 2; } message CellInfoArray { repeated CellInfo data = 1; } message CellInfo { int32 grid_index = 1; int32 parent_grid_index = 2; int32 coarsening_box_index = 3; Vec3i local_ijk = 4; Vec3i parent_ijk = 5; } message CoarseningInfoArray { repeated CoarseningInfo data = 1; } message CoarseningInfo { Vec3i min = 1; Vec3i max = 2; } message TimeStepDates { repeated TimeStepDate dates = 1; } message TimeStepDate { int32 year = 1; int32 month = 2; int32 day = 3; int32 hour = 4; int32 minute = 5; int32 second = 6; } message DaysSinceStart { repeated double day_decimals = 1; }