syntax = "proto3"; package files; option go_package = "./proto;files"; service Files { rpc Save(SaveRequest) returns (SaveResponse) {} rpc List(ListRequest) returns (ListResponse) {} } message File { string id = 1; // A custom string for namespacing purposes // eg. files-of-mywebsite.com string project = 2; // Name of folder or file. string name = 3; // Path. Default is '/', ie. top level string path = 4; bool is_directory = 5; // File contents. Empty for directories. string file_contents = 6; int64 created = 7; int64 updated = 8; // owner string owner = 9; } // The save endpoint lets you batch save text files. message SaveRequest { repeated File files = 1; } message SaveResponse { } // List files by their project and optionally a path. message ListRequest { // Project, required for listing. string project = 1; // Defaults to '/', ie. lists all files in a project. // Supply path if of a folder if you want to list // file inside that folder // eg. '/docs' string path = 2; } message ListResponse { repeated File files = 1; }