Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,18 +56,21 @@ services that Sagittarius must implement as a server.
.
├── aquila
│ ├── action - Action service (emits events, and handles executions)
│ ├── execution - Service for updating completed executions
│ ├── install_action - Service for listing, installing, and uninstalling actions
│ ├── module - Module service for Taurus to send over datatypes, functions and flow types
│ ├── runtime_status - Service for runtime status (handles information about Draco and Taurus)
│ ├── runtime_usage - Service for runtime usage (handles execution time of a flow)
│ └── execution - Service for updating completed executions
│ └── runtime_usage - Service for runtime usage (handles execution time of a flow)
├── sagittarius
│ ├── flow - Flow service (handles flow updates)
│ ├── install_action - Service for listing, installing, and uninstalling actions
│ ├── module - Module service to receive datatypes, functions and flow types from aquila
│ ├── ping - Ping service (performs life checks)
│ ├── runtime_status - Service for runtime status (handles information about Draco and Taurus)
│ ├── runtime_usage - Service for runtime usage (handles execution time of a flow)
│ └── test_execution - Service and Types for the test execution
└── shared
├── action - Defines information about an installable action
├── data_type - Defines types for data types
├── errors - Defines error object
├── execution_result - Defines execution result of a flow
Expand All @@ -82,3 +85,4 @@ services that Sagittarius must implement as a server.
├── struct - Defines json representations
└── translation - Contains translations with country codes and translated messages
```

65 changes: 65 additions & 0 deletions proto/aquila/aquila.install_action.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
syntax = "proto3";

option ruby_package = "Tucana::Aquila";

package aquila;

import "shared.action.proto";

message UninstallActionCommand {
string action_identifier = 1;
}

message InstallActionCommand {
string action_identifier = 1;
}

message UninstallActionResult {
enum Result {
UNKNOWN = 0;
UNINSTALLED = 1;
FAILED = 2;
}

Result result = 1;
}

message InstallActionResult {
enum Result {
UNKNOWN = 0;
ALREADY_INSTALLED = 1;
INSTALLED = 2;
FAILED = 3;
}

Result result = 1;
}

message ListInstallableActionsCommand {}

message ListInstallableActionsResult {
repeated shared.InstallableAction actions = 1;
}

message Logon {}

message ActionInstallServiceRequest {
oneof data {
Logon logon = 1;
ListInstallableActionsResult list_installable_actions_result = 2;
InstallActionResult install_action_result = 3;
UninstallActionResult uninstall_action_result = 4;
}
}

message ActionInstallServiceResponse {
oneof data {
InstallActionCommand install_action = 1;
UninstallActionCommand uninstall_action = 2;
ListInstallableActionsCommand list_installable_actions = 3;
}
}

service ActionInstallService {
rpc Install (stream ActionInstallServiceRequest) returns (stream ActionInstallServiceResponse);
}
68 changes: 68 additions & 0 deletions proto/sagittarius/sagittarius.install_action.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
syntax = "proto3";

option ruby_package = "Tucana::Sagittarius";

package sagittarius;

import "shared.action.proto";

message UninstallActionCommand {
string action_identifier = 1;
}

message InstallActionCommand {
string action_identifier = 1;
}

message UninstallActionResult {
enum Result {
UNKNOWN = 0;
UNINSTALLED = 1;
FAILED = 2;
}

Result result = 1;
}

message InstallActionResult {
enum Result {
UNKNOWN = 0;
ALREADY_INSTALLED = 1;
INSTALLED = 2;
FAILED = 3;
}

Result result = 1;
}

message ListInstallableActionsCommand {}

message ListInstallableActionsResult {
repeated shared.InstallableAction actions = 1;
}

message ActionInstallLogon {
// does this runtime has the capability to install Actions
bool can_install_actions = 1;
}

message ActionInstallServiceRequest {
oneof data {
ActionInstallLogon logon = 1;
ListInstallableActionsResult list_installable_actions_result = 2;
InstallActionResult install_action_result = 3;
UninstallActionResult uninstall_action_result = 4;
}
}

message ActionInstallServiceResponse {
oneof data {
InstallActionCommand install_action = 1;
UninstallActionCommand uninstall_action = 2;
ListInstallableActionsCommand list_installable_actions = 3;
}
}

service ActionInstallService {
rpc Install (stream ActionInstallServiceRequest) returns (stream ActionInstallServiceResponse);
}
14 changes: 14 additions & 0 deletions proto/shared/shared.action.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";

option ruby_package = "Tucana::Shared";

package shared;

import "shared.translation.proto";

message InstallableAction {
string action_identifier = 1;
repeated shared.Translation name = 2;
repeated shared.Translation description = 3;
string display_icon = 4;
}