Openstatus www.openstatus.dev
at main 93 lines 2.6 kB view raw
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}