provenant/output_schema/
license_policy_entry.rs1use serde::{Deserialize, Serialize};
5
6use crate::models::ComplianceAlert;
7
8#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
9pub struct OutputLicensePolicyEntry {
10 pub license_key: String,
11 pub label: String,
12 pub color_code: String,
13 pub icon: String,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub compliance_alert: Option<ComplianceAlert>,
16}
17
18impl From<&crate::models::LicensePolicyEntry> for OutputLicensePolicyEntry {
19 fn from(value: &crate::models::LicensePolicyEntry) -> Self {
20 Self {
21 license_key: value.license_key.clone(),
22 label: value.label.clone(),
23 color_code: value.color_code.clone(),
24 icon: value.icon.clone(),
25 compliance_alert: value.compliance_alert,
26 }
27 }
28}
29
30impl TryFrom<&OutputLicensePolicyEntry> for crate::models::LicensePolicyEntry {
31 type Error = String;
32 fn try_from(value: &OutputLicensePolicyEntry) -> Result<Self, Self::Error> {
33 Ok(Self {
34 license_key: value.license_key.clone(),
35 label: value.label.clone(),
36 color_code: value.color_code.clone(),
37 icon: value.icon.clone(),
38 compliance_alert: value.compliance_alert,
39 })
40 }
41}