|
|
@@ -1,5 +1,7 @@
|
|
|
package v2
|
|
|
|
|
|
+import "time"
|
|
|
+
|
|
|
type ContainerEvent struct {
|
|
|
Name string `json:"container_name"`
|
|
|
Reason string `json:"reason"`
|
|
|
@@ -23,17 +25,6 @@ type PodEvent struct {
|
|
|
ContainerEvents map[string]*ContainerEvent `json:"container_events"`
|
|
|
}
|
|
|
|
|
|
-type Incident struct {
|
|
|
- ID string `json:"id" form:"required"`
|
|
|
- ReleaseName string `json:"release_name" form:"required"`
|
|
|
- ChartName string `json:"chart_name"`
|
|
|
- CreatedAt int64 `json:"created_at" form:"required"`
|
|
|
- UpdatedAt int64 `json:"updated_at" form:"required"`
|
|
|
- LatestState string `json:"latest_state" form:"required"`
|
|
|
- LatestReason string `json:"latest_reason" form:"required"`
|
|
|
- LatestMessage string `json:"latest_message" form:"required"`
|
|
|
-}
|
|
|
-
|
|
|
type IncidentsResponse struct {
|
|
|
Incidents []*Incident `json:"incidents" form:"required"`
|
|
|
}
|
|
|
@@ -53,3 +44,47 @@ type EventsResponse struct {
|
|
|
type LogsResponse struct {
|
|
|
Contents string `json:"contents" form:"required"`
|
|
|
}
|
|
|
+
|
|
|
+type SeverityType string
|
|
|
+
|
|
|
+const (
|
|
|
+ SeverityCritical SeverityType = "critical"
|
|
|
+ SeverityNormal SeverityType = "normal"
|
|
|
+)
|
|
|
+
|
|
|
+type InvolvedObjectKind string
|
|
|
+
|
|
|
+const (
|
|
|
+ InvolvedObjectDeployment InvolvedObjectKind = "deployment"
|
|
|
+ InvolvedObjectJob InvolvedObjectKind = "job"
|
|
|
+ InvolvedObjectPod InvolvedObjectKind = "pod"
|
|
|
+)
|
|
|
+
|
|
|
+type IncidentStatus string
|
|
|
+
|
|
|
+const (
|
|
|
+ IncidentStatusResolved IncidentStatus = "resolved"
|
|
|
+ IncidentStatusActive IncidentStatus = "active"
|
|
|
+)
|
|
|
+
|
|
|
+type IncidentMeta struct {
|
|
|
+ ID string `json:"id" form:"required"`
|
|
|
+ ReleaseName string `json:"release_name" form:"required"`
|
|
|
+ ReleaseNamespace string `json:"release_namespace" form:"required"`
|
|
|
+ ChartName string `json:"chart_name" form:"required"`
|
|
|
+ CreatedAt time.Time `json:"created_at" form:"required"`
|
|
|
+ UpdatedAt time.Time `json:"updated_at" form:"required"`
|
|
|
+ LastSeen *time.Time `json:"last_seen" form:"required"`
|
|
|
+ Status IncidentStatus `json:"status" form:"required"`
|
|
|
+ Summary string `json:"summary" form:"required"`
|
|
|
+ Severity SeverityType `json:"severity" form:"required"`
|
|
|
+ InvolvedObjectKind InvolvedObjectKind `json:"involved_object_kind" form:"required"`
|
|
|
+ InvolvedObjectName string `json:"involved_object_name" form:"required"`
|
|
|
+ InvolvedObjectNamespace string `json:"involved_object_namespace" form:"required"`
|
|
|
+}
|
|
|
+
|
|
|
+type Incident struct {
|
|
|
+ *IncidentMeta
|
|
|
+ Pods []string `json:"pods" form:"required"`
|
|
|
+ Detail string `json:"detail" form:"required"`
|
|
|
+}
|