schemas_v1_api_alerts - OmniCloudOrg/OmniOrchestrator GitHub Wiki

alerts (src/schemas/v1/api)

Path: src/schemas/v1/api/alerts.rs

Module Documentation

Alert management module for handling CRUD operations on alerts.

This module provides functionality to create, read, update, and delete alerts in the system. It includes endpoints for managing alerts associated with applications and organizations.

Table of Contents

Public Items

struct CreateAlertRequest

Definition

pub struct CreateAlertRequest {
    alert_type: String,
    severity: String,
    service: String,
    message: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    metadata: Option<serde_json::Value>,
    #[serde(skip_serializing_if = "Option::is_none")]
    org_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    app_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    instance_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    region_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    node_id: Option<i64>,
}

struct UpdateAlertStatusRequest

Definition

pub struct UpdateAlertStatusRequest {
    status: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    notes: Option<String>,
}

struct AcknowledgeAlertRequest

Definition

pub struct AcknowledgeAlertRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    notes: Option<String>,
    #[serde(default)]
    update_status: bool,
}

struct CreateEscalationRequest

Definition

pub struct CreateEscalationRequest {
    escalation_level: i64,
    escalated_to: serde_json::Value,
    escalation_method: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    response_required_by: Option<DateTime<Utc>>,
}

struct BulkUpdateStatusRequest

Definition

pub struct BulkUpdateStatusRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    ids: Option<Vec<i64>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    service: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    app_id: Option<i64>,
    status: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    notes: Option<String>,
}

async fn list_alerts

Definition

pub async fn list_alerts(
    platform_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    status: Option<String>,
    severity: Option<String>,
    org_id: Option<i64>,
    app_id: Option<i64>,
    service: Option<String>,
    from_date: Option<String>,
    to_date: Option<String>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get a paginated list of alerts with filtering options

async fn get_alert

Definition

pub async fn get_alert(
    platform_id: i64,
    id: i64,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get details of a specific alert including related data

async fn create_alert

Definition

pub async fn create_alert(
    platform_id: i64,
    alert_data: Json<CreateAlertRequest>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Create a new alert

async fn update_alert_status

Definition

pub async fn update_alert_status(
    platform_id: i64,
    id: i64,
    status_data: Json<UpdateAlertStatusRequest>,
    user: User, // Extract user from request guard
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Update an alert's status

async fn acknowledge_alert

Definition

pub async fn acknowledge_alert(
    platform_id: i64,
    id: i64,
    ack_data: Json<AcknowledgeAlertRequest>,
    user: User, // Extract user from request guard
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Acknowledge an alert

async fn resolve_alert

Definition

pub async fn resolve_alert(
    platform_id: i64,
    id: i64,
    resolve_data: Option<Json<HashMap<String, String>>>,
    user: User, // Extract user from request guard
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Resolve an alert

async fn escalate_alert

Definition

pub async fn escalate_alert(
    platform_id: i64,
    id: i64,
    escalation_data: Json<CreateEscalationRequest>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Create an escalation for an alert

async fn get_app_alerts

Definition

pub async fn get_app_alerts(
    platform_id: i64,
    app_id: i64,
    limit: Option<i64>,
    include_resolved: Option<bool>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get alerts for a specific application

async fn get_org_active_alerts

Definition

pub async fn get_org_active_alerts(
    platform_id: i64,
    org_id: i64,
    limit: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get active alerts for an organization

async fn get_org_alert_stats

Definition

pub async fn get_org_alert_stats(
    platform_id: i64,
    org_id: i64,
    days: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get alert statistics for an organization

async fn get_alerts_needing_escalation

Definition

pub async fn get_alerts_needing_escalation(
    platform_id: i64,
    org_id: Option<i64>,
    hours_threshold: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get alerts needing escalation

async fn auto_resolve_old_alerts

Definition

pub async fn auto_resolve_old_alerts(
    platform_id: i64,
    days_threshold: Option<i64>,
    severity_level: Option<Vec<String>>, // Can provide multiple severity levels
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Auto-resolve old alerts

async fn search_alerts

Definition

pub async fn search_alerts(
    platform_id: i64,
    query: String,
    org_id: Option<i64>,
    page: Option<i64>,
    per_page: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Search for alerts

async fn bulk_update_alert_status

Definition

pub async fn bulk_update_alert_status(
    platform_id: i64,
    update_data: Json<BulkUpdateStatusRequest>,
    user: User, // Extract user from request guard
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Bulk update alert status

⚠️ **GitHub.com Fallback** ⚠️