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
 */

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct VirtualizationVirtualMachinesCreateRequest {
    #[serde(rename = "name")]
    pub name: String,
    #[serde(rename = "virtual_machine_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub virtual_machine_type: Option<Option<Box<crate::models::PatchedWritableVirtualMachineWithConfigContextRequestVirtualMachineType>>>,
    #[serde(rename = "role", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub role: Option<Option<Box<crate::models::PatchedWritableVirtualMachineWithConfigContextRequestRole>>>,
    /// * `offline` - Offline * `active` - Active * `planned` - Planned * `staged` - Staged * `failed` - Failed * `decommissioning` - Decommissioning * `paused` - Paused
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<Status>,
    /// * `on` - On * `off` - Off * `laststate` - Last State
    #[serde(rename = "start_on_boot", skip_serializing_if = "Option::is_none")]
    pub start_on_boot: Option<StartOnBoot>,
    #[serde(rename = "site", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub site: Option<Option<Box<crate::models::CreateAvailableVlanRequestSite>>>,
    #[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 = "device", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub device: Option<Option<Box<crate::models::DeviceBayRequestInstalledDevice>>>,
    #[serde(rename = "platform", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub platform: Option<Option<Box<crate::models::DeviceTypeRequestDefaultPlatform>>>,
    #[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 = "vcpus", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub vcpus: Option<Option<f64>>,
    #[serde(rename = "memory", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub memory: Option<Option<i32>>,
    #[serde(rename = "disk", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub disk: Option<Option<i32>>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
    pub serial: Option<String>,
    #[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 = "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 = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
    /// 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 = "config_template", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub config_template: Option<Option<Box<crate::models::DeviceRoleRequestConfigTemplate>>>,
    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
}

impl VirtualizationVirtualMachinesCreateRequest {
    pub fn new(name: String) -> VirtualizationVirtualMachinesCreateRequest {
        VirtualizationVirtualMachinesCreateRequest {
            name,
            virtual_machine_type: None,
            role: None,
            status: None,
            start_on_boot: None,
            site: None,
            cluster: None,
            device: None,
            platform: None,
            primary_ip4: None,
            primary_ip6: None,
            vcpus: None,
            memory: None,
            disk: None,
            description: None,
            serial: None,
            tenant: None,
            owner: None,
            comments: None,
            tags: None,
            local_context_data: None,
            config_template: None,
            custom_fields: None,
        }
    }
}

/// * `offline` - Offline * `active` - Active * `planned` - Planned * `staged` - Staged * `failed` - Failed * `decommissioning` - Decommissioning * `paused` - Paused
#[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 = "decommissioning")]
    Decommissioning,
    #[serde(rename = "paused")]
    Paused,
}

impl Default for Status {
    fn default() -> Status {
        Self::Offline
    }
}
/// * `on` - On * `off` - Off * `laststate` - Last State
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StartOnBoot {
    #[serde(rename = "on")]
    On,
    #[serde(rename = "off")]
    Off,
    #[serde(rename = "laststate")]
    Laststate,
}

impl Default for StartOnBoot {
    fn default() -> StartOnBoot {
        Self::On
    }
}