syntax = "proto3";
package proto;
option go_package = "code.hackerspace.pl/hscloud/dc/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 {
    message TemperatureSensor {
        bool in_alert_state = 1;
        double max_temperature = 2;
        string rel_pos = 3;
        string description = 4;
        string name = 5;
        int64 alert_count = 6;
        double current_temperature = 7;
        double overheat_threshold = 8;
        double critical_threshold = 9;
        string hw_status = 10;
    };
    message PowerSupplySlot {
        string ent_physical_class = 1;
        string rel_pos = 2;
        repeated TemperatureSensor temperature_sensors = 3;
    };
    string system_status = 1;
    bool shutdown_on_overheat = 2;
    repeated PowerSupplySlot power_supply_slots = 3;
    repeated TemperatureSensor temperature_sensors = 4;
};

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