syntax = "proto3"; package monsta.v1; import "metadata.proto"; import "object/numeric.proto"; service Monsta { rpc Call(Request) returns (Response) {} } message Request { // UniverseRequest universe = 1; DatabaseRequest database = 2; CollectionRequest collection = 3; DatabaseTxnRequest transaction = 4; } message Response { // UniverseResponse universe = 1; DatabaseResponse database = 2; CollectionResponse collection = 3; DatabaseTxnResponse transaction = 4; } message DatabaseRequest { // ListDatabasesRequest list_databases = 1; CreateDatabaseRequest create_database = 2; // UpdateDatabaseRequest update_database = 3; // DeleteDatabaseRequest delete_database = 4; DescribeDatabaseRequest describe_database = 5; } message DatabaseResponse { // ListDatabasesResponse list_databases = 1; CreateDatabaseResponse create_database = 2; // UpdateDatabaseResponse update_database = 3; // DeleteDatabaseResponse delete_database = 4; DescribeDatabaseResponse describe_database = 5; } message CreateDatabaseRequest { DatabaseSpec spec = 1; } message CreateDatabaseResponse { DatabaseDesc desc = 1; } message DescribeDatabaseRequest { uint64 id = 1; string name = 2; } message DescribeDatabaseResponse { DatabaseDesc desc = 1; } message CollectionRequest { uint64 database_id = 1; // ListCollectionsRequest list_collections = 2; CreateCollectionRequest create_collection = 3; // UpdateCollectionRequest update_collection = 4; // DeleteCollectionRequest delete_collection = 5; DescribeCollectionRequest describe_collection = 6; } message CollectionResponse { // ListCollectionsResponse list_collections = 2; CreateCollectionResponse create_collection = 3; // UpdateCollectionResponse update_collection = 4; // DeleteCollectionResponse delete_collection = 5; DescribeCollectionResponse describe_collection = 6; } message CreateCollectionRequest { CollectionSpec spec = 1; } message CreateCollectionResponse { CollectionDesc desc = 1; } message DescribeCollectionRequest { uint64 id = 1; string name = 2; } message DescribeCollectionResponse { CollectionDesc desc = 1; } message DatabaseTxnRequest { uint64 database_id = 1; repeated CollectionTxnRequest collections = 2; } message DatabaseTxnResponse { repeated CollectionTxnResponse collections = 2; } message CollectionTxnRequest { uint64 collection_id = 1; repeated NumericExpr numeric_exprs = 2; } message CollectionTxnResponse { repeated NumericResult numeric_results = 2; }