Openstatus www.openstatus.dev
at 8ef9f3ed5ffb0104d2cf3c9df9642da0bf4a01df 105 lines 3.7 kB view raw
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}