clientapi-pve 2026.5.24

Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
Documentation
/*
 * Proxmox Virtual Environment API
 *
 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
 *
 * The version of the OpenAPI document: 9.x
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PveTpmstateConfig {

    /// The drive's backing volume.
    #[serde(rename = "file")]
    pub file: String,

    /// Format of the image.
    #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
    pub format: Option<models::PveQemuFormatEnum>,

    /// Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!
    #[serde(rename = "import-from", skip_serializing_if = "Option::is_none")]
    pub import_from: Option<String>,

    /// Disk size. This is purely informational and has no effect.
    #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
    pub size: Option<String>,

    /// The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<models::PveVersionEnum>,

    #[serde(rename = "volume", skip_serializing_if = "Option::is_none")]
    pub volume: Option<String>,


}

impl PveTpmstateConfig {
    pub fn new(file: String) -> PveTpmstateConfig {
        PveTpmstateConfig {
            
            file,
            
            format: None,
            
            import_from: None,
            
            size: None,
            
            version: None,
            
            volume: None,
            
        }
    }
}


impl PveTpmstateConfig {
    /// Serialise this PveTpmstateConfig into Proxmox's CLI-style shorthand
    /// string (`key=value,…`). The property marked `x-pve-default-key`
    /// is emitted positionally without a `key=` prefix; aliases collapse
    /// multiple property names to the same wire key.
    ///
    /// Example: `PveTpmstateConfig `
    /// → `"virtio,bridge=vmbr0"`
    pub fn to_shorthand(&self) -> String {
        let mut parts: Vec<String> = Vec::new();
        
        
        parts.push(format!("{}", self.file));
        
        
        
        
        if let Some(ref v) = self.format {
            parts.push(format!("format={}", v));
        }
        
        
        if let Some(ref v) = self.import_from {
            parts.push(format!("import-from={}", v));
        }
        
        
        if let Some(ref v) = self.size {
            parts.push(format!("size={}", v));
        }
        
        
        if let Some(ref v) = self.version {
            parts.push(format!("version={}", v));
        }
        
        
        if let Some(ref v) = self.volume {
            parts.push(format!("file={}", v));
        }
        
        parts.join(",")
    }
}