main
ts 42 lines 1.19 KB
Raw
1 import type { ActiveResponseDetails, SupportedActiveResponse } from "@/types/activeResponse.d"
2 import type { FlaskBaseResponse } from "@/types/flask.d"
3 import { HttpClient } from "../httpClient"
4
5 export type InvokeRequestAction = "block" | "unblock"
6
7 export interface InvokeRequest {
8 activeResponseName: string
9 action: InvokeRequestAction
10 ip: string
11 agentId?: string
12 }
13
14 export default {
15 getSupported(agentId?: string) {
16 return HttpClient.get<FlaskBaseResponse & { supported_active_responses: SupportedActiveResponse[] }>(
17 `/active_response/supported${agentId ? `/${agentId}` : ""}`
18 )
19 },
20 getDetails(activeResponseName: string) {
21 return HttpClient.get<FlaskBaseResponse & { active_response: ActiveResponseDetails }>(
22 `/active_response/describe/${activeResponseName.toLowerCase()}`
23 )
24 },
25 invoke(params: InvokeRequest) {
26 const payload = {
27 endpoint: "/active-response",
28 arguments: [],
29 command: params.activeResponseName.toLowerCase(),
30 custom: true,
31 alert: {
32 action: params.action,
33 ip: params.ip
34 },
35 params: {
36 wait_for_complete: true,
37 agents_list: [params.agentId || "*"]
38 }
39 }
40 return HttpClient.post<FlaskBaseResponse>(`/active_response/invoke`, payload)
41 }
42 }