| 1 | import type { FlaskBaseResponse } from "@/types/flask.d" |
| 2 | import type { Alerts, AlertsQuery } from "@/types/graylog/alerts.d" |
| 3 | import type { EventDefinition } from "@/types/graylog/event-definition.d" |
| 4 | import type { GraylogIndex } from "@/types/graylog/indices" |
| 5 | import type { ConfiguredInput, RunningInput } from "@/types/graylog/inputs.d" |
| 6 | import type { Message } from "@/types/graylog/messages.d" |
| 7 | import type { ThroughputMetric } from "@/types/graylog/metrics.d" |
| 8 | import type { Pipeline, PipelineFull, PipelineRule } from "@/types/graylog/pipelines.d" |
| 9 | import type { Stream } from "@/types/graylog/stream.d" |
| 10 | import { HttpClient } from "../httpClient" |
| 11 | |
| 12 | export default { |
| 13 | // #region Messages |
| 14 | getMessages(page?: number) { |
| 15 | return HttpClient.get<FlaskBaseResponse & { graylog_messages: Message[]; total_messages: number }>( |
| 16 | `/graylog/messages`, |
| 17 | { |
| 18 | params: { |
| 19 | page_number: page || 1 |
| 20 | } |
| 21 | } |
| 22 | ) |
| 23 | }, |
| 24 | // #endregion |
| 25 | |
| 26 | // #region Event |
| 27 | getAlerts(query: AlertsQuery) { |
| 28 | return HttpClient.post<FlaskBaseResponse & { alerts: Alerts }>(`/graylog/event/alerts`, query) |
| 29 | }, |
| 30 | getEventDefinitions() { |
| 31 | return HttpClient.get<FlaskBaseResponse & { event_definitions: EventDefinition[] }>( |
| 32 | `/graylog/event/definitions` |
| 33 | ) |
| 34 | }, |
| 35 | // #endregion |
| 36 | |
| 37 | // #region Stream |
| 38 | getStreams() { |
| 39 | return HttpClient.get<FlaskBaseResponse & { streams: Stream[]; total: number }>(`/graylog/streams`) |
| 40 | }, |
| 41 | startStream(streamId: string) { |
| 42 | return HttpClient.post<FlaskBaseResponse>(`/graylog/stream/start`, { |
| 43 | stream_id: streamId |
| 44 | }) |
| 45 | }, |
| 46 | stopStream(streamId: string) { |
| 47 | return HttpClient.post<FlaskBaseResponse>(`/graylog/stream/stop`, { |
| 48 | stream_id: streamId |
| 49 | }) |
| 50 | }, |
| 51 | // #endregion |
| 52 | |
| 53 | // #region Inputs |
| 54 | getInputs() { |
| 55 | return HttpClient.get< |
| 56 | FlaskBaseResponse & { configured_inputs: ConfiguredInput[]; running_inputs: RunningInput[] } |
| 57 | >(`/graylog/inputs`) |
| 58 | }, |
| 59 | getInputsRunning() { |
| 60 | return HttpClient.get<FlaskBaseResponse & { configured_inputs: ConfiguredInput[] }>(`/graylog/inputs/running`) |
| 61 | }, |
| 62 | getInputsConfigured() { |
| 63 | return HttpClient.get<FlaskBaseResponse & { running_inputs: RunningInput[] }>(`/graylog/inputs/configured`) |
| 64 | }, |
| 65 | startInput(inputId: string) { |
| 66 | return HttpClient.post<FlaskBaseResponse>(`/graylog/input/start`, { |
| 67 | input_id: inputId |
| 68 | }) |
| 69 | }, |
| 70 | stopInput(inputId: string) { |
| 71 | return HttpClient.post<FlaskBaseResponse>(`/graylog/input/stop`, { |
| 72 | input_id: inputId |
| 73 | }) |
| 74 | }, |
| 75 | // #endregion |
| 76 | |
| 77 | // #region Metrics |
| 78 | getMetrics() { |
| 79 | return HttpClient.get< |
| 80 | FlaskBaseResponse & { throughput_metrics: ThroughputMetric[]; uncommitted_journal_entries: number } |
| 81 | >(`/graylog/metrics`) |
| 82 | }, |
| 83 | // #endregion |
| 84 | |
| 85 | // #region Pipelines |
| 86 | getPipelines() { |
| 87 | return HttpClient.get<FlaskBaseResponse & { pipelines: Pipeline[] }>(`/graylog/pipelines`) |
| 88 | }, |
| 89 | getPipelinesFull() { |
| 90 | return HttpClient.get<FlaskBaseResponse & { pipelines: PipelineFull[] }>(`/graylog/pipeline/full`) |
| 91 | }, |
| 92 | getPipelinesRules() { |
| 93 | return HttpClient.get<FlaskBaseResponse & { pipeline_rules: PipelineRule[] }>(`/graylog/pipeline/rules`) |
| 94 | }, |
| 95 | // #endregion |
| 96 | |
| 97 | // #region Indices |
| 98 | getIndices() { |
| 99 | return HttpClient.get<FlaskBaseResponse & { indices: GraylogIndex[] }>(`/graylog/indices`) |
| 100 | }, |
| 101 | deleteIndex(indexName: string) { |
| 102 | return HttpClient.delete<FlaskBaseResponse>(`/graylog/index`, { |
| 103 | data: { index_name: indexName } |
| 104 | }) |
| 105 | } |
| 106 | // #endregion |
| 107 | } |