use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct NVMeNamespaceProperties {
#[serde(rename = "FormattedLBASize")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub formatted_lba_size: Option<String>,
#[serde(rename = "IsShareable")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shareable: Option<bool>,
#[serde(rename = "LBAFormatsSupported")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lba_formats_supported: Option<Vec<models::volume::LBAFormatType>>,
#[serde(rename = "MetadataTransferredAtEndOfDataLBA")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata_transferred_at_end_of_data_lba: Option<bool>,
#[serde(rename = "NVMeVersion")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nvme_version: Option<String>,
#[serde(rename = "NamespaceFeatures")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace_features: Option<models::volume::v1_8_0::NamespaceFeatures>,
#[serde(rename = "NamespaceId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace_id: Option<String>,
#[serde(rename = "NumberLBAFormats")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub number_lba_formats: Option<i64>,
}
impl crate::Metadata<'static> for NVMeNamespaceProperties {
const JSON_SCHEMA: &'static str = "Volume.v1_8_0.json";
}