Openstatus
www.openstatus.dev
1package request
2
3import (
4 "encoding/json"
5)
6
7type AssertionType string
8
9const (
10 AssertionHeader AssertionType = "header"
11 AssertionTextBody AssertionType = "textBody"
12 AssertionStatus AssertionType = "status"
13 AssertionJsonBody AssertionType = "jsonBody"
14 AssertionDnsRecord AssertionType = "dnsRecord"
15)
16
17type StringComparator string
18
19const (
20 StringContains StringComparator = "contains"
21 StringNotContains StringComparator = "not_contains"
22 StringEquals StringComparator = "eq"
23 StringNotEquals StringComparator = "not_eq"
24 StringEmpty StringComparator = "empty"
25 StringNotEmpty StringComparator = "not_empty"
26 StringGreaterThan StringComparator = "gt"
27 StringGreaterThanEqual StringComparator = "gte"
28 StringLowerThan StringComparator = "lt"
29 StringLowerThanEqual StringComparator = "lte"
30)
31
32type NumberComparator string
33
34const (
35 NumberEquals NumberComparator = "eq"
36 NumberNotEquals NumberComparator = "not_eq"
37 NumberGreaterThan NumberComparator = "gt"
38 NumberGreaterThanEqual NumberComparator = "gte"
39 NumberLowerThan NumberComparator = "lt"
40 NumberLowerThanEqual NumberComparator = "lte"
41)
42
43type RecordComparator string
44
45const (
46 RecordEquals RecordComparator = "eq"
47 RecordNotEquals RecordComparator = "not_eq"
48 RecordContains RecordComparator = "contains"
49 RecordNotContains RecordComparator = "not_contains"
50)
51
52type Record string
53
54const (
55 RecordA Record = "A"
56 RecordAAAA Record = "AAAA"
57 RecordCNAME Record = "CNAME"
58 RecordMX Record = "MX"
59 RecordNS Record = "NS"
60 RecordTXT Record = "TXT"
61)
62
63type Assertion struct {
64 AssertionType AssertionType `json:"type"`
65 Comparator json.RawMessage `json:"compare"`
66 RawTarget json.RawMessage `json:"target"`
67}
68
69type HttpCheckerRequest struct {
70 Headers []struct {
71 Key string `json:"key"`
72 Value string `json:"value"`
73 } `json:"headers,omitempty"`
74 WorkspaceID string `json:"workspaceId"`
75 URL string `json:"url"`
76 MonitorID string `json:"monitorId"`
77 Method string `json:"method"`
78 Status string `json:"status"`
79 Body string `json:"body"`
80 Trigger string `json:"trigger,omitempty"`
81 RawAssertions []json.RawMessage `json:"assertions,omitempty"`
82 CronTimestamp int64 `json:"cronTimestamp"`
83 Timeout int64 `json:"timeout"`
84 DegradedAfter int64 `json:"degradedAfter,omitempty"`
85 Retry int64 `json:"retry,omitempty"`
86 FollowRedirects bool `json:"followRedirects,omitempty"`
87 OtelConfig struct {
88 Endpoint string `json:"endpoint"`
89 Headers map[string]string `json:"headers,omitempty"`
90 } `json:"otelConfig"`
91}
92
93type TCPCheckerRequest struct {
94 Status string `json:"status"`
95 WorkspaceID string `json:"workspaceId"`
96 URI string `json:"uri"`
97 MonitorID string `json:"monitorId"`
98 Trigger string `json:"trigger,omitempty"`
99 RawAssertions []json.RawMessage `json:"assertions,omitempty"`
100 RequestId int64 `json:"requestId,omitempty"`
101 CronTimestamp int64 `json:"cronTimestamp"`
102 Timeout int64 `json:"timeout"`
103 DegradedAfter int64 `json:"degradedAfter,omitempty"`
104 Retry int64 `json:"retry,omitempty"`
105 OtelConfig struct {
106 Endpoint string `json:"endpoint"`
107 Headers map[string]string `json:"headers,omitempty"`
108 } `json:"otelConfig"`
109}
110
111type TCPRequest struct {
112 WorkspaceID string `json:"workspaceId"`
113 URL string `json:"url"`
114 MonitorID string `json:"monitorId"`
115 CronTimestamp int64 `json:"cronTimestamp"`
116 Timeout int64 `json:"timeout"`
117}
118
119type PingRequest struct {
120 Headers map[string]string `json:"headers"`
121 URL string `json:"url"`
122 Method string `json:"method"`
123 Body string `json:"body"`
124 RequestId int64 `json:"requestId"`
125 WorkspaceId int64 `json:"workspaceId"`
126}
127
128type DNSCheckerRequest struct {
129 Status string `json:"status"`
130 WorkspaceID string `json:"workspaceId"`
131 URI string `json:"uri"`
132 MonitorID string `json:"monitorId"`
133 Trigger string `json:"trigger,omitempty"`
134 RawAssertions []json.RawMessage `json:"assertions,omitempty"`
135 RequestId int64 `json:"requestId,omitempty"`
136 CronTimestamp int64 `json:"cronTimestamp"`
137 Timeout int64 `json:"timeout"`
138 DegradedAfter int64 `json:"degradedAfter,omitempty"`
139 Retry int64 `json:"retry,omitempty"`
140 OtelConfig struct {
141 Endpoint string `json:"endpoint"`
142 Headers map[string]string `json:"headers,omitempty"`
143 } `json:"otelConfig"`
144}