package crowdsec // ----------------------------------------------------------------------- // LAPI types // ----------------------------------------------------------------------- type LoginRequest struct { MachineID string `json:"machine_id"` Password string `json:"password"` Scenarios []string `json:"scenarios,omitempty"` } type LoginResponse struct { Token string `json:"token"` Expire string `json:"expire"` } type Decision struct { ID int64 `json:"id"` Origin string `json:"origin"` Type string `json:"type"` Scope string `json:"scope"` Value string `json:"value"` Duration string `json:"duration"` Scenario string `json:"scenario"` Simulated bool `json:"simulated"` Until string `json:"until,omitempty"` } type DecisionInput struct { Duration string `json:"duration"` Origin string `json:"origin"` Scenario string `json:"scenario"` Scope string `json:"scope"` Simulated bool `json:"simulated"` Type string `json:"type"` Value string `json:"value"` } type AlertSource struct { AsName string `json:"as_name,omitempty"` AsNumber string `json:"as_number,omitempty"` CN string `json:"cn,omitempty"` IP string `json:"ip,omitempty"` Latitude float64 `json:"latitude,omitempty"` Longitude float64 `json:"longitude,omitempty"` Range string `json:"range,omitempty"` Scope string `json:"scope"` Value string `json:"value"` } type AlertEvent struct { Meta []MetaItem `json:"meta"` Timestamp string `json:"timestamp"` } type MetaItem struct { Key string `json:"key"` Value string `json:"value"` } type Alert struct { ID int64 `json:"id"` UUID string `json:"uuid,omitempty"` Capacity int32 `json:"capacity"` CreatedAt string `json:"created_at"` Decisions []Decision `json:"decisions"` Events []AlertEvent `json:"events"` EventsCount int32 `json:"events_count"` Leakspeed string `json:"leakspeed"` MachineID string `json:"machine_id,omitempty"` Message string `json:"message"` Remediation bool `json:"remediation"` Scenario string `json:"scenario"` ScenarioHash string `json:"scenario_hash"` ScenarioVersion string `json:"scenario_version"` Simulated bool `json:"simulated"` Source AlertSource `json:"source"` StartAt string `json:"start_at"` StopAt string `json:"stop_at"` } // ----------------------------------------------------------------------- // CLI types (cscli output) // ----------------------------------------------------------------------- type Bouncer struct { APIKey string `json:"api_key"` AuthType string `json:"auth_type"` AutoCreated bool `json:"auto_created"` CreatedAt string `json:"created_at"` IPAddress string `json:"ip_address"` LastPull string `json:"last_pull"` Name string `json:"name"` Revoked bool `json:"revoked"` Type string `json:"type"` Version string `json:"version"` } type AddBouncerResult struct { Name string APIKey string } type Machine struct { AuthType string `json:"auth_type"` CreatedAt string `json:"createdAt"` IPAddress string `json:"ipAddress"` IsValidated bool `json:"isValidated"` LastHeartbeat string `json:"last_heartbeat"` LastPush string `json:"lastPush"` MachineID string `json:"machineId"` Scenarios string `json:"scenarios"` Status string `json:"status"` Version string `json:"version"` } type HubItem struct { Author string `json:"author"` Description string `json:"description"` Downloaded bool `json:"downloaded"` Installed bool `json:"installed"` Local bool `json:"local"` Name string `json:"name"` Path string `json:"path"` Stage string `json:"stage"` Status string `json:"status"` Tainted bool `json:"tainted"` UpToDate bool `json:"up_to_date"` Version string `json:"version"` } type MetricsSection struct { Title string Headers []string Rows [][]string }