use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SbomResponse {
#[serde(rename = "artifact_id")]
pub artifact_id: uuid::Uuid,
#[serde(rename = "component_count")]
pub component_count: i32,
#[serde(rename = "content_hash")]
pub content_hash: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "dependency_count")]
pub dependency_count: i32,
#[serde(rename = "format")]
pub format: String,
#[serde(rename = "format_version")]
pub format_version: String,
#[serde(rename = "generated_at")]
pub generated_at: String,
#[serde(rename = "generator", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub generator: Option<Option<String>>,
#[serde(rename = "generator_version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub generator_version: Option<Option<String>>,
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "license_count")]
pub license_count: i32,
#[serde(rename = "licenses")]
pub licenses: Vec<String>,
#[serde(rename = "repository_id")]
pub repository_id: uuid::Uuid,
#[serde(rename = "spec_version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub spec_version: Option<Option<String>>,
}
impl SbomResponse {
pub fn new(artifact_id: uuid::Uuid, component_count: i32, content_hash: String, created_at: String, dependency_count: i32, format: String, format_version: String, generated_at: String, id: uuid::Uuid, license_count: i32, licenses: Vec<String>, repository_id: uuid::Uuid) -> SbomResponse {
SbomResponse {
artifact_id,
component_count,
content_hash,
created_at,
dependency_count,
format,
format_version,
generated_at,
generator: None,
generator_version: None,
id,
license_count,
licenses,
repository_id,
spec_version: None,
}
}
}