Skip to main content

clientapi_pve/models/
qemu_clone_vm_request.rs

1/*
2 * Proxmox Virtual Environment API
3 *
4 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
5 *
6 * The version of the OpenAPI document: 9.x
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct QemuCloneVmRequest {
16
17    /// Override I/O bandwidth limit (in KiB/s).
18    #[serde(rename = "bwlimit", skip_serializing_if = "Option::is_none")]
19    pub bwlimit: Option<i64>,
20
21    /// Description for the new VM.
22    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
23    pub description: Option<String>,
24
25    /// Target format for file storage. Only valid for full clone.
26    #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
27    pub format: Option<models::PveQemuFormatEnum>,
28
29    /// Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.
30    #[serde(rename = "full", skip_serializing_if = "Option::is_none")]
31    pub full: Option<models::PveBoolean>,
32
33    /// Set a name for the new VM.
34    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
35    pub name: Option<String>,
36
37    /// VMID for the clone.
38    #[serde(rename = "newid")]
39    pub newid: i32,
40
41    /// Add the new VM to the specified pool.
42    #[serde(rename = "pool", skip_serializing_if = "Option::is_none")]
43    pub pool: Option<String>,
44
45    /// The name of the snapshot.
46    #[serde(rename = "snapname", skip_serializing_if = "Option::is_none")]
47    pub snapname: Option<String>,
48
49    /// Target storage for full clone.
50    #[serde(rename = "storage", skip_serializing_if = "Option::is_none")]
51    pub storage: Option<String>,
52
53    /// Target node. Only allowed if the original VM is on shared storage.
54    #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
55    pub target: Option<String>,
56
57
58}
59
60impl QemuCloneVmRequest {
61    pub fn new(newid: i32) -> QemuCloneVmRequest {
62        QemuCloneVmRequest {
63            
64            bwlimit: None,
65            
66            description: None,
67            
68            format: None,
69            
70            full: None,
71            
72            name: None,
73            
74            newid,
75            
76            pool: None,
77            
78            snapname: None,
79            
80            storage: None,
81            
82            target: None,
83            
84        }
85    }
86}
87
88