modules/agent-framework/proto/agent-communication.proto (123 lines of code) (raw):

syntax = "proto3"; package org.apache.airavata.agent; option java_multiple_files = true; option java_package = "org.apache.airavata.agent"; option java_outer_classname = "AgentCommunicationProto"; option go_package = "protos/"; import "airavata-fuse.proto"; service AgentCommunicationService { rpc createMessageBus(stream AgentMessage) returns (stream ServerMessage); } message AgentPing { string agentId = 1; } message CommandExecutionResponse { string executionId = 1; string responseString = 2; } message ContainerExecutionResponse { string executionId = 1; string responseString = 2; } message JupyterExecutionResponse { string executionId = 1; string sessionId = 2; string responseString = 3; } message PythonExecutionResponse { string executionId = 1; string sessionId = 2; string responseString = 3; } message TerminateExecutionResponse { string status = 1; string description = 2; } message TunnelCreationResponse { string status = 1; } message TunnelTerminationResponse { string status = 1; } message AgentMessage { oneof message { AgentPing agentPing = 1; CommandExecutionResponse commandExecutionResponse = 2; ContainerExecutionResponse containerExecutionResponse = 3; TerminateExecutionResponse terminateExecutionResponse = 4; JupyterExecutionResponse jupyterExecutionResponse = 5; PythonExecutionResponse pythonExecutionResponse = 6; org.apache.airavata.fuse.StatFsReq statFsReq = 7; org.apache.airavata.fuse.FileInfoReq fileInfoReq = 8; org.apache.airavata.fuse.OpenDirReq openDirReq = 9; org.apache.airavata.fuse.OpenFileReq openFileReq = 10; org.apache.airavata.fuse.ReadDirReq readDirReq = 11; org.apache.airavata.fuse.ReadFileReq readFileReq = 12; org.apache.airavata.fuse.WriteFileReq writeFileReq = 13; org.apache.airavata.fuse.SetInodeAttReq setInodeAttReq = 14; } } message ContainerExecutionRequest { string executionId = 1; string containerName = 2; repeated string arguments = 3; string mountPath = 4; } message TunnelCreationRequest { string destinationHost = 1; string destinationPort = 2; string sshUserName = 3; string sourcePort = 4; string sshKeyPath = 5; string password = 6; } message TunnelTerminationRequest { string destinationHost = 1; int32 destinationPort = 2; string sourcePort = 3; } message CommandExecutionRequest { string executionId = 1; repeated string arguments = 2; string workingDir = 3; } message JupyterExecutionRequest { string executionId = 1; string sessionId = 2; bool keepAlive = 3; string code = 4; } message PythonExecutionRequest { string executionId = 1; string sessionId = 2; bool keepAlive = 3; repeated string libraries = 4; string code = 5; string pythonVersion = 6; string workingDir = 7; } message TerminateExecutionRequest { string executionId = 1; } message KillAgentRequest { string reason = 1; } message ServerMessage { oneof message { ContainerExecutionRequest containerExecutionRequest = 1; CommandExecutionRequest commandExecutionRequest = 2; TerminateExecutionRequest terminateExecutionRequest = 3; KillAgentRequest killAgentRequest = 4; TunnelCreationRequest tunnelCreationRequest = 5; JupyterExecutionRequest jupyterExecutionRequest = 6; PythonExecutionRequest pythonExecutionRequest = 7; org.apache.airavata.fuse.StatFsRes statFsRes = 8; org.apache.airavata.fuse.FileInfoRes fileInfoRes = 9; org.apache.airavata.fuse.OpenDirRes openDirRes = 10; org.apache.airavata.fuse.OpenFileRes openFileRes = 11; org.apache.airavata.fuse.ReadDirRes readDirRes = 12; org.apache.airavata.fuse.ReadFileRes readFileRes = 13; org.apache.airavata.fuse.WriteFileRes writeFileRes = 14; org.apache.airavata.fuse.SetInodeAttRes setInodeAttRes = 15; } }