syntax = "proto3";
package prodvider;
option go_package = "code.hackerspace.pl/hscloud/cluster/prodvider/proto";

message AuthenticateRequest {
    string username = 1;
    string password = 2;
}

message AuthenticateResponse {
    enum Result {
        RESULT_INVALID = 0;
        RESULT_AUTHENTICATED = 1;
        RESULT_INVALID_CREDENTIALS = 2;
    }
    Result result = 1;
    KubernetesKeys kubernetes_keys = 2;
    HSPKIKeys hspki_keys = 3;
}

message KubernetesKeys {
    string cluster = 1;
    bytes ca = 2;
    bytes cert = 3;
    bytes key = 4;
}

message HSPKIKeys {
    bytes ca = 1;
    bytes cert = 2;
    bytes key = 3;
    string principal = 4;
}

service Prodvider {
    rpc Authenticate(AuthenticateRequest) returns (AuthenticateResponse);
}
