main
ts 107 lines 3.24 KB
Raw
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 }