lily.proto 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. syntax = "proto3";
  2. option java_multiple_files = true;
  3. option java_package = "com.github.saturn_xiv.palm.plugins.lily.v1";
  4. package palm.lily.v1;
  5. import "google/protobuf/duration.proto";
  6. // ----------------------------------------------------------------------------
  7. service Excel {
  8. rpc Parse(S3File) returns (ExcelModel) {}
  9. rpc Generate(ExcelModel) returns (S3File) {}
  10. }
  11. message ExcelModel {
  12. message Sheet {
  13. message Cell {
  14. uint32 row = 1;
  15. uint32 col = 2;
  16. string val = 3;
  17. }
  18. string name = 1;
  19. repeated Cell cells = 2;
  20. }
  21. repeated Sheet sheets = 1;
  22. }
  23. // ----------------------------------------------------------------------------
  24. service S3 {
  25. rpc GetFile(S3GetFileRequest) returns (S3GetFileResponse) {}
  26. }
  27. message S3File {
  28. string bucket = 1;
  29. string name = 2;
  30. string content_type = 9;
  31. }
  32. message S3GetFileRequest {
  33. string bucket = 1;
  34. string name = 2;
  35. google.protobuf.Duration ttl = 9;
  36. }
  37. message S3GetFileResponse {
  38. string url = 1;
  39. }
  40. // ----------------------------------------------------------------------------
  41. service Tex {
  42. rpc ToPdf(TexToRequest) returns (S3File) {}
  43. rpc ToWord(TexToRequest) returns (S3File) {}
  44. }
  45. message TexToRequest {
  46. string title = 1;
  47. map<string, bytes> files = 2;
  48. optional google.protobuf.Duration ttl = 7;
  49. optional string owner = 8;
  50. bool published = 9;
  51. }
  52. // ----------------------------------------------------------------------------
  53. service Epub {
  54. rpc Build(EpubBuildRequest) returns (S3File) {}
  55. }
  56. message EpubBuildRequest {}