use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct FPGA {
#[serde(rename = "ExternalInterfaces")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_interfaces: Option<Vec<models::processor::v1_18_0::ProcessorInterface>>,
#[serde(rename = "FirmwareId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub firmware_id: Option<String>,
#[serde(rename = "FirmwareManufacturer")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub firmware_manufacturer: Option<String>,
#[serde(rename = "FirmwareVersion")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub firmware_version: Option<String>,
#[serde(rename = "FpgaType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fpga_type: Option<models::processor::v1_18_0::FpgaType>,
#[serde(rename = "HostInterface")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host_interface: Option<models::processor::v1_18_0::ProcessorInterface>,
#[serde(rename = "Model")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(rename = "Oem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oem: Option<models::resource::Oem>,
#[serde(rename = "PCIeVirtualFunctions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pcie_virtual_functions: Option<i64>,
#[serde(rename = "ProgrammableFromHost")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub programmable_from_host: Option<bool>,
#[serde(rename = "ReconfigurationSlots")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reconfiguration_slots: Option<Vec<models::processor::v1_18_0::FpgaReconfigurationSlot>>,
}
impl crate::Metadata<'static> for FPGA {
const JSON_SCHEMA: &'static str = "Processor.v1_18_0.json";
}