/*
 * Artifact Keeper API
 *
 * Enterprise artifact registry supporting 45+ package formats.
 *
 * The version of the OpenAPI document: 1.2.1
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TriggerScanResponse {
    #[serde(rename = "artifacts_queued")]
    pub artifacts_queued: i32,
    #[serde(rename = "message")]
    pub message: String,
    /// Scan result IDs created (one per active scanner) when triggering an artifact-level scan. Empty for repository-level scans (where the per-artifact rows are created inside the spawned worker) and for artifact-level triggers when no scanners are configured.  Clients (and the release-gate test in artifact-keeper-test#58) should poll `GET /api/v1/security/scans/{id}` against these IDs rather than guessing the most-recent scan from `GET /artifacts/{id}/scans`.
    #[serde(rename = "scan_result_ids", skip_serializing_if = "Option::is_none")]
    pub scan_result_ids: Option<Vec<uuid::Uuid>>,
}

impl TriggerScanResponse {
    pub fn new(artifacts_queued: i32, message: String) -> TriggerScanResponse {
        TriggerScanResponse {
            artifacts_queued,
            message,
            scan_result_ids: None,
        }
    }
}

