syntax = "proto3"; package daemon; message AppDescriptor { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message ListAppRequest {} message ListAppResponse { repeated AppDescriptor apps = 1; } message CatalogsDescriptor { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message ListCatalogsRequest {} message ListCatalogsResponse { repeated CatalogsDescriptor catalogss = 1; } message PullAppRequest { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message PullAppResponse {} message PullCatalogsRequest { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message PullCatalogsResponse {} message RemoveAppRequest { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message RemoveAppResponse {} message RemoveCatalogsRequest { // project namespace string namespace = 1; // project id string id = 2; // project build version uint64 version = 3; } message RemoveCatalogsResponse {} message EnvironmentVariable { string key = 1; string value = 2; } message CreatePipeRequest { string id = 1; optional string description = 2; optional string user = 3; optional string group = 4; repeated EnvironmentVariable envs = 5; AppDescriptor app = 6; CatalogsDescriptor catalogs = 7; } message CreatePipeResponse {} message StartPipeRequest { string id = 1; } message StartPipeResponse {} message StopPipeRequest { string id = 1; } message StopPipeResponse {} message RemovePipeRequest { string id = 1; } message RemovePipeResponse {} message ListPipeRequest {} message PipeState { string id = 1; string load_state = 2; string active_state = 3; string sub_state = 4; } message ListPipeResponse { repeated PipeState pipes = 1; } service Daemon { // repository operations rpc ListApp(ListAppRequest) returns (ListAppResponse) {} rpc ListCatalogs(ListCatalogsRequest) returns (ListCatalogsResponse) {} rpc PullApp(PullAppRequest) returns (PullAppResponse) {} rpc PullCatalogs(PullCatalogsRequest) returns (PullCatalogsResponse) {} rpc RemoveApp(RemoveAppRequest) returns (RemoveAppResponse) {} rpc RemoveCatalogs(RemoveCatalogsRequest) returns (RemoveCatalogsResponse) {} // pipe operations rpc CreatePipe(CreatePipeRequest) returns (CreatePipeResponse) {} rpc StartPipe(StartPipeRequest) returns (StartPipeResponse) {} rpc StopPipe(StopPipeRequest) returns (StopPipeResponse) {} rpc RemovePipe(RemovePipeRequest) returns (RemovePipeResponse) {} rpc ListPipe(ListPipeRequest) returns (ListPipeResponse) {} }