syntax = "proto3"; option go_package = "./pb"; package pb; import "models/rpc_messages.proto"; import "models/model_ip_item.proto"; import "models/model_ip_list.proto"; import "models/model_server.proto"; import "models/model_http_firewall_policy.proto"; // IP条目管理 service IPItemService { // 创建IP rpc createIPItem (CreateIPItemRequest) returns (CreateIPItemResponse); // 修改IP rpc updateIPItem (UpdateIPItemRequest) returns (RPCSuccess); // 删除IP rpc deleteIPItem (DeleteIPItemRequest) returns (RPCSuccess); // 批量删除IP rpc deleteIPItems(DeleteIPItemsRequest) returns (RPCSuccess); // 计算IP数量 rpc countIPItemsWithListId (CountIPItemsWithListIdRequest) returns (RPCCountResponse); // 列出单页的IP rpc listIPItemsWithListId (ListIPItemsWithListIdRequest) returns (ListIPItemsWithListIdResponse); // 查找单个IP rpc findEnabledIPItem (FindEnabledIPItemRequest) returns (FindEnabledIPItemResponse); // 根据版本列出一组IP rpc listIPItemsAfterVersion (ListIPItemsAfterVersionRequest) returns (ListIPItemsAfterVersionResponse); // 检查IP状态 rpc checkIPItemStatus (CheckIPItemStatusRequest) returns (CheckIPItemStatusResponse); // 检查IP是否存在 rpc existsEnabledIPItem (ExistsEnabledIPItemRequest) returns (ExistsEnabledIPItemResponse); // 计算所有IP数量 rpc countAllEnabledIPItems(CountAllEnabledIPItemsRequest) returns (RPCCountResponse); // 列出所有名单中的IP rpc listAllEnabledIPItems(ListAllEnabledIPItemsRequest) returns (ListAllEnabledIPItemsResponse); // 设置所有为已读 rpc updateIPItemsRead(UpdateIPItemsReadRequest) returns (RPCSuccess); } // 创建IP message CreateIPItemRequest { int64 ipListId = 1; // IP列表ID string ipFrom = 2; // 开始IP string ipTo = 3; // 结束IP(可选) int64 expiredAt = 4; // 过期时间戳(可选) string reason = 5; // 加入理由(可选) string type = 6; // 类型 string eventLevel = 7; // 级别 int64 nodeId = 8; // 所属节点ID int64 serverId = 9; // 所属服务ID int64 sourceNodeId = 10; int64 sourceServerId = 11; int64 sourceHTTPFirewallPolicyId = 12; int64 sourceHTTPFirewallRuleGroupId = 13; int64 sourceHTTPFirewallRuleSetId = 14; } message CreateIPItemResponse { int64 ipItemId = 1; } // 修改IP message UpdateIPItemRequest { int64 ipItemId = 1; string ipFrom = 2; string ipTo = 3; int64 expiredAt = 4; string reason = 5; string type = 6; // 类型 string eventLevel = 7; // 级别 } // 删除IP // 可以使用 ipItemId 删除,也可以使用 ipFrom+ipTo+ipListId 删除,如果只是单个IP,则不需要指定ipTo message DeleteIPItemRequest { int64 ipItemId = 1; // IP条目的ID string ipFrom = 2; // v0.4.8新增,开始IP,和ipItemId二选一 string ipTo = 3; // v0.4.8新增,结束IP,和ipItemId二选一 int64 ipListId = 4; // v0.4.8新增,IP列表,IP所在的IP列表,如果不指定,则会删除所有IP列表中的相关IP信息 } // 批量删除IP message DeleteIPItemsRequest { repeated int64 ipItemIds = 1; } // 计算IP数量 message CountIPItemsWithListIdRequest { int64 ipListId = 1; string keyword = 2; string ipFrom = 3; string ipTo = 4; string eventLevel = 5; } // 列出单页的IP message ListIPItemsWithListIdRequest { int64 ipListId = 1; string keyword = 4; string ipFrom = 5; string ipTo = 6; string eventLevel = 7; int64 offset = 2; int64 size = 3; } message ListIPItemsWithListIdResponse { repeated IPItem ipItems = 1; } // 查找单个IP message FindEnabledIPItemRequest { int64 ipItemId = 1; } message FindEnabledIPItemResponse { IPItem ipItem = 1; } // 根据版本列出一组IP message ListIPItemsAfterVersionRequest { int64 version = 1; int64 size = 2; } message ListIPItemsAfterVersionResponse { repeated IPItem ipItems = 1; } // 检查IP状态 message CheckIPItemStatusRequest { int64 ipListId = 1; string ip = 2; } message CheckIPItemStatusResponse { bool isOk = 1; // 是否查询成功 string error = 2; bool isFound = 3; // 是否找到 bool isAllowed = 4; // 是否允许 IPItem ipItem = 5; // 匹配的IPItem } // 检查IP是否存在 message ExistsEnabledIPItemRequest { int64 ipItemId = 1; } message ExistsEnabledIPItemResponse { bool exists = 1; } // 计算所有IP数量 message CountAllEnabledIPItemsRequest { string keyword = 6; string ip = 1; bool globalOnly = 2; bool unread = 3; string eventLevel = 4; string listType = 5; } // 列出所有名单中的IP message ListAllEnabledIPItemsRequest { string keyword = 8; string ip = 1; bool globalOnly = 2; bool unread = 5; string eventLevel = 6; string listType = 7; int64 offset = 3; int64 size = 4; } message ListAllEnabledIPItemsResponse { repeated Result results = 1; message Result { IPList ipList = 1; // 所属名单 IPItem ipItem = 2; // IP信息 Server server = 3; // 所属服务 HTTPFirewallPolicy httpFirewallPolicy = 4; // 所属WAF策略 } } // 设置所有为已读 message UpdateIPItemsReadRequest { }