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)
15
16type StringComparator string
17
18const (
19 StringContains StringComparator = "contains"
20 StringNotContains StringComparator = "not_contains"
21 StringEquals StringComparator = "eq"
22 StringNotEquals StringComparator = "not_eq"
23 StringEmpty StringComparator = "empty"
24 StringNotEmpty StringComparator = "not_empty"
25 StringGreaterThan StringComparator = "gt"
26 StringGreaterThanEqual StringComparator = "gte"
27 StringLowerThan StringComparator = "lt"
28 StringLowerThanEqual StringComparator = "lte"
29)
30
31type NumberComparator string
32
33const (
34 NumberEquals NumberComparator = "eq"
35 NumberNotEquals NumberComparator = "not_eq"
36 NumberGreaterThan NumberComparator = "gt"
37 NumberGreaterThanEqual NumberComparator = "gte"
38 NumberLowerThan NumberComparator = "lt"
39 NumberLowerThanEqual NumberComparator = "lte"
40)
41
42type Assertion struct {
43 AssertionType AssertionType `json:"type"`
44 Comparator json.RawMessage `json:"compare"`
45 RawTarget json.RawMessage `json:"target"`
46}
47
48type HttpCheckerRequest struct {
49 Headers []struct {
50 Key string `json:"key"`
51 Value string `json:"value"`
52 } `json:"headers,omitempty"`
53 WorkspaceID string `json:"workspaceId"`
54 URL string `json:"url"`
55 MonitorID string `json:"monitorId"`
56 Method string `json:"method"`
57 Status string `json:"status"`
58 Body string `json:"body"`
59 Trigger string `json:"trigger,omitempty"`
60 RawAssertions []json.RawMessage `json:"assertions,omitempty"`
61 CronTimestamp int64 `json:"cronTimestamp"`
62 Timeout int64 `json:"timeout"`
63 DegradedAfter int64 `json:"degradedAfter,omitempty"`
64 Retry int64 `json:"retry,omitempty"`
65 FollowRedirects bool `json:"followRedirects,omitempty"`
66 OtelConfig struct {
67 Endpoint string `json:"endpoint"`
68 Headers map[string]string `json:"headers,omitempty"`
69 } `json:"otelConfig"`
70}
71
72type TCPCheckerRequest struct {
73 Status string `json:"status"`
74 WorkspaceID string `json:"workspaceId"`
75 URI string `json:"uri"`
76 MonitorID string `json:"monitorId"`
77 Trigger string `json:"trigger,omitempty"`
78 RawAssertions []json.RawMessage `json:"assertions,omitempty"`
79 RequestId int64 `json:"requestId,omitempty"`
80 CronTimestamp int64 `json:"cronTimestamp"`
81 Timeout int64 `json:"timeout"`
82 DegradedAfter int64 `json:"degradedAfter,omitempty"`
83 Retry int64 `json:"retry,omitempty"`
84 OtelConfig struct {
85 Endpoint string `json:"endpoint"`
86 Headers map[string]string `json:"headers,omitempty"`
87 } `json:"otelConfig"`
88}
89
90type TCPRequest struct {
91 WorkspaceID string `json:"workspaceId"`
92 URL string `json:"url"`
93 MonitorID string `json:"monitorId"`
94 CronTimestamp int64 `json:"cronTimestamp"`
95 Timeout int64 `json:"timeout"`
96}
97
98type PingRequest struct {
99 Headers map[string]string `json:"headers"`
100 URL string `json:"url"`
101 Method string `json:"method"`
102 Body string `json:"body"`
103 RequestId int64 `json:"requestId"`
104 WorkspaceId int64 `json:"workspaceId"`
105}