netbox-openapi 0.6.0

low level netbox bindings (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
Documentation
/*
 * NetBox REST API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 4.6.2 (4.6)
 *
 * Generated by: https://openapi-generator.tech
 */

/// PatchedWritableDeviceWithConfigContextRequest : Base serializer class for models inheriting from PrimaryModel.

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct PatchedWritableDeviceWithConfigContextRequest {
    #[serde(
        rename = "name",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub name: Option<Option<String>>,
    #[serde(rename = "device_type", skip_serializing_if = "Option::is_none")]
    pub device_type: Option<Box<crate::models::DeviceBayTemplateRequestDeviceType>>,
    #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
    pub role: Option<Box<crate::models::DeviceWithConfigContextRequestRole>>,
    #[serde(
        rename = "tenant",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
    #[serde(
        rename = "platform",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub platform: Option<Option<Box<crate::models::DeviceTypeRequestDefaultPlatform>>>,
    /// Chassis serial number, assigned by the manufacturer
    #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
    pub serial: Option<String>,
    /// A unique tag used to identify this device
    #[serde(
        rename = "asset_tag",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub asset_tag: Option<Option<String>>,
    #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
    pub site: Option<Box<crate::models::DeviceWithConfigContextRequestSite>>,
    #[serde(
        rename = "location",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub location: Option<Option<Box<crate::models::DeviceWithConfigContextRequestLocation>>>,
    #[serde(
        rename = "rack",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub rack: Option<Option<Box<crate::models::DeviceWithConfigContextRequestRack>>>,
    #[serde(
        rename = "position",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub position: Option<Option<f64>>,
    /// * `front` - Front * `rear` - Rear
    #[serde(
        rename = "face",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub face: Option<Option<Face>>,
    /// GPS coordinate in decimal format (xx.yyyyyy)
    #[serde(
        rename = "latitude",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub latitude: Option<Option<f64>>,
    /// GPS coordinate in decimal format (xx.yyyyyy)
    #[serde(
        rename = "longitude",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub longitude: Option<Option<f64>>,
    /// * `offline` - Offline * `active` - Active * `planned` - Planned * `staged` - Staged * `failed` - Failed * `inventory` - Inventory * `decommissioning` - Decommissioning
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<Status>,
    /// * `front-to-rear` - Front to rear * `rear-to-front` - Rear to front * `left-to-right` - Left to right * `right-to-left` - Right to left * `side-to-rear` - Side to rear * `rear-to-side` - Rear to side * `bottom-to-top` - Bottom to top * `top-to-bottom` - Top to bottom * `passive` - Passive * `mixed` - Mixed
    #[serde(
        rename = "airflow",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub airflow: Option<Option<Airflow>>,
    #[serde(
        rename = "primary_ip4",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub primary_ip4: Option<Option<Box<crate::models::DeviceWithConfigContextRequestPrimaryIp4>>>,
    #[serde(
        rename = "primary_ip6",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub primary_ip6: Option<Option<Box<crate::models::DeviceWithConfigContextRequestPrimaryIp4>>>,
    #[serde(
        rename = "oob_ip",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub oob_ip: Option<Option<Box<crate::models::DeviceWithConfigContextRequestPrimaryIp4>>>,
    #[serde(
        rename = "cluster",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub cluster: Option<Option<Box<crate::models::DeviceWithConfigContextRequestCluster>>>,
    #[serde(
        rename = "virtual_chassis",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub virtual_chassis:
        Option<Option<Box<crate::models::DeviceWithConfigContextRequestVirtualChassis>>>,
    #[serde(
        rename = "vc_position",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub vc_position: Option<Option<i32>>,
    /// Virtual chassis master election priority
    #[serde(
        rename = "vc_priority",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub vc_priority: Option<Option<i32>>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(
        rename = "owner",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
    pub comments: Option<String>,
    #[serde(
        rename = "config_template",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub config_template: Option<Option<Box<crate::models::DeviceRoleRequestConfigTemplate>>>,
    /// Local config context data takes precedence over source contexts in the final rendered config context
    #[serde(
        rename = "local_context_data",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub local_context_data: Option<Option<serde_json::Value>>,
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
}

impl PatchedWritableDeviceWithConfigContextRequest {
    /// Base serializer class for models inheriting from PrimaryModel.
    pub fn new() -> PatchedWritableDeviceWithConfigContextRequest {
        PatchedWritableDeviceWithConfigContextRequest {
            name: None,
            device_type: None,
            role: None,
            tenant: None,
            platform: None,
            serial: None,
            asset_tag: None,
            site: None,
            location: None,
            rack: None,
            position: None,
            face: None,
            latitude: None,
            longitude: None,
            status: None,
            airflow: None,
            primary_ip4: None,
            primary_ip6: None,
            oob_ip: None,
            cluster: None,
            virtual_chassis: None,
            vc_position: None,
            vc_priority: None,
            description: None,
            owner: None,
            comments: None,
            config_template: None,
            local_context_data: None,
            tags: None,
            custom_fields: None,
        }
    }
}

/// * `front` - Front * `rear` - Rear
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Face {
    #[serde(rename = "front")]
    Front,
    #[serde(rename = "rear")]
    Rear,
    #[serde(rename = "")]
    Empty,
    #[serde(rename = "null")]
    Null,
}

impl Default for Face {
    fn default() -> Face {
        Self::Front
    }
}
/// * `offline` - Offline * `active` - Active * `planned` - Planned * `staged` - Staged * `failed` - Failed * `inventory` - Inventory * `decommissioning` - Decommissioning
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
    #[serde(rename = "offline")]
    Offline,
    #[serde(rename = "active")]
    Active,
    #[serde(rename = "planned")]
    Planned,
    #[serde(rename = "staged")]
    Staged,
    #[serde(rename = "failed")]
    Failed,
    #[serde(rename = "inventory")]
    Inventory,
    #[serde(rename = "decommissioning")]
    Decommissioning,
}

impl Default for Status {
    fn default() -> Status {
        Self::Offline
    }
}
/// * `front-to-rear` - Front to rear * `rear-to-front` - Rear to front * `left-to-right` - Left to right * `right-to-left` - Right to left * `side-to-rear` - Side to rear * `rear-to-side` - Rear to side * `bottom-to-top` - Bottom to top * `top-to-bottom` - Top to bottom * `passive` - Passive * `mixed` - Mixed
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Airflow {
    #[serde(rename = "front-to-rear")]
    FrontToRear,
    #[serde(rename = "rear-to-front")]
    RearToFront,
    #[serde(rename = "left-to-right")]
    LeftToRight,
    #[serde(rename = "right-to-left")]
    RightToLeft,
    #[serde(rename = "side-to-rear")]
    SideToRear,
    #[serde(rename = "rear-to-side")]
    RearToSide,
    #[serde(rename = "bottom-to-top")]
    BottomToTop,
    #[serde(rename = "top-to-bottom")]
    TopToBottom,
    #[serde(rename = "passive")]
    Passive,
    #[serde(rename = "mixed")]
    Mixed,
    #[serde(rename = "")]
    Empty,
    #[serde(rename = "null")]
    Null,
}

impl Default for Airflow {
    fn default() -> Airflow {
        Self::FrontToRear
    }
}