syntax = "proto3";

package faultrec;
import "datatypes.proto";

service FaultRecService
{
    rpc EnableBootloopUserspace(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc IsAvailable(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }

    rpc IsProcessRunning(Process) returns(ProcessInfo)
    {
    }

    rpc DownloadFile(Path) returns(File)
    {
    }

    rpc Reboot(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc SegFault(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc EndlessLoop(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc EndlessSleep(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc Exit(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
    rpc TriggerWatchdog(sdr.datatypes.Empty) returns(sdr.datatypes.Empty)
    {
    }
}

message Process
{
    string name = 1;
}

message ProcessInfo
{
    bool isRunning = 1;
    repeated int32 pid = 2;
    string name = 3;
}

message Path
{
    string filename = 1;
}
message File
{
    bytes data = 1;
}