provisioner.proto 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. syntax = "proto3";
  2. option go_package = "github.com/porter-dev/porter/provisioner/pb";
  3. // Provisioner represents the service for managing, updating, and deleting infrastructure.
  4. service Provisioner {
  5. // Server-to-client streaming RPC that returns an update to the state.
  6. rpc GetStateUpdate(Infra) returns (stream StateUpdate) {}
  7. // Server-to-client streaming RPC that returns a new log.
  8. rpc GetLog(Infra) returns (stream LogString) {}
  9. // Client-to-server streaming RPC that streams logs to the provisioner.
  10. rpc StoreLog(stream TerraformLog) returns (TerraformStateMeta) {}
  11. }
  12. message TerraformStateMeta {
  13. }
  14. message Workspace {
  15. string workspace = 1;
  16. }
  17. message LogString {
  18. string log = 1;
  19. }
  20. message Infra {
  21. int64 project_id = 1;
  22. int64 id = 2;
  23. string suffix = 3;
  24. }
  25. message StateUpdate {
  26. string resource_id = 1;
  27. string status = 2;
  28. string error = 3;
  29. }
  30. enum TerraformEvent {
  31. PLANNED_CHANGE = 0;
  32. CHANGE_SUMMARY = 1;
  33. APPLY_START = 2;
  34. APPLY_PROGRESS = 3;
  35. APPLY_ERRORED = 4;
  36. APPLY_COMPLETE = 5;
  37. DIAGNOSTIC = 6;
  38. }
  39. message TerraformResource {
  40. string addr = 1;
  41. string resource = 2;
  42. string resource_type = 3;
  43. string resource_name = 4;
  44. string provider = 5;
  45. TerraformErrored errored = 6;
  46. }
  47. message TerraformErrored {
  48. bool errored_out = 1;
  49. string error_summary = 2;
  50. }
  51. message TerraformHook {
  52. TerraformResource resource = 1;
  53. string action = 2;
  54. }
  55. message TerraformChange {
  56. TerraformResource resource = 1;
  57. string action = 2;
  58. }
  59. message TerraformChanges {
  60. int64 add = 1;
  61. int64 change = 2;
  62. int64 remove = 3;
  63. string operation = 4;
  64. }
  65. message DiagnosticDetail {
  66. string severity = 1;
  67. string summary = 2;
  68. string address = 3;
  69. string detail = 4;
  70. }
  71. message TerraformLog {
  72. string level = 1;
  73. string message = 2;
  74. string timestamp = 3;
  75. TerraformEvent type = 4;
  76. TerraformHook hook = 5;
  77. TerraformChange change = 6;
  78. TerraformChanges changes = 7;
  79. DiagnosticDetail diagnostic = 8;
  80. }