syntax = "proto3"; package internal; message IndexMeta { } message FrameMeta { bool InverseEnabled = 2; string CacheType = 3; uint32 CacheSize = 4; string TimeQuantum = 5; bool RangeEnabled = 6; repeated Field Fields = 7; } message ImportResponse { string Err = 1; } message BlockDataRequest { string Index = 1; string Frame = 2; string View = 5; uint64 Slice = 4; uint64 Block = 3; } message BlockDataResponse { repeated uint64 RowIDs = 1; repeated uint64 ColumnIDs = 2; } message Cache { repeated uint64 IDs = 1; } message MaxSlices { map Standard = 1; map Inverse = 2; } message CreateSliceMessage { string Index = 1; uint64 Slice = 2; bool IsInverse = 3; } message DeleteIndexMessage { string Index = 1; } message CreateIndexMessage { string Index = 1; IndexMeta Meta = 2; } message CreateFrameMessage { string Index = 1; string Frame = 2; FrameMeta Meta = 3; } message DeleteFrameMessage { string Index = 1; string Frame = 2; } message CreateFieldMessage { string Index = 1; string Frame = 2; Field Field = 3; } message DeleteFieldMessage { string Index = 1; string Frame = 2; string Field = 3; } message Frame { string Name = 1; FrameMeta Meta = 2; repeated string Views = 3; } message Schema { repeated Index Indexes = 1; } message Index { string Name = 1; repeated Frame Frames = 4; repeated InputDefinition InputDefinitions = 6; } message InputDefinition { string Name = 1; repeated Frame Frames = 2; repeated InputDefinitionField Fields = 3; } message InputDefinitionField { string Name = 1; bool PrimaryKey = 2; repeated InputDefinitionAction InputDefinitionActions = 3; } message InputDefinitionAction { string Frame = 1; string ValueDestination = 2; map ValueMap = 3; uint64 RowID = 4; } message CreateInputDefinitionMessage { string Index = 1; InputDefinition Definition = 3; } message DeleteInputDefinitionMessage { string Index = 1; string Name = 2; } message URI { string Scheme = 1; string Host = 2; uint32 Port = 3; } message Node { string ID = 1; URI URI = 2; bool IsCoordinator = 3; } message NodeStateMessage { string NodeID = 1; string State = 2; } message NodeEventMessage { uint32 Event = 1; Node Node = 2; } message NodeStatus { Node Node = 1; MaxSlices MaxSlices = 2; Schema Schema = 3; } message ClusterStatus { string ClusterID = 1; string State = 2; repeated Node Nodes = 3; } message Field { string Name = 1; string Type = 2; int64 Min = 3; int64 Max = 4; } message CreateViewMessage { string Index = 1; string Frame = 2; string View = 3; } message DeleteViewMessage { string Index = 1; string Frame = 2; string View = 3; } message ResizeInstruction { int64 JobID = 1; Node Node = 2; Node Coordinator = 3; repeated ResizeSource Sources = 4; Schema Schema = 5; ClusterStatus ClusterStatus = 6; } message ResizeSource { Node Node = 1; string Index = 2; string Frame = 3; string View = 4; uint64 Slice = 5; } message ResizeInstructionComplete { int64 JobID = 1; Node Node = 2; string Error = 3; } message SetCoordinatorMessage { Node New = 1; } message UpdateCoordinatorMessage { Node New = 1; } message Topology { string ClusterID = 1; repeated string NodeIDs = 2; } message RecalculateCaches {}