/*
* 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,
}
}
}