diff --git a/build/rust/Cargo.lock b/build/rust/Cargo.lock index baa9c6a..627d455 100644 --- a/build/rust/Cargo.lock +++ b/build/rust/Cargo.lock @@ -1054,7 +1054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "tucana-internal" +name = "tucana" version = "0.0.0" dependencies = [ "prost", diff --git a/build/rust/build.rs b/build/rust/build.rs index d2ca984..25567a2 100644 --- a/build/rust/build.rs +++ b/build/rust/build.rs @@ -10,7 +10,8 @@ fn main() -> Result<()> { "flow.proto", "action.proto", "transfer.proto", - "ping.proto" + "ping.proto", + "action_execute.proto" ]; let inclusions = &[ diff --git a/proto/aquila/action_execute.proto b/proto/aquila/action_execute.proto new file mode 100644 index 0000000..d70bb1a --- /dev/null +++ b/proto/aquila/action_execute.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +option ruby_package = "Tucana::Aquila"; + +package aquila; + +message ActionCallRequest { + string identifier = 1; + repeated string parameters = 2; +} + +message ActionCallResponse { + string execution_identifier = 1; +} + +message ActionResult { + repeated string result = 1; +} + +message ActionResultRequest { + string execution_identifier = 1; +} + +message ActionResultResponse { + optional ActionResult action_result = 1; +} + +service ActionCallService { + rpc Call (ActionCallRequest) returns (ActionCallResponse); +} + +service ActionResultService { + rpc GetResult (ActionResultRequest) returns (ActionResultResponse); +} \ No newline at end of file diff --git a/proto/aquila/transfer.proto b/proto/aquila/transfer.proto index 0c8a899..afd8a94 100644 --- a/proto/aquila/transfer.proto +++ b/proto/aquila/transfer.proto @@ -16,6 +16,18 @@ message InformationResponse { bool success = 1; } +message ActionExecuteRequest { + string execution_identifier = 1; + string function_identifier = 2; + repeated string parameters = 3; +} + +message ActionExecuteResponse { + string execution_identifier = 1; + repeated string result = 2; +} + service ActionTransferService { rpc Transfer (stream InformationRequest) returns (InformationResponse); + rpc Execute (stream ActionExecuteRequest) returns (stream ActionExecuteResponse); } \ No newline at end of file