Openstatus
www.openstatus.dev
1package models
2
3import "encoding/json"
4
5type AssertionType string
6
7const (
8 AssertionHeader AssertionType = "header"
9 AssertionTextBody AssertionType = "textBody"
10 AssertionStatus AssertionType = "status"
11 AssertionJsonBody AssertionType = "jsonBody"
12 AssertionDnsRecord AssertionType = "dnsRecord"
13)
14
15type StringComparator string
16
17func (c StringComparator) String() string {
18 return string(c)
19}
20
21func (c NumberComparator) String() string {
22 return string(c)
23}
24
25const (
26 StringContains StringComparator = "contains"
27 StringNotContains StringComparator = "not_contains"
28 StringEquals StringComparator = "eq"
29 StringNotEquals StringComparator = "not_eq"
30 StringEmpty StringComparator = "empty"
31 StringNotEmpty StringComparator = "not_empty"
32 StringGreaterThan StringComparator = "gt"
33 StringGreaterThanEqual StringComparator = "gte"
34 StringLowerThan StringComparator = "lt"
35 StringLowerThanEqual StringComparator = "lte"
36)
37
38type NumberComparator string
39
40const (
41 NumberEquals NumberComparator = "eq"
42 NumberNotEquals NumberComparator = "not_eq"
43 NumberGreaterThan NumberComparator = "gt"
44 NumberGreaterThanEqual NumberComparator = "gte"
45 NumberLowerThan NumberComparator = "lt"
46 NumberLowerThanEqual NumberComparator = "lte"
47)
48
49type Assertion struct {
50 AssertionType AssertionType `json:"type"`
51 Comparator json.RawMessage `json:"compare"`
52 RawTarget json.RawMessage `json:"target"`
53}
54
55type StatusTarget struct {
56 AssertionType AssertionType `json:"type"`
57 Comparator NumberComparator `json:"compare"`
58 Target int64 `json:"target"`
59}
60
61type HeaderTarget struct {
62 AssertionType AssertionType `json:"type"`
63 Comparator StringComparator `json:"compare"`
64 Target string `json:"target"`
65 Key string `json:"key"`
66}
67
68type StringTargetType struct {
69 Comparator StringComparator `json:"compare"`
70 Target string `json:"target"`
71}
72
73type BodyString struct {
74 AssertionType AssertionType `json:"type"`
75 Comparator StringComparator `json:"compare"`
76 Target string `json:"target"`
77}
78
79type RecordComparator string
80
81const (
82 RecordEquals RecordComparator = "eq"
83 RecordNotEquals RecordComparator = "not_eq"
84 RecordContains RecordComparator = "contains"
85 RecordNotContains RecordComparator = "not_contains"
86)
87
88type RecordTarget struct {
89 AssertionType AssertionType `json:"type"`
90 Comparator RecordComparator `json:"compare"`
91 Target string `json:"target"`
92 Key string `json:"key"`
93}