all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Hannes Laimer <h.laimer@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH proxmox 3/3] pve-api-types: regenerate
Date: Tue, 21 Oct 2025 15:50:17 +0200	[thread overview]
Message-ID: <20251021135018.88877-4-h.laimer@proxmox.com> (raw)
In-Reply-To: <20251021135018.88877-1-h.laimer@proxmox.com>

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 pve-api-types/src/generated/code.rs  |   2 +-
 pve-api-types/src/generated/types.rs | 335 ++++++++++++++-------------
 2 files changed, 173 insertions(+), 164 deletions(-)

diff --git a/pve-api-types/src/generated/code.rs b/pve-api-types/src/generated/code.rs
index 8b3c6696..788e4bf5 100644
--- a/pve-api-types/src/generated/code.rs
+++ b/pve-api-types/src/generated/code.rs
@@ -900,7 +900,7 @@ where
             .maybe_arg("since", &p_since)
             .maybe_arg("source", &p_source)
             .maybe_arg("start", &p_start)
-            .maybe_arg("statusfilter", &p_statusfilter)
+            .maybe_list_arg("statusfilter", &p_statusfilter)
             .maybe_arg("typefilter", &p_typefilter)
             .maybe_arg("until", &p_until)
             .maybe_arg("userfilter", &p_userfilter)
diff --git a/pve-api-types/src/generated/types.rs b/pve-api-types/src/generated/types.rs
index 98cb012b..66177998 100644
--- a/pve-api-types/src/generated/types.rs
+++ b/pve-api-types/src/generated/types.rs
@@ -1027,9 +1027,13 @@ fn test_regex_compilation_5() {
             type: String,
         },
         "isis-ifaces": {
-            format: &ApiStringFormat::Pattern(&CREATE_CONTROLLER_ISIS_IFACES_RE),
+            items: {
+                description: "List item of type pve-iface.",
+                format: &ApiStringFormat::Pattern(&CREATE_CONTROLLER_ISIS_IFACES_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         "isis-net": {
             format: &ApiStringFormat::Pattern(&CREATE_CONTROLLER_ISIS_NET_RE),
@@ -1050,9 +1054,13 @@ fn test_regex_compilation_5() {
             type: String,
         },
         peers: {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_ip),
+            items: {
+                description: "List item of type ip.",
+                format: &ApiStringFormat::VerifyFn(verifiers::verify_ip),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         type: {
             type: ListControllersType,
@@ -1099,7 +1107,7 @@ pub struct CreateController {
     /// Comma-separated list of interfaces where IS-IS should be active.
     #[serde(default, skip_serializing_if = "Option::is_none")]
     #[serde(rename = "isis-ifaces")]
-    pub isis_ifaces: Option<String>,
+    pub isis_ifaces: Option<Vec<String>>,
 
     /// Network Entity title for this node in the IS-IS network.
     #[serde(default, skip_serializing_if = "Option::is_none")]
@@ -1121,7 +1129,7 @@ pub struct CreateController {
 
     /// peers address list.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub peers: Option<String>,
+    pub peers: Option<Vec<String>>,
 
     #[serde(rename = "type")]
     pub ty: ListControllersType,
@@ -1381,9 +1389,13 @@ fn test_regex_compilation_6() {
             type: Integer,
         },
         exitnodes: {
-            format: &ApiStringFormat::Pattern(&CREATE_ZONE_EXITNODES_RE),
+            items: {
+                description: "List item of type pve-node.",
+                format: &ApiStringFormat::Pattern(&CREATE_ZONE_EXITNODES_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         "exitnodes-local-routing": {
             default: false,
@@ -1417,23 +1429,35 @@ fn test_regex_compilation_6() {
             type: Integer,
         },
         nodes: {
-            format: &ApiStringFormat::Pattern(&CREATE_ZONE_NODES_RE),
+            items: {
+                description: "List item of type pve-node.",
+                format: &ApiStringFormat::Pattern(&CREATE_ZONE_NODES_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         peers: {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_ip),
+            items: {
+                description: "List item of type ip.",
+                format: &ApiStringFormat::VerifyFn(verifiers::verify_ip),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         reversedns: {
             optional: true,
             type: String,
         },
         "rt-import": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_sdn_bgp_rt),
+            items: {
+                description: "List item of type pve-sdn-bgp-rt.",
+                format: &ApiStringFormat::VerifyFn(verifiers::verify_sdn_bgp_rt),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         tag: {
             minimum: 0,
@@ -1515,7 +1539,7 @@ pub struct CreateZone {
 
     /// List of cluster node names.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub exitnodes: Option<String>,
+    pub exitnodes: Option<Vec<String>>,
 
     /// Allow exitnodes to connect to EVPN guests.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_bool")]
@@ -1552,12 +1576,12 @@ pub struct CreateZone {
 
     /// List of cluster node names.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub nodes: Option<String>,
+    pub nodes: Option<Vec<String>>,
 
     /// Comma-separated list of peers, that are part of the VXLAN zone. Usually
     /// the IPs of the nodes.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub peers: Option<String>,
+    pub peers: Option<Vec<String>>,
 
     /// reverse dns api server
     #[serde(default, skip_serializing_if = "Option::is_none")]
@@ -1566,7 +1590,7 @@ pub struct CreateZone {
     /// List of Route Targets that should be imported into the VRF of the zone.
     #[serde(default, skip_serializing_if = "Option::is_none")]
     #[serde(rename = "rt-import")]
-    pub rt_import: Option<String>,
+    pub rt_import: Option<Vec<String>>,
 
     /// Service-VLAN Tag (outer VLAN)
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_u64")]
@@ -1610,101 +1634,6 @@ pub enum IsRunning {
 serde_plain::derive_display_from_serialize!(IsRunning);
 serde_plain::derive_fromstr_from_deserialize!(IsRunning);
 
-const LIST_STORAGES_CONTENT: Schema =
-    proxmox_schema::ArraySchema::new("list", &StorageContent::API_SCHEMA).schema();
-
-mod list_storages_content {
-    use serde::{Deserialize, Deserializer, Serialize, Serializer};
-
-    #[doc(hidden)]
-    pub trait Ser: Sized {
-        fn ser<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>;
-        fn de<'de, D>(deserializer: D) -> Result<Self, D::Error>
-        where
-            D: Deserializer<'de>;
-    }
-
-    impl<T: Serialize + for<'a> Deserialize<'a>> Ser for Vec<T> {
-        fn ser<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
-        where
-            S: Serializer,
-        {
-            super::stringlist::serialize(&self[..], serializer, &super::LIST_STORAGES_CONTENT)
-        }
-
-        fn de<'de, D>(deserializer: D) -> Result<Self, D::Error>
-        where
-            D: Deserializer<'de>,
-        {
-            super::stringlist::deserialize(deserializer, &super::LIST_STORAGES_CONTENT)
-        }
-    }
-
-    impl<T: Ser> Ser for Option<T> {
-        fn ser<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
-        where
-            S: Serializer,
-        {
-            match self {
-                None => serializer.serialize_none(),
-                Some(inner) => inner.ser(serializer),
-            }
-        }
-
-        fn de<'de, D>(deserializer: D) -> Result<Self, D::Error>
-        where
-            D: Deserializer<'de>,
-        {
-            use std::fmt;
-            use std::marker::PhantomData;
-
-            struct V<T: Ser>(PhantomData<T>);
-
-            impl<'de, T: Ser> serde::de::Visitor<'de> for V<T> {
-                type Value = Option<T>;
-
-                fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result {
-                    f.write_str("an optional string")
-                }
-
-                fn visit_none<E: serde::de::Error>(self) -> Result<Self::Value, E> {
-                    Ok(None)
-                }
-
-                fn visit_some<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
-                where
-                    D: Deserializer<'de>,
-                {
-                    T::de(deserializer).map(Some)
-                }
-
-                fn visit_str<E: serde::de::Error>(self, value: &str) -> Result<Self::Value, E> {
-                    use serde::de::IntoDeserializer;
-                    T::de(value.into_deserializer()).map(Some)
-                }
-            }
-
-            deserializer.deserialize_option(V::<T>(PhantomData))
-        }
-    }
-
-    pub fn serialize<T, S>(this: &T, serializer: S) -> Result<S::Ok, S::Error>
-    where
-        S: serde::Serializer,
-        T: Ser,
-    {
-        this.ser(serializer)
-    }
-
-    pub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>
-    where
-        D: serde::Deserializer<'de>,
-        T: Ser,
-    {
-        T::de(deserializer)
-    }
-}
-
 #[api]
 /// Only list sdn controllers of specific type
 #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
@@ -1864,9 +1793,13 @@ fn test_regex_compilation_7() {
             type: Integer,
         },
         statusfilter: {
-            format: &ApiStringFormat::Pattern(&LIST_TASKS_STATUSFILTER_RE),
+            items: {
+                description: "List item of type pve-task-status-type.",
+                format: &ApiStringFormat::Pattern(&LIST_TASKS_STATUSFILTER_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         typefilter: {
             optional: true,
@@ -1916,7 +1849,7 @@ pub struct ListTasks {
 
     /// List of Task States that should be returned.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub statusfilter: Option<String>,
+    pub statusfilter: Option<Vec<String>>,
 
     /// Only list tasks of this type (e.g., vzstart, vzdump).
     #[serde(default, skip_serializing_if = "Option::is_none")]
@@ -3450,6 +3383,7 @@ pub struct LxcStatus {
 const_regex! {
 
 MIGRATE_LXC_TARGET_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
+MIGRATE_LXC_TARGET_STORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9]):(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|1$"##;
 
 }
 
@@ -3457,6 +3391,7 @@ MIGRATE_LXC_TARGET_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
 fn test_regex_compilation_12() {
     use regex::Regex;
     let _: &Regex = &MIGRATE_LXC_TARGET_RE;
+    let _: &Regex = &MIGRATE_LXC_TARGET_STORAGE_RE;
 }
 #[api(
     properties: {
@@ -3477,9 +3412,13 @@ fn test_regex_compilation_12() {
             type: String,
         },
         "target-storage": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_storage_pair),
+            items: {
+                description: "List item of type storage-pair.",
+                format: &ApiStringFormat::Pattern(&MIGRATE_LXC_TARGET_STORAGE_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         timeout: {
             default: 180,
@@ -3514,7 +3453,7 @@ pub struct MigrateLxc {
     /// '1' will map each source storage to itself.
     #[serde(default, skip_serializing_if = "Option::is_none")]
     #[serde(rename = "target-storage")]
-    pub target_storage: Option<String>,
+    pub target_storage: Option<Vec<String>>,
 
     /// Timeout in seconds for shutdown for restart migration
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_i64")]
@@ -3525,6 +3464,7 @@ pub struct MigrateLxc {
 const_regex! {
 
 MIGRATE_QEMU_TARGET_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
+MIGRATE_QEMU_TARGETSTORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9]):(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|1$"##;
 
 }
 
@@ -3532,6 +3472,7 @@ MIGRATE_QEMU_TARGET_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
 fn test_regex_compilation_13() {
     use regex::Regex;
     let _: &Regex = &MIGRATE_QEMU_TARGET_RE;
+    let _: &Regex = &MIGRATE_QEMU_TARGETSTORAGE_RE;
 }
 #[api(
     properties: {
@@ -3562,9 +3503,13 @@ fn test_regex_compilation_13() {
             type: String,
         },
         targetstorage: {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_storage_pair),
+            items: {
+                description: "List item of type storage-pair.",
+                format: &ApiStringFormat::Pattern(&MIGRATE_QEMU_TARGETSTORAGE_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         "with-conntrack-state": {
             default: false,
@@ -3609,7 +3554,7 @@ pub struct MigrateQemu {
     /// ID maps all source storages to that storage. Providing the special value
     /// '1' will map each source storage to itself.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub targetstorage: Option<String>,
+    pub targetstorage: Option<Vec<String>>,
 
     /// Whether to migrate conntrack entries for running VMs.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_bool")]
@@ -9762,6 +9707,19 @@ pub struct ReloadSdn {
     pub release_lock: Option<bool>,
 }
 
+const_regex! {
+
+REMOTE_MIGRATE_LXC_TARGET_BRIDGE_RE = r##"^[-_.\w\d]+:[-_.\w\d]+|[-_.\w\d]+|1$"##;
+REMOTE_MIGRATE_LXC_TARGET_STORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9]):(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|1$"##;
+
+}
+
+#[test]
+fn test_regex_compilation_26() {
+    use regex::Regex;
+    let _: &Regex = &REMOTE_MIGRATE_LXC_TARGET_BRIDGE_RE;
+    let _: &Regex = &REMOTE_MIGRATE_LXC_TARGET_STORAGE_RE;
+}
 #[api(
     properties: {
         bwlimit: {
@@ -9781,16 +9739,24 @@ pub struct ReloadSdn {
             optional: true,
         },
         "target-bridge": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_bridge_pair),
-            type: String,
+            items: {
+                description: "List item of type bridge-pair.",
+                format: &ApiStringFormat::Pattern(&REMOTE_MIGRATE_LXC_TARGET_BRIDGE_RE),
+                type: String,
+            },
+            type: Array,
         },
         "target-endpoint": {
             format: &ApiStringFormat::PropertyString(&ProxmoxRemote::API_SCHEMA),
             type: String,
         },
         "target-storage": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_storage_pair),
-            type: String,
+            items: {
+                description: "List item of type storage-pair.",
+                format: &ApiStringFormat::Pattern(&REMOTE_MIGRATE_LXC_TARGET_STORAGE_RE),
+                type: String,
+            },
+            type: Array,
         },
         "target-vmid": {
             maximum: 999999999,
@@ -9834,7 +9800,7 @@ pub struct RemoteMigrateLxc {
     /// maps all source bridges to that bridge. Providing the special value '1'
     /// will map each source bridge to itself.
     #[serde(rename = "target-bridge")]
-    pub target_bridge: String,
+    pub target_bridge: Vec<String>,
 
     /// Remote target endpoint
     #[serde(rename = "target-endpoint")]
@@ -9844,7 +9810,7 @@ pub struct RemoteMigrateLxc {
     /// ID maps all source storages to that storage. Providing the special value
     /// '1' will map each source storage to itself.
     #[serde(rename = "target-storage")]
-    pub target_storage: String,
+    pub target_storage: Vec<String>,
 
     /// The (unique) ID of the VM.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_u32")]
@@ -9858,6 +9824,19 @@ pub struct RemoteMigrateLxc {
     pub timeout: Option<i64>,
 }
 
+const_regex! {
+
+REMOTE_MIGRATE_QEMU_TARGET_BRIDGE_RE = r##"^[-_.\w\d]+:[-_.\w\d]+|[-_.\w\d]+|1$"##;
+REMOTE_MIGRATE_QEMU_TARGET_STORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9]):(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|1$"##;
+
+}
+
+#[test]
+fn test_regex_compilation_27() {
+    use regex::Regex;
+    let _: &Regex = &REMOTE_MIGRATE_QEMU_TARGET_BRIDGE_RE;
+    let _: &Regex = &REMOTE_MIGRATE_QEMU_TARGET_STORAGE_RE;
+}
 #[api(
     properties: {
         bwlimit: {
@@ -9874,16 +9853,24 @@ pub struct RemoteMigrateLxc {
             optional: true,
         },
         "target-bridge": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_bridge_pair),
-            type: String,
+            items: {
+                description: "List item of type bridge-pair.",
+                format: &ApiStringFormat::Pattern(&REMOTE_MIGRATE_QEMU_TARGET_BRIDGE_RE),
+                type: String,
+            },
+            type: Array,
         },
         "target-endpoint": {
             format: &ApiStringFormat::PropertyString(&ProxmoxRemote::API_SCHEMA),
             type: String,
         },
         "target-storage": {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_storage_pair),
-            type: String,
+            items: {
+                description: "List item of type storage-pair.",
+                format: &ApiStringFormat::Pattern(&REMOTE_MIGRATE_QEMU_TARGET_STORAGE_RE),
+                type: String,
+            },
+            type: Array,
         },
         "target-vmid": {
             maximum: 999999999,
@@ -9917,7 +9904,7 @@ pub struct RemoteMigrateQemu {
     /// maps all source bridges to that bridge. Providing the special value '1'
     /// will map each source bridge to itself.
     #[serde(rename = "target-bridge")]
-    pub target_bridge: String,
+    pub target_bridge: Vec<String>,
 
     /// Remote target endpoint
     #[serde(rename = "target-endpoint")]
@@ -9927,7 +9914,7 @@ pub struct RemoteMigrateQemu {
     /// ID maps all source storages to that storage. Providing the special value
     /// '1' will map each source storage to itself.
     #[serde(rename = "target-storage")]
-    pub target_storage: String,
+    pub target_storage: Vec<String>,
 
     /// The (unique) ID of the VM.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_u32")]
@@ -10162,7 +10149,7 @@ SDN_CONTROLLER_ISIS_NET_RE = r##"^[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\.[a-fA-F
 }
 
 #[test]
-fn test_regex_compilation_26() {
+fn test_regex_compilation_28() {
     use regex::Regex;
     let _: &Regex = &SDN_CONTROLLER_ISIS_IFACES_RE;
     let _: &Regex = &SDN_CONTROLLER_ISIS_NET_RE;
@@ -10315,7 +10302,7 @@ SDN_CONTROLLER_PENDING_ISIS_NET_RE = r##"^[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\
 }
 
 #[test]
-fn test_regex_compilation_27() {
+fn test_regex_compilation_29() {
     use regex::Regex;
     let _: &Regex = &SDN_CONTROLLER_PENDING_ISIS_IFACES_RE;
     let _: &Regex = &SDN_CONTROLLER_PENDING_ISIS_NET_RE;
@@ -10610,7 +10597,7 @@ SDN_ZONE_EXITNODES_PRIMARY_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
 }
 
 #[test]
-fn test_regex_compilation_28() {
+fn test_regex_compilation_30() {
     use regex::Regex;
     let _: &Regex = &SDN_ZONE_EXITNODES_RE;
     let _: &Regex = &SDN_ZONE_EXITNODES_PRIMARY_RE;
@@ -10884,7 +10871,7 @@ SDN_ZONE_PENDING_EXITNODES_PRIMARY_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9]
 }
 
 #[test]
-fn test_regex_compilation_29() {
+fn test_regex_compilation_31() {
     use regex::Regex;
     let _: &Regex = &SDN_ZONE_PENDING_EXITNODES_RE;
     let _: &Regex = &SDN_ZONE_PENDING_EXITNODES_PRIMARY_RE;
@@ -11209,13 +11196,15 @@ pub struct StartLxc {
 const_regex! {
 
 START_QEMU_MIGRATEDFROM_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
+START_QEMU_TARGETSTORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9]):(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|(?i:[a-z][a-z0-9\-_.]*[a-z0-9])|1$"##;
 
 }
 
 #[test]
-fn test_regex_compilation_30() {
+fn test_regex_compilation_32() {
     use regex::Regex;
     let _: &Regex = &START_QEMU_MIGRATEDFROM_RE;
+    let _: &Regex = &START_QEMU_TARGETSTORAGE_RE;
 }
 #[api(
     properties: {
@@ -11256,9 +11245,13 @@ fn test_regex_compilation_30() {
             type: String,
         },
         targetstorage: {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_storage_pair),
+            items: {
+                description: "List item of type storage-pair.",
+                format: &ApiStringFormat::Pattern(&START_QEMU_TARGETSTORAGE_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         timeout: {
             default: 30,
@@ -11316,7 +11309,7 @@ pub struct StartQemu {
     /// ID maps all source storages to that storage. Providing the special value
     /// '1' will map each source storage to itself.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub targetstorage: Option<String>,
+    pub targetstorage: Option<Vec<String>>,
 
     /// Wait maximal timeout seconds.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_u64")]
@@ -11379,7 +11372,7 @@ STOP_QEMU_MIGRATEDFROM_RE = r##"^(?i:[a-z0-9](?i:[a-z0-9\-]*[a-z0-9])?)$"##;
 }
 
 #[test]
-fn test_regex_compilation_31() {
+fn test_regex_compilation_33() {
     use regex::Regex;
     let _: &Regex = &STOP_QEMU_MIGRATEDFROM_RE;
 }
@@ -11478,7 +11471,7 @@ STORAGE_INFO_STORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9])$"##;
 }
 
 #[test]
-fn test_regex_compilation_32() {
+fn test_regex_compilation_34() {
     use regex::Regex;
     let _: &Regex = &STORAGE_INFO_STORAGE_RE;
 }
@@ -11756,7 +11749,7 @@ UPDATE_QEMU_CONFIG_VMSTATESTORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9])$"##;
 }
 
 #[test]
-fn test_regex_compilation_33() {
+fn test_regex_compilation_35() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_AFFINITY_RE;
     let _: &Regex = &UPDATE_QEMU_CONFIG_BOOTDISK_RE;
@@ -11882,9 +11875,13 @@ fn test_regex_compilation_33() {
             type: Integer,
         },
         delete: {
-            format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_DELETE_RE),
+            items: {
+                description: "List item of type pve-configid.",
+                format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_DELETE_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         description: {
             max_length: 8192,
@@ -11989,9 +11986,13 @@ fn test_regex_compilation_33() {
             type: String,
         },
         nameserver: {
-            format: &ApiStringFormat::VerifyFn(verifiers::verify_address),
+            items: {
+                description: "List item of type address.",
+                format: &ApiStringFormat::VerifyFn(verifiers::verify_address),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         net: {
             type: QemuConfigNetArray,
@@ -12023,9 +12024,13 @@ fn test_regex_compilation_33() {
             optional: true,
         },
         revert: {
-            format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_REVERT_RE),
+            items: {
+                description: "List item of type pve-configid.",
+                format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_REVERT_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         rng0: {
             format: &ApiStringFormat::PropertyString(&PveQmRng::API_SCHEMA),
@@ -12104,9 +12109,13 @@ fn test_regex_compilation_33() {
             optional: true,
         },
         tags: {
-            format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_TAGS_RE),
+            items: {
+                description: "List item of type pve-tag.",
+                format: &ApiStringFormat::Pattern(&UPDATE_QEMU_CONFIG_TAGS_RE),
+                type: String,
+            },
             optional: true,
-            type: String,
+            type: Array,
         },
         tdf: {
             default: false,
@@ -12274,7 +12283,7 @@ pub struct UpdateQemuConfig {
 
     /// A list of settings you want to delete.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub delete: Option<String>,
+    pub delete: Option<Vec<String>>,
 
     /// Description for the VM. Shown in the web-interface VM's summary. This is
     /// saved as comment inside the configuration file.
@@ -12413,7 +12422,7 @@ pub struct UpdateQemuConfig {
     /// automatically use the setting from the host if neither searchdomain nor
     /// nameserver are set.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub nameserver: Option<String>,
+    pub nameserver: Option<Vec<String>>,
 
     /// Specify network devices.
     #[serde(flatten)]
@@ -12453,7 +12462,7 @@ pub struct UpdateQemuConfig {
 
     /// Revert a pending change.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub revert: Option<String>,
+    pub revert: Option<Vec<String>>,
 
     /// Configure a VirtIO-based Random Number Generator.
     #[serde(default, skip_serializing_if = "Option::is_none")]
@@ -12538,7 +12547,7 @@ pub struct UpdateQemuConfig {
 
     /// Tags of the VM. This is only meta information.
     #[serde(default, skip_serializing_if = "Option::is_none")]
-    pub tags: Option<String>,
+    pub tags: Option<Vec<String>>,
 
     /// Enable/disable time drift fix.
     #[serde(deserialize_with = "proxmox_serde::perl::deserialize_bool")]
@@ -12649,7 +12658,7 @@ UPDATE_QEMU_CONFIG_EFIDISK0_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_34() {
+fn test_regex_compilation_36() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_EFIDISK0_SIZE_RE;
 }
@@ -12726,7 +12735,7 @@ UPDATE_QEMU_CONFIG_IDE_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_35() {
+fn test_regex_compilation_37() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_IDE_MODEL_RE;
     let _: &Regex = &UPDATE_QEMU_CONFIG_IDE_SERIAL_RE;
@@ -13082,7 +13091,7 @@ UPDATE_QEMU_CONFIG_SATA_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_36() {
+fn test_regex_compilation_38() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_SATA_SERIAL_RE;
     let _: &Regex = &UPDATE_QEMU_CONFIG_SATA_SIZE_RE;
@@ -13427,7 +13436,7 @@ UPDATE_QEMU_CONFIG_SCSI_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_37() {
+fn test_regex_compilation_39() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_SCSI_SERIAL_RE;
     let _: &Regex = &UPDATE_QEMU_CONFIG_SCSI_SIZE_RE;
@@ -13827,7 +13836,7 @@ UPDATE_QEMU_CONFIG_TPMSTATE0_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_38() {
+fn test_regex_compilation_40() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_TPMSTATE0_SIZE_RE;
 }
@@ -13883,7 +13892,7 @@ UPDATE_QEMU_CONFIG_VIRTIO_SIZE_RE = r##"^(\d+(\.\d+)?)([KMGT])?$"##;
 }
 
 #[test]
-fn test_regex_compilation_39() {
+fn test_regex_compilation_41() {
     use regex::Regex;
     let _: &Regex = &UPDATE_QEMU_CONFIG_VIRTIO_SERIAL_RE;
     let _: &Regex = &UPDATE_QEMU_CONFIG_VIRTIO_SIZE_RE;
-- 
2.47.3



_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel


  parent reply	other threads:[~2025-10-21 13:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-21 13:50 [pdm-devel] [PATCH proxmox{, -datacenter-manager} 0/4] generate Vec's for string-lists Hannes Laimer
2025-10-21 13:50 ` [pdm-devel] [PATCH proxmox 1/3] pve-api-types: schema2rust: generate arrays for types with format `-list` Hannes Laimer
2025-10-21 13:50 ` [pdm-devel] [PATCH proxmox 2/3] pve-api-types: add regex for both storage- and bridge-pair Hannes Laimer
2025-10-21 13:50 ` Hannes Laimer [this message]
2025-10-21 13:50 ` [pdm-devel] [PATCH proxmox-datacenter-manager 1/1] server: use types indead of string for migration parameters Hannes Laimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251021135018.88877-4-h.laimer@proxmox.com \
    --to=h.laimer@proxmox.com \
    --cc=pdm-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal