artifact-keeper-client 1.2.1

Rust client for the Artifact Keeper REST API
Documentation
/*
 * 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 TriggerScanRequest {
    #[serde(rename = "artifact_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub artifact_id: Option<Option<uuid::Uuid>>,
    /// Skip the hash-based scan dedup short-circuit when running this scan.  Defaults to `false`. Normal trigger calls dedup against prior completed scans for the same checksum + scan_type so a freshly uploaded byte-identical artifact reuses the existing result instead of re-running the scanner. When `true`, that dedup is skipped: the scanner runs against the bytes again and writes a fresh `scan_results` row. Use this to recover from a silently-broken prior scan (e.g. an extraction bug producing a completed, zero-finding row that masks the real findings until the dedup TTL expires; see #1469). Costs an extra scan run, so leave it unset for routine trigger calls.  **Admin only.** Setting this to `true` bypasses the dedup short- circuit and fans out unbounded scanner work per artifact. The `trigger_scan` handler rejects this field with 403 for non-admin callers, since a non-admin force-rescan path would be a DoS amplifier (the pre-existing `force=true` was naturally rate-limited by dedup; `bypass_dedup` removes that safety).
    #[serde(rename = "bypass_dedup", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub bypass_dedup: Option<Option<bool>>,
    #[serde(rename = "repository_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub repository_id: Option<Option<uuid::Uuid>>,
}

impl TriggerScanRequest {
    pub fn new() -> TriggerScanRequest {
        TriggerScanRequest {
            artifact_id: None,
            bypass_dedup: None,
            repository_id: None,
        }
    }
}