syntax = "proto3"; import "PdmObject.proto"; import "Definitions.proto"; package rips; service Case { rpc GetGridCount(CaseRequest) returns(GridCount) {} rpc GetCellCount(CellInfoRequest) returns (CellCount) {} rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {} rpc GetCellCenterForActiveCells(CellInfoRequest) returns (stream CellCenters) {} rpc GetCellCornersForActiveCells(CellInfoRequest) returns (stream CellCornersArray) {} rpc GetCoarseningInfoArray(CaseRequest) returns (CoarseningInfoArray) {} rpc GetTimeSteps(CaseRequest) returns (TimeStepDates) {} rpc GetSelectedCells(CaseRequest) returns (stream SelectedCells) {} rpc GetDaysSinceStart(CaseRequest) returns (DaysSinceStart) {} rpc GetCaseInfo(CaseRequest) returns (CaseInfo) {} rpc GetPdmObject(CaseRequest) returns (PdmObject) {} rpc GetReservoirBoundingBox(CaseRequest) returns (BoundingBox) {} } 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 BoundingBox { double min_x = 1; double max_x = 2; double min_y = 3; double max_y = 4; double min_z = 5; double max_z = 6; } message CaseGroup { int32 id = 1; string name = 2; } message CaseGroups { repeated CaseGroup case_groups = 1; } message GridCount { int32 count = 1; } 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; } message SelectedCell { int32 grid_index = 1; Vec3i ijk = 2; } message SelectedCells { repeated SelectedCell cells = 1; }