syntax = "proto3";
package proto;
option go_package = "code.hackerspace.pl/hscloud/go/svc/arista-proxy/proto";

message ShowVersionRequest {
};

message ShowVersionResponse {
    string model_name = 1;
    string internal_version = 2;
    string system_mac_address = 3;
    string serial_number = 4;
    int64 mem_total = 5;
    double bootup_timestamp = 6;
    int64 mem_free = 7;
    string version = 8;
    string architecture = 9;
    string internal_build_id = 10;
    string hardware_revision = 11;
};

message ShowEnvironmentTemperatureRequest {
};

message ShowEnvironmentTemperatureResponse {
};

service AristaProxy {
    rpc ShowVersion(ShowVersionRequest) returns (ShowVersionResponse);
    rpc ShowEnvironmentTemperature(ShowEnvironmentTemperatureRequest) returns (ShowEnvironmentTemperatureResponse);
};
