syntax = "proto3"; package rascsi_interface; // The supported device types enum PbDeviceType { UNDEFINED = 0; SASI_HD = 1; SCSI_HD = 2; MO = 3; CD = 4; BR = 5; NUVOLINK = 6; DAYNAPORT = 7; } // rascsi remote operations enum PbOperation { NONE = 0; SERVER_INFO = 1; LIST = 2; ATTACH = 3; DETACH = 4; INSERT = 5; EJECT = 6; PROTECT = 7; LOG_LEVEL = 8; } // Commands rascsi can execute message PbCommand { PbOperation cmd = 1; int32 id = 2; int32 un = 3; PbDeviceType type = 4; string params = 5; } // The result of a command message PbResult { bool status = 1; string msg = 2; } // The device meta data message PbDevice { int32 id = 1; int32 un = 2; string type = 3; string file = 4; bool removable = 5; bool read_only = 6; } message PbDevices { repeated PbDevice devices = 1; } // The rascsi server information message PbServerInfo { string rascsi_version = 1; // Sorted by severity repeated string available_log_levels = 2; string current_log_level = 3; string default_image_folder = 4; // Files in the default folder repeated string available_image_files = 5; }