syntax = "proto3";

message FirewallFilter {
    string api_host = 1;    // 'https://172.30.205.25'
    string session_token = 2;   // requests.request(method="POST", url=f"{API_HOST}/api/session/create", timeout=120, verify=False, data={"j_username": "<username>@daas-stg.local", "j_password": "<password>"}).headers["X-XSRF-TOKEN"]
    string session_cookie = 3;
    string domain_id = 4;  // 'default'
    string gateway_policy_id = 5;   // 'tcp-blocking'
    repeated string ip_addresses = 6;  // Puede ser un segmento con la sintaxis correspondiente: /16 por ejemplo
}

message FirewallFilterResponse {
    string status = 1;
    string message = 2;
}

message RefreshedAdresses {
    repeated string existing_vcd = 1;
    repeated string missing_vcd = 2;
}

service FirewallFilterService {
    rpc Insert (FirewallFilter) returns (FirewallFilterResponse);   // Añade ips (bloque, segmento, unicas)
    rpc Remove (FirewallFilter) returns (FirewallFilterResponse);   // Eliminia ips dadas de alta (bloque, segmento, unicas)
    rpc Refresh (FirewallFilter) returns (RefreshedAdresses);       // Limpia ips no existentes NSX contra base de datos propia
}