use std::sync::Arc;
use crate::core::client::{VimClient, Result};
#[derive(Clone)]
pub struct VsanFileServiceSystem {
client: Arc<dyn VimClient>,
mo_id: String,
}
impl VsanFileServiceSystem {
pub fn new(client: Arc<dyn VimClient>, mo_id: &str) -> Self {
Self {
client,
mo_id: mo_id.to_string(),
}
}
pub async fn vsan_cluster_create_fs_domain(&self, domain_config: &crate::types::structs::VsanFileServiceDomainConfig, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterCreateFsDomainRequestType {domain_config, cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterCreateFsDomain", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_create_file_share(&self, config: &crate::types::structs::VsanFileShareConfig, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanCreateFileShareRequestType {config, cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanCreateFileShare", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_create_share_snapshot(&self, config: &crate::types::structs::VsanFileShareSnapshotConfig, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterCreateShareSnapshotRequestType {config, cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterCreateShareSnapshot", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_download_file_service_ovf(&self, download_url: &str) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanDownloadFileServiceOvfRequestType {download_url, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanDownloadFileServiceOvf", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_find_ovf_download_url(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<String> {
let input = VsanFindOvfDownloadUrlRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanFindOvfDownloadUrl", Some(&input)).await?;
let result: String = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_perform_file_service_enable_preflight_check(&self, cluster: &crate::types::structs::ManagedObjectReference, domain_config: Option<&crate::types::structs::VsanFileServiceDomainConfig>, network: Option<&crate::types::structs::ManagedObjectReference>, scope: Option<&str>, domain_uuid: Option<&str>) -> Result<crate::types::structs::VsanFileServicePreflightCheckResult> {
let input = VsanPerformFileServiceEnablePreflightCheckRequestType {cluster, domain_config, network, scope, domain_uuid, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanPerformFileServiceEnablePreflightCheck", Some(&input)).await?;
let result: crate::types::structs::VsanFileServicePreflightCheckResult = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_query_fs_domains(&self, query_spec: Option<&crate::types::structs::VsanFileServiceDomainQuerySpec>, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<Option<Vec<crate::types::structs::VsanFileServiceDomain>>> {
let input = VsanClusterQueryFsDomainsRequestType {query_spec, cluster, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterQueryFsDomains", Some(&input)).await?;
match bytes_opt {
Some(ref b) => Ok(Some(crate::core::client::unmarshal_array(self.client.transport(), b)?)),
None => Ok(None),
}
}
pub async fn vsan_query_file_service_ovfs(&self) -> Result<Option<Vec<crate::types::structs::VsanFileServiceOvfSpec>>> {
let bytes_opt = self.client.invoke_optional("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanQueryFileServiceOvfs", None).await?;
match bytes_opt {
Some(ref b) => Ok(Some(crate::core::client::unmarshal_array(self.client.transport(), b)?)),
None => Ok(None),
}
}
pub async fn vsan_cluster_query_share_snapshots(&self, query_spec: &crate::types::structs::VsanFileShareSnapshotQuerySpec, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<Option<crate::types::structs::VsanFileShareSnapshotQueryResult>> {
let input = VsanClusterQueryShareSnapshotsRequestType {query_spec, cluster, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterQueryShareSnapshots", Some(&input)).await?;
match bytes_opt {
Some(ref b) => Ok(Some(crate::core::client::unmarshal(self.client.transport(), b)?)),
None => Ok(None),
}
}
pub async fn vsan_cluster_query_file_shares(&self, query_spec: &crate::types::structs::VsanFileShareQuerySpec, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<Option<crate::types::structs::FileShareQueryResult>> {
let input = VsanClusterQueryFileSharesRequestType {query_spec, cluster, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterQueryFileShares", Some(&input)).await?;
match bytes_opt {
Some(ref b) => Ok(Some(crate::core::client::unmarshal(self.client.transport(), b)?)),
None => Ok(None),
}
}
pub async fn vsan_rebalance_file_service(&self, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanRebalanceFileServiceRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanRebalanceFileService", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_reconfigure_fs_domain(&self, domain_uuid: &str, domain_config: &crate::types::structs::VsanFileServiceDomainConfig, cluster: Option<&crate::types::structs::ManagedObjectReference>, delete_domain_config_fields: Option<&[String]>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterReconfigureFsDomainRequestType {domain_uuid, domain_config, cluster, delete_domain_config_fields, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterReconfigureFsDomain", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_reconfigure_file_share(&self, share_uuid: &str, config: &crate::types::structs::VsanFileShareConfig, cluster: Option<&crate::types::structs::ManagedObjectReference>, delete_label_keys: Option<&[String]>, force: Option<bool>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanReconfigureFileShareRequestType {share_uuid, config, cluster, delete_label_keys, force, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanReconfigureFileShare", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_remove_fs_domain(&self, domain_uuid: &str, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterRemoveFsDomainRequestType {domain_uuid, cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterRemoveFsDomain", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_remove_share(&self, share_uuid: &str, cluster: Option<&crate::types::structs::ManagedObjectReference>, force: Option<bool>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterRemoveShareRequestType {share_uuid, cluster, force, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterRemoveShare", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_remove_share_snapshot(&self, share_uuid: &str, snapshot_name: &str, cluster: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanClusterRemoveShareSnapshotRequestType {share_uuid, snapshot_name, cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanClusterRemoveShareSnapshot", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_upgrade_fsvm(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanUpgradeFsvmRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanFileServiceSystem", &self.mo_id, "VsanUpgradeFsvm", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
}
struct VsanClusterCreateFsDomainRequestType<'a> {
domain_config: &'a crate::types::structs::VsanFileServiceDomainConfig,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterCreateFsDomainRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterCreateFsDomainRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterCreateFsDomainRequestTypeSer<'b, 'a> {
data: &'b VsanClusterCreateFsDomainRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterCreateFsDomainRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterCreateFsDomainRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("domainConfig"), &self.data.domain_config as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanCreateFileShareRequestType<'a> {
config: &'a crate::types::structs::VsanFileShareConfig,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanCreateFileShareRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanCreateFileShareRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanCreateFileShareRequestTypeSer<'b, 'a> {
data: &'b VsanCreateFileShareRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanCreateFileShareRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanCreateFileShareRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("config"), &self.data.config as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterCreateShareSnapshotRequestType<'a> {
config: &'a crate::types::structs::VsanFileShareSnapshotConfig,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterCreateShareSnapshotRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterCreateShareSnapshotRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterCreateShareSnapshotRequestTypeSer<'b, 'a> {
data: &'b VsanClusterCreateShareSnapshotRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterCreateShareSnapshotRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterCreateShareSnapshotRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("config"), &self.data.config as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanDownloadFileServiceOvfRequestType<'a> {
download_url: &'a str,
}
impl<'a> miniserde::Serialize for VsanDownloadFileServiceOvfRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanDownloadFileServiceOvfRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanDownloadFileServiceOvfRequestTypeSer<'b, 'a> {
data: &'b VsanDownloadFileServiceOvfRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanDownloadFileServiceOvfRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanDownloadFileServiceOvfRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("downloadUrl"), &self.data.download_url as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanFindOvfDownloadUrlRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanFindOvfDownloadUrlRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanFindOvfDownloadUrlRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanFindOvfDownloadUrlRequestTypeSer<'b, 'a> {
data: &'b VsanFindOvfDownloadUrlRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanFindOvfDownloadUrlRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanFindOvfDownloadUrlRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanPerformFileServiceEnablePreflightCheckRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
domain_config: Option<&'a crate::types::structs::VsanFileServiceDomainConfig>,
network: Option<&'a crate::types::structs::ManagedObjectReference>,
scope: Option<&'a str>,
domain_uuid: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanPerformFileServiceEnablePreflightCheckRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanPerformFileServiceEnablePreflightCheckRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanPerformFileServiceEnablePreflightCheckRequestTypeSer<'b, 'a> {
data: &'b VsanPerformFileServiceEnablePreflightCheckRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanPerformFileServiceEnablePreflightCheckRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanPerformFileServiceEnablePreflightCheckRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.domain_config else { continue; };
return Some((std::borrow::Cow::Borrowed("domainConfig"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.network else { continue; };
return Some((std::borrow::Cow::Borrowed("network"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.scope else { continue; };
return Some((std::borrow::Cow::Borrowed("scope"), val as &dyn miniserde::Serialize));
}
5 => {
let Some(ref val) = self.data.domain_uuid else { continue; };
return Some((std::borrow::Cow::Borrowed("domainUuid"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterQueryFsDomainsRequestType<'a> {
query_spec: Option<&'a crate::types::structs::VsanFileServiceDomainQuerySpec>,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterQueryFsDomainsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterQueryFsDomainsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterQueryFsDomainsRequestTypeSer<'b, 'a> {
data: &'b VsanClusterQueryFsDomainsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterQueryFsDomainsRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterQueryFsDomainsRequestType")),
1 => {
let Some(ref val) = self.data.query_spec else { continue; };
return Some((std::borrow::Cow::Borrowed("querySpec"), val as &dyn miniserde::Serialize));
}
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterQueryShareSnapshotsRequestType<'a> {
query_spec: &'a crate::types::structs::VsanFileShareSnapshotQuerySpec,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterQueryShareSnapshotsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterQueryShareSnapshotsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterQueryShareSnapshotsRequestTypeSer<'b, 'a> {
data: &'b VsanClusterQueryShareSnapshotsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterQueryShareSnapshotsRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterQueryShareSnapshotsRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("querySpec"), &self.data.query_spec as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterQueryFileSharesRequestType<'a> {
query_spec: &'a crate::types::structs::VsanFileShareQuerySpec,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterQueryFileSharesRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterQueryFileSharesRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterQueryFileSharesRequestTypeSer<'b, 'a> {
data: &'b VsanClusterQueryFileSharesRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterQueryFileSharesRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterQueryFileSharesRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("querySpec"), &self.data.query_spec as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanRebalanceFileServiceRequestType<'a> {
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanRebalanceFileServiceRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanRebalanceFileServiceRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanRebalanceFileServiceRequestTypeSer<'b, 'a> {
data: &'b VsanRebalanceFileServiceRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanRebalanceFileServiceRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanRebalanceFileServiceRequestType")),
1 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterReconfigureFsDomainRequestType<'a> {
domain_uuid: &'a str,
domain_config: &'a crate::types::structs::VsanFileServiceDomainConfig,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
delete_domain_config_fields: Option<&'a [String]>,
}
impl<'a> miniserde::Serialize for VsanClusterReconfigureFsDomainRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterReconfigureFsDomainRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterReconfigureFsDomainRequestTypeSer<'b, 'a> {
data: &'b VsanClusterReconfigureFsDomainRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterReconfigureFsDomainRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterReconfigureFsDomainRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("domainUuid"), &self.data.domain_uuid as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("domainConfig"), &self.data.domain_config as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.delete_domain_config_fields else { continue; };
return Some((std::borrow::Cow::Borrowed("deleteDomainConfigFields"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanReconfigureFileShareRequestType<'a> {
share_uuid: &'a str,
config: &'a crate::types::structs::VsanFileShareConfig,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
delete_label_keys: Option<&'a [String]>,
force: Option<bool>,
}
impl<'a> miniserde::Serialize for VsanReconfigureFileShareRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanReconfigureFileShareRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanReconfigureFileShareRequestTypeSer<'b, 'a> {
data: &'b VsanReconfigureFileShareRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanReconfigureFileShareRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanReconfigureFileShareRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("shareUuid"), &self.data.share_uuid as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("config"), &self.data.config as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.delete_label_keys else { continue; };
return Some((std::borrow::Cow::Borrowed("deleteLabelKeys"), val as &dyn miniserde::Serialize));
}
5 => {
let Some(ref val) = self.data.force else { continue; };
return Some((std::borrow::Cow::Borrowed("force"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterRemoveFsDomainRequestType<'a> {
domain_uuid: &'a str,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterRemoveFsDomainRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterRemoveFsDomainRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterRemoveFsDomainRequestTypeSer<'b, 'a> {
data: &'b VsanClusterRemoveFsDomainRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterRemoveFsDomainRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterRemoveFsDomainRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("domainUuid"), &self.data.domain_uuid as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterRemoveShareRequestType<'a> {
share_uuid: &'a str,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
force: Option<bool>,
}
impl<'a> miniserde::Serialize for VsanClusterRemoveShareRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterRemoveShareRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterRemoveShareRequestTypeSer<'b, 'a> {
data: &'b VsanClusterRemoveShareRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterRemoveShareRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterRemoveShareRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("shareUuid"), &self.data.share_uuid as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.force else { continue; };
return Some((std::borrow::Cow::Borrowed("force"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterRemoveShareSnapshotRequestType<'a> {
share_uuid: &'a str,
snapshot_name: &'a str,
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanClusterRemoveShareSnapshotRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterRemoveShareSnapshotRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterRemoveShareSnapshotRequestTypeSer<'b, 'a> {
data: &'b VsanClusterRemoveShareSnapshotRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterRemoveShareSnapshotRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
loop {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanClusterRemoveShareSnapshotRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("shareUuid"), &self.data.share_uuid as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("snapshotName"), &self.data.snapshot_name as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanUpgradeFsvmRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanUpgradeFsvmRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanUpgradeFsvmRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanUpgradeFsvmRequestTypeSer<'b, 'a> {
data: &'b VsanUpgradeFsvmRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanUpgradeFsvmRequestTypeSer<'b, 'a> {
fn next(&mut self) -> Option<(std::borrow::Cow<'_, str>, &dyn miniserde::Serialize)> {
let seq = self.seq;
self.seq += 1;
match seq {
0 => return Some((std::borrow::Cow::Borrowed("_typeName"), &"VsanUpgradeFsvmRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}