use std::sync::Arc;
use crate::core::client::{VimClient, Result};
#[derive(Clone)]
pub struct VsanVcClusterHealthSystem {
client: Arc<dyn VimClient>,
mo_id: String,
}
impl VsanVcClusterHealthSystem {
pub fn new(client: Arc<dyn VimClient>, mo_id: &str) -> Self {
Self {
client,
mo_id: mo_id.to_string(),
}
}
pub async fn vsan_attach_vsan_support_bundle_to_sr(&self, cluster: &crate::types::structs::ManagedObjectReference, sr_number: &str) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanAttachVsanSupportBundleToSrRequestType {cluster, sr_number, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanAttachVsanSupportBundleToSr", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_download_and_install_vendor_tool_task(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanDownloadAndInstallVendorToolRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanDownloadAndInstallVendorTool_Task", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_download_hcl_file_task(&self, sha_1_sums: &[String]) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanDownloadHclFileRequestType {sha_1_sums, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanDownloadHclFile_Task", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_get_hcl_constraints(&self, cluster: &crate::types::structs::ManagedObjectReference, release: &str) -> Result<crate::types::structs::VsanHclReleaseConstraint> {
let input = VsanGetHclConstraintsRequestType {cluster, release, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanGetHclConstraints", Some(&input)).await?;
let result: crate::types::structs::VsanHclReleaseConstraint = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_vc_cluster_get_hcl_info(&self, cluster: Option<&crate::types::structs::ManagedObjectReference>, include_hosts_result: Option<bool>, include_vendor_info: Option<bool>, esx_release: Option<&str>, query_spec: Option<&crate::types::structs::VsanHclQuerySpec>) -> Result<crate::types::structs::VsanClusterHclInfo> {
let input = VsanVcClusterGetHclInfoRequestType {cluster, include_hosts_result, include_vendor_info, esx_release, query_spec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanVcClusterGetHclInfo", Some(&input)).await?;
let result: crate::types::structs::VsanClusterHclInfo = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_get_release_recommendation(&self, cluster: &crate::types::structs::ManagedObjectReference, minor: &[String], major: &[String]) -> Result<Option<Vec<crate::types::structs::VsanHclReleaseConstraint>>> {
let input = VsanGetReleaseRecommendationRequestType {cluster, minor, major, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanGetReleaseRecommendation", 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_get_disk_hcl_constraints(&self, release: Option<&str>, disk_models: Option<&[crate::types::structs::VsanDiskModelInfo]>) -> Result<Option<Vec<crate::types::structs::VsanHclDiskConstraint>>> {
let input = VsanGetDiskHclConstraintsRequestType {release, disk_models, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanGetDiskHclConstraints", 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_get_hcl_info_for_eligible_disks(&self, query_spec: &crate::types::structs::VsanHclQuerySpec) -> Result<crate::types::structs::VsanClusterHclInfo> {
let input = VsanGetHclInfoForEligibleDisksRequestType {query_spec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanGetHclInfoForEligibleDisks", Some(&input)).await?;
let result: crate::types::structs::VsanClusterHclInfo = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_get_vsan_cluster_silent_checks(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<Option<Vec<String>>> {
let input = VsanHealthGetVsanClusterSilentChecksRequestType {cluster, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthGetVsanClusterSilentChecks", 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_health_is_rebalance_running(&self, cluster: &crate::types::structs::ManagedObjectReference, target_hosts: Option<&[crate::types::structs::ManagedObjectReference]>) -> Result<bool> {
let input = VsanHealthIsRebalanceRunningRequestType {cluster, target_hosts, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthIsRebalanceRunning", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_purge_hcl_files(&self, sha_1_sums: &[String]) -> Result<()> {
let input = VsanPurgeHclFilesRequestType {sha_1_sums, };
self.client.invoke_void("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanPurgeHclFiles", Some(&input)).await
}
pub async fn vsan_query_all_supported_health_checks(&self) -> Result<Vec<crate::types::structs::VsanClusterHealthCheckInfo>> {
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryAllSupportedHealthChecks", None).await?;
let result: Vec<crate::types::structs::VsanClusterHealthCheckInfo> = crate::core::client::unmarshal_array(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_attach_to_sr_history(&self, cluster: &crate::types::structs::ManagedObjectReference, count: Option<i32>, task_id: Option<&str>) -> Result<Option<Vec<crate::types::structs::VsanAttachToSrOperation>>> {
let input = VsanQueryAttachToSrHistoryRequestType {cluster, count, task_id, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryAttachToSrHistory", 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_vc_cluster_create_vm_health_history_test(&self, cluster: &crate::types::structs::ManagedObjectReference, count: Option<i32>, datastore: Option<&crate::types::structs::ManagedObjectReference>) -> Result<Option<Vec<crate::types::structs::VsanClusterCreateVmHealthTestResult>>> {
let input = VsanQueryVcClusterCreateVmHealthHistoryTestRequestType {cluster, count, datastore, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterCreateVmHealthHistoryTest", 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_vc_cluster_create_vm_health_test(&self, cluster: &crate::types::structs::ManagedObjectReference, timeout: i32, datastore: Option<&crate::types::structs::ManagedObjectReference>) -> Result<crate::types::structs::VsanClusterCreateVmHealthTestResult> {
let input = VsanQueryVcClusterCreateVmHealthTestRequestType {cluster, timeout, datastore, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterCreateVmHealthTest", Some(&input)).await?;
let result: crate::types::structs::VsanClusterCreateVmHealthTestResult = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_vc_cluster_health_summary(&self, cluster: Option<&crate::types::structs::ManagedObjectReference>, vm_create_timeout: Option<i32>, obj_uuids: Option<&[String]>, include_obj_uuids: Option<bool>, fields: Option<&[String]>, fetch_from_cache: Option<bool>, perspective: Option<&str>, hosts: Option<&[crate::types::structs::ManagedObjectReference]>, spec: Option<&crate::types::structs::VsanClusterHealthQuerySpec>) -> Result<crate::types::structs::VsanClusterHealthSummary> {
let input = VsanQueryVcClusterHealthSummaryRequestType {cluster, vm_create_timeout, obj_uuids, include_obj_uuids, fields, fetch_from_cache, perspective, hosts, spec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterHealthSummary", Some(&input)).await?;
let result: crate::types::structs::VsanClusterHealthSummary = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_vc_cluster_health_summary_task(&self, cluster: &crate::types::structs::ManagedObjectReference, hosts: Option<&[crate::types::structs::ManagedObjectReference]>, include_data_protection_health: Option<bool>, include_online_health: Option<bool>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanQueryVcClusterHealthSummaryTaskRequestType {cluster, hosts, include_data_protection_health, include_online_health, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterHealthSummaryTask", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_cluster_historical_health(&self, spec: &crate::types::structs::VsanHistoricalHealthQuerySpec) -> Result<Option<Vec<crate::types::structs::VsanClusterHealthSummary>>> {
let input = VsanQueryClusterHistoricalHealthRequestType {spec, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryClusterHistoricalHealth", 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_vc_cluster_network_perf_history_test(&self, cluster: &crate::types::structs::ManagedObjectReference, count: Option<i32>, spec: Option<&crate::types::structs::VsanClusterNetworkPerfTaskSpec>) -> Result<Option<Vec<crate::types::structs::VsanClusterNetworkLoadTestResult>>> {
let input = VsanQueryVcClusterNetworkPerfHistoryTestRequestType {cluster, count, spec, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterNetworkPerfHistoryTest", 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_vc_cluster_network_perf_task(&self, cluster: &crate::types::structs::ManagedObjectReference, spec: Option<&crate::types::structs::VsanClusterNetworkPerfTaskSpec>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanQueryVcClusterNetworkPerfTaskRequestType {cluster, spec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterNetworkPerfTask", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_vc_cluster_network_perf_test(&self, cluster: &crate::types::structs::ManagedObjectReference, multicast: bool, duration_sec: Option<i32>) -> Result<crate::types::structs::VsanClusterNetworkLoadTestResult> {
let input = VsanQueryVcClusterNetworkPerfTestRequestType {cluster, multicast, duration_sec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterNetworkPerfTest", Some(&input)).await?;
let result: crate::types::structs::VsanClusterNetworkLoadTestResult = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_vc_cluster_vmdk_load_history_test(&self, cluster: &crate::types::structs::ManagedObjectReference, count: Option<i32>, task_id: Option<&str>) -> Result<Option<Vec<crate::types::structs::VsanClusterVmdkLoadTestResult>>> {
let input = VsanQueryVcClusterVmdkLoadHistoryTestRequestType {cluster, count, task_id, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterVmdkLoadHistoryTest", 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_vc_cluster_vmdk_workload_types(&self) -> Result<Vec<crate::types::structs::VsanStorageWorkloadType>> {
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterVmdkWorkloadTypes", None).await?;
let result: Vec<crate::types::structs::VsanStorageWorkloadType> = crate::core::client::unmarshal_array(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_cluster_query_file_service_health_summary(&self, cluster: &crate::types::structs::ManagedObjectReference, include_file_server_health: Option<bool>, include_file_share_health: Option<bool>) -> Result<Option<crate::types::structs::VsanClusterFileServiceHealthSummary>> {
let input = VsanClusterQueryFileServiceHealthSummaryRequestType {cluster, include_file_server_health, include_file_share_health, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanClusterQueryFileServiceHealthSummary", 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_query_vc_cluster_smart_stats_summary(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<Vec<crate::types::structs::VsanSmartStatsHostSummary>> {
let input = VsanQueryVcClusterSmartStatsSummaryRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterSmartStatsSummary", Some(&input)).await?;
let result: Vec<crate::types::structs::VsanSmartStatsHostSummary> = crate::core::client::unmarshal_array(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_vc_cluster_query_verify_health_system_versions(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<crate::types::structs::VsanClusterHealthSystemVersionResult> {
let input = VsanVcClusterQueryVerifyHealthSystemVersionsRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanVcClusterQueryVerifyHealthSystemVersions", Some(&input)).await?;
let result: crate::types::structs::VsanClusterHealthSystemVersionResult = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_query_vsan_cluster_health_check_interval(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<i32> {
let input = VsanHealthQueryVsanClusterHealthCheckIntervalRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthQueryVsanClusterHealthCheckInterval", Some(&input)).await?;
let result: i32 = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_query_vsan_cluster_health_config(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<crate::types::structs::VsanClusterHealthConfigs> {
let input = VsanHealthQueryVsanClusterHealthConfigRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthQueryVsanClusterHealthConfig", Some(&input)).await?;
let result: crate::types::structs::VsanClusterHealthConfigs = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_query_vc_cluster_obj_ext_attrs(&self, cluster: &crate::types::structs::ManagedObjectReference, uuids: &[String]) -> Result<Option<Vec<crate::types::structs::VsanClusterObjectExtAttrs>>> {
let input = VsanQueryVcClusterObjExtAttrsRequestType {cluster, uuids, };
let bytes_opt = self.client.invoke_optional("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanQueryVcClusterObjExtAttrs", 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_health_query_vsan_proxy_config(&self) -> Result<crate::types::structs::VsanClusterTelemetryProxyConfig> {
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthQueryVsanProxyConfig", None).await?;
let result: crate::types::structs::VsanClusterTelemetryProxyConfig = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_rebalance_cluster(&self, cluster: &crate::types::structs::ManagedObjectReference, target_hosts: Option<&[crate::types::structs::ManagedObjectReference]>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanRebalanceClusterRequestType {cluster, target_hosts, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanRebalanceCluster", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_repair_cluster_objects_immediate(&self, cluster: &crate::types::structs::ManagedObjectReference, uuids: Option<&[String]>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanHealthRepairClusterObjectsImmediateRequestType {cluster, uuids, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthRepairClusterObjectsImmediate", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_vc_cluster_run_vmdk_load_test(&self, cluster: &crate::types::structs::ManagedObjectReference, runname: &str, duration_sec: Option<i32>, specs: Option<&[crate::types::structs::VsanVmdkLoadTestSpec]>, action: Option<&str>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanVcClusterRunVmdkLoadTestRequestType {cluster, runname, duration_sec, specs, action, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanVcClusterRunVmdkLoadTest", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_send_vsan_telemetry(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<()> {
let input = VsanHealthSendVsanTelemetryRequestType {cluster, };
self.client.invoke_void("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthSendVsanTelemetry", Some(&input)).await
}
pub async fn vsan_health_set_log_level(&self, level: Option<&str>) -> Result<()> {
let input = VsanHealthSetLogLevelRequestType {level, };
self.client.invoke_void("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthSetLogLevel", Some(&input)).await
}
pub async fn vsan_health_set_vsan_cluster_health_check_interval(&self, cluster: &crate::types::structs::ManagedObjectReference, vsan_cluster_health_check_interval: i32) -> Result<()> {
let input = VsanHealthSetVsanClusterHealthCheckIntervalRequestType {cluster, vsan_cluster_health_check_interval, };
self.client.invoke_void("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthSetVsanClusterHealthCheckInterval", Some(&input)).await
}
pub async fn vsan_health_set_vsan_cluster_silent_checks(&self, cluster: &crate::types::structs::ManagedObjectReference, add_silent_checks: Option<&[String]>, remove_silent_checks: Option<&[String]>) -> Result<bool> {
let input = VsanHealthSetVsanClusterSilentChecksRequestType {cluster, add_silent_checks, remove_silent_checks, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthSetVsanClusterSilentChecks", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_set_vsan_cluster_telemetry_config(&self, cluster: &crate::types::structs::ManagedObjectReference, vsan_cluster_health_config: &crate::types::structs::VsanClusterHealthConfigs) -> Result<()> {
let input = VsanHealthSetVsanClusterTelemetryConfigRequestType {cluster, vsan_cluster_health_config, };
self.client.invoke_void("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthSetVsanClusterTelemetryConfig", Some(&input)).await
}
pub async fn set_vsan_vcg_mapping_for_hw_devices(&self, spec: &crate::types::structs::VsanHwToVcgInfoMappingSpec) -> Result<bool> {
let input = SetVsanVcgMappingForHwDevicesRequestType {spec, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "SetVsanVcgMappingForHwDevices", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_stop_rebalance_cluster(&self, cluster: &crate::types::structs::ManagedObjectReference, target_hosts: Option<&[crate::types::structs::ManagedObjectReference]>) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanStopRebalanceClusterRequestType {cluster, target_hosts, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanStopRebalanceCluster", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_test_vsan_cluster_telemetry_proxy(&self, proxy_config: &crate::types::structs::VsanClusterTelemetryProxyConfig) -> Result<bool> {
let input = VsanHealthTestVsanClusterTelemetryProxyRequestType {proxy_config, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthTestVsanClusterTelemetryProxy", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_health_update_default_ds_policy_recommendation(&self, cluster: &crate::types::structs::ManagedObjectReference) -> Result<crate::types::structs::ManagedObjectReference> {
let input = VsanHealthUpdateDefaultDsPolicyRecommendationRequestType {cluster, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanHealthUpdateDefaultDSPolicyRecommendation", Some(&input)).await?;
let result: crate::types::structs::ManagedObjectReference = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_vc_update_hcl_db_from_web(&self, url: Option<&str>) -> Result<bool> {
let input = VsanVcUpdateHclDbFromWebRequestType {url, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanVcUpdateHclDbFromWeb", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
pub async fn vsan_vc_upload_hcl_db(&self, db: &str) -> Result<bool> {
let input = VsanVcUploadHclDbRequestType {db, };
let bytes = self.client.invoke("vsan", "VsanVcClusterHealthSystem", &self.mo_id, "VsanVcUploadHclDb", Some(&input)).await?;
let result: bool = crate::core::client::unmarshal(self.client.transport(), &bytes)?;
Ok(result)
}
}
struct VsanAttachVsanSupportBundleToSrRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
sr_number: &'a str,
}
impl<'a> miniserde::Serialize for VsanAttachVsanSupportBundleToSrRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanAttachVsanSupportBundleToSrRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanAttachVsanSupportBundleToSrRequestTypeSer<'b, 'a> {
data: &'b VsanAttachVsanSupportBundleToSrRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanAttachVsanSupportBundleToSrRequestTypeSer<'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"), &"VsanAttachVsanSupportBundleToSrRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("srNumber"), &self.data.sr_number as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanDownloadAndInstallVendorToolRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanDownloadAndInstallVendorToolRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanDownloadAndInstallVendorToolRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanDownloadAndInstallVendorToolRequestTypeSer<'b, 'a> {
data: &'b VsanDownloadAndInstallVendorToolRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanDownloadAndInstallVendorToolRequestTypeSer<'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"), &"VsanDownloadAndInstallVendorToolRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanDownloadHclFileRequestType<'a> {
sha_1_sums: &'a [String],
}
impl<'a> miniserde::Serialize for VsanDownloadHclFileRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanDownloadHclFileRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanDownloadHclFileRequestTypeSer<'b, 'a> {
data: &'b VsanDownloadHclFileRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanDownloadHclFileRequestTypeSer<'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"), &"VsanDownloadHclFileRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("sha1sums"), &self.data.sha_1_sums as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanGetHclConstraintsRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
release: &'a str,
}
impl<'a> miniserde::Serialize for VsanGetHclConstraintsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanGetHclConstraintsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanGetHclConstraintsRequestTypeSer<'b, 'a> {
data: &'b VsanGetHclConstraintsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanGetHclConstraintsRequestTypeSer<'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"), &"VsanGetHclConstraintsRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("release"), &self.data.release as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanVcClusterGetHclInfoRequestType<'a> {
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
include_hosts_result: Option<bool>,
include_vendor_info: Option<bool>,
esx_release: Option<&'a str>,
query_spec: Option<&'a crate::types::structs::VsanHclQuerySpec>,
}
impl<'a> miniserde::Serialize for VsanVcClusterGetHclInfoRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanVcClusterGetHclInfoRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanVcClusterGetHclInfoRequestTypeSer<'b, 'a> {
data: &'b VsanVcClusterGetHclInfoRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanVcClusterGetHclInfoRequestTypeSer<'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"), &"VsanVcClusterGetHclInfoRequestType")),
1 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
2 => {
let Some(ref val) = self.data.include_hosts_result else { continue; };
return Some((std::borrow::Cow::Borrowed("includeHostsResult"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.include_vendor_info else { continue; };
return Some((std::borrow::Cow::Borrowed("includeVendorInfo"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.esx_release else { continue; };
return Some((std::borrow::Cow::Borrowed("esxRelease"), val as &dyn miniserde::Serialize));
}
5 => {
let Some(ref val) = self.data.query_spec else { continue; };
return Some((std::borrow::Cow::Borrowed("querySpec"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanGetReleaseRecommendationRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
minor: &'a [String],
major: &'a [String],
}
impl<'a> miniserde::Serialize for VsanGetReleaseRecommendationRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanGetReleaseRecommendationRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanGetReleaseRecommendationRequestTypeSer<'b, 'a> {
data: &'b VsanGetReleaseRecommendationRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanGetReleaseRecommendationRequestTypeSer<'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"), &"VsanGetReleaseRecommendationRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("minor"), &self.data.minor as &dyn miniserde::Serialize)),
3 => return Some((std::borrow::Cow::Borrowed("major"), &self.data.major as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanGetDiskHclConstraintsRequestType<'a> {
release: Option<&'a str>,
disk_models: Option<&'a [crate::types::structs::VsanDiskModelInfo]>,
}
impl<'a> miniserde::Serialize for VsanGetDiskHclConstraintsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanGetDiskHclConstraintsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanGetDiskHclConstraintsRequestTypeSer<'b, 'a> {
data: &'b VsanGetDiskHclConstraintsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanGetDiskHclConstraintsRequestTypeSer<'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"), &"VsanGetDiskHclConstraintsRequestType")),
1 => {
let Some(ref val) = self.data.release else { continue; };
return Some((std::borrow::Cow::Borrowed("release"), val as &dyn miniserde::Serialize));
}
2 => {
let Some(ref val) = self.data.disk_models else { continue; };
return Some((std::borrow::Cow::Borrowed("diskModels"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanGetHclInfoForEligibleDisksRequestType<'a> {
query_spec: &'a crate::types::structs::VsanHclQuerySpec,
}
impl<'a> miniserde::Serialize for VsanGetHclInfoForEligibleDisksRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanGetHclInfoForEligibleDisksRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanGetHclInfoForEligibleDisksRequestTypeSer<'b, 'a> {
data: &'b VsanGetHclInfoForEligibleDisksRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanGetHclInfoForEligibleDisksRequestTypeSer<'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"), &"VsanGetHclInfoForEligibleDisksRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("querySpec"), &self.data.query_spec as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthGetVsanClusterSilentChecksRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanHealthGetVsanClusterSilentChecksRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthGetVsanClusterSilentChecksRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthGetVsanClusterSilentChecksRequestTypeSer<'b, 'a> {
data: &'b VsanHealthGetVsanClusterSilentChecksRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthGetVsanClusterSilentChecksRequestTypeSer<'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"), &"VsanHealthGetVsanClusterSilentChecksRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthIsRebalanceRunningRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
target_hosts: Option<&'a [crate::types::structs::ManagedObjectReference]>,
}
impl<'a> miniserde::Serialize for VsanHealthIsRebalanceRunningRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthIsRebalanceRunningRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthIsRebalanceRunningRequestTypeSer<'b, 'a> {
data: &'b VsanHealthIsRebalanceRunningRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthIsRebalanceRunningRequestTypeSer<'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"), &"VsanHealthIsRebalanceRunningRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.target_hosts else { continue; };
return Some((std::borrow::Cow::Borrowed("targetHosts"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanPurgeHclFilesRequestType<'a> {
sha_1_sums: &'a [String],
}
impl<'a> miniserde::Serialize for VsanPurgeHclFilesRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanPurgeHclFilesRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanPurgeHclFilesRequestTypeSer<'b, 'a> {
data: &'b VsanPurgeHclFilesRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanPurgeHclFilesRequestTypeSer<'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"), &"VsanPurgeHclFilesRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("sha1sums"), &self.data.sha_1_sums as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanQueryAttachToSrHistoryRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
count: Option<i32>,
task_id: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanQueryAttachToSrHistoryRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryAttachToSrHistoryRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryAttachToSrHistoryRequestTypeSer<'b, 'a> {
data: &'b VsanQueryAttachToSrHistoryRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryAttachToSrHistoryRequestTypeSer<'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"), &"VsanQueryAttachToSrHistoryRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.count else { continue; };
return Some((std::borrow::Cow::Borrowed("count"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.task_id else { continue; };
return Some((std::borrow::Cow::Borrowed("taskId"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterCreateVmHealthHistoryTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
count: Option<i32>,
datastore: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterCreateVmHealthHistoryTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterCreateVmHealthHistoryTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterCreateVmHealthHistoryTestRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterCreateVmHealthHistoryTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterCreateVmHealthHistoryTestRequestTypeSer<'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"), &"VsanQueryVcClusterCreateVmHealthHistoryTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.count else { continue; };
return Some((std::borrow::Cow::Borrowed("count"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.datastore else { continue; };
return Some((std::borrow::Cow::Borrowed("datastore"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterCreateVmHealthTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
timeout: i32,
datastore: Option<&'a crate::types::structs::ManagedObjectReference>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterCreateVmHealthTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterCreateVmHealthTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterCreateVmHealthTestRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterCreateVmHealthTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterCreateVmHealthTestRequestTypeSer<'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"), &"VsanQueryVcClusterCreateVmHealthTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("timeout"), &self.data.timeout as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.datastore else { continue; };
return Some((std::borrow::Cow::Borrowed("datastore"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterHealthSummaryRequestType<'a> {
cluster: Option<&'a crate::types::structs::ManagedObjectReference>,
vm_create_timeout: Option<i32>,
obj_uuids: Option<&'a [String]>,
include_obj_uuids: Option<bool>,
fields: Option<&'a [String]>,
fetch_from_cache: Option<bool>,
perspective: Option<&'a str>,
hosts: Option<&'a [crate::types::structs::ManagedObjectReference]>,
spec: Option<&'a crate::types::structs::VsanClusterHealthQuerySpec>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterHealthSummaryRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterHealthSummaryRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterHealthSummaryRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterHealthSummaryRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterHealthSummaryRequestTypeSer<'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"), &"VsanQueryVcClusterHealthSummaryRequestType")),
1 => {
let Some(ref val) = self.data.cluster else { continue; };
return Some((std::borrow::Cow::Borrowed("cluster"), val as &dyn miniserde::Serialize));
}
2 => {
let Some(ref val) = self.data.vm_create_timeout else { continue; };
return Some((std::borrow::Cow::Borrowed("vmCreateTimeout"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.obj_uuids else { continue; };
return Some((std::borrow::Cow::Borrowed("objUuids"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.include_obj_uuids else { continue; };
return Some((std::borrow::Cow::Borrowed("includeObjUuids"), val as &dyn miniserde::Serialize));
}
5 => {
let Some(ref val) = self.data.fields else { continue; };
return Some((std::borrow::Cow::Borrowed("fields"), val as &dyn miniserde::Serialize));
}
6 => {
let Some(ref val) = self.data.fetch_from_cache else { continue; };
return Some((std::borrow::Cow::Borrowed("fetchFromCache"), val as &dyn miniserde::Serialize));
}
7 => {
let Some(ref val) = self.data.perspective else { continue; };
return Some((std::borrow::Cow::Borrowed("perspective"), val as &dyn miniserde::Serialize));
}
8 => {
let Some(ref val) = self.data.hosts else { continue; };
return Some((std::borrow::Cow::Borrowed("hosts"), val as &dyn miniserde::Serialize));
}
9 => {
let Some(ref val) = self.data.spec else { continue; };
return Some((std::borrow::Cow::Borrowed("spec"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterHealthSummaryTaskRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
hosts: Option<&'a [crate::types::structs::ManagedObjectReference]>,
include_data_protection_health: Option<bool>,
include_online_health: Option<bool>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterHealthSummaryTaskRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterHealthSummaryTaskRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterHealthSummaryTaskRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterHealthSummaryTaskRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterHealthSummaryTaskRequestTypeSer<'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"), &"VsanQueryVcClusterHealthSummaryTaskRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.hosts else { continue; };
return Some((std::borrow::Cow::Borrowed("hosts"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.include_data_protection_health else { continue; };
return Some((std::borrow::Cow::Borrowed("includeDataProtectionHealth"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.include_online_health else { continue; };
return Some((std::borrow::Cow::Borrowed("includeOnlineHealth"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryClusterHistoricalHealthRequestType<'a> {
spec: &'a crate::types::structs::VsanHistoricalHealthQuerySpec,
}
impl<'a> miniserde::Serialize for VsanQueryClusterHistoricalHealthRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryClusterHistoricalHealthRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryClusterHistoricalHealthRequestTypeSer<'b, 'a> {
data: &'b VsanQueryClusterHistoricalHealthRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryClusterHistoricalHealthRequestTypeSer<'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"), &"VsanQueryClusterHistoricalHealthRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("spec"), &self.data.spec as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanQueryVcClusterNetworkPerfHistoryTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
count: Option<i32>,
spec: Option<&'a crate::types::structs::VsanClusterNetworkPerfTaskSpec>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterNetworkPerfHistoryTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterNetworkPerfHistoryTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterNetworkPerfHistoryTestRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterNetworkPerfHistoryTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterNetworkPerfHistoryTestRequestTypeSer<'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"), &"VsanQueryVcClusterNetworkPerfHistoryTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.count else { continue; };
return Some((std::borrow::Cow::Borrowed("count"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.spec else { continue; };
return Some((std::borrow::Cow::Borrowed("spec"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterNetworkPerfTaskRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
spec: Option<&'a crate::types::structs::VsanClusterNetworkPerfTaskSpec>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterNetworkPerfTaskRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterNetworkPerfTaskRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterNetworkPerfTaskRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterNetworkPerfTaskRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterNetworkPerfTaskRequestTypeSer<'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"), &"VsanQueryVcClusterNetworkPerfTaskRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.spec else { continue; };
return Some((std::borrow::Cow::Borrowed("spec"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterNetworkPerfTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
multicast: bool,
duration_sec: Option<i32>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterNetworkPerfTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterNetworkPerfTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterNetworkPerfTestRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterNetworkPerfTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterNetworkPerfTestRequestTypeSer<'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"), &"VsanQueryVcClusterNetworkPerfTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("multicast"), &self.data.multicast as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.duration_sec else { continue; };
return Some((std::borrow::Cow::Borrowed("durationSec"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterVmdkLoadHistoryTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
count: Option<i32>,
task_id: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterVmdkLoadHistoryTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterVmdkLoadHistoryTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterVmdkLoadHistoryTestRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterVmdkLoadHistoryTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterVmdkLoadHistoryTestRequestTypeSer<'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"), &"VsanQueryVcClusterVmdkLoadHistoryTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.count else { continue; };
return Some((std::borrow::Cow::Borrowed("count"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.task_id else { continue; };
return Some((std::borrow::Cow::Borrowed("taskId"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanClusterQueryFileServiceHealthSummaryRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
include_file_server_health: Option<bool>,
include_file_share_health: Option<bool>,
}
impl<'a> miniserde::Serialize for VsanClusterQueryFileServiceHealthSummaryRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanClusterQueryFileServiceHealthSummaryRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanClusterQueryFileServiceHealthSummaryRequestTypeSer<'b, 'a> {
data: &'b VsanClusterQueryFileServiceHealthSummaryRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanClusterQueryFileServiceHealthSummaryRequestTypeSer<'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"), &"VsanClusterQueryFileServiceHealthSummaryRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.include_file_server_health else { continue; };
return Some((std::borrow::Cow::Borrowed("includeFileServerHealth"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.include_file_share_health else { continue; };
return Some((std::borrow::Cow::Borrowed("includeFileShareHealth"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanQueryVcClusterSmartStatsSummaryRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterSmartStatsSummaryRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterSmartStatsSummaryRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterSmartStatsSummaryRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterSmartStatsSummaryRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterSmartStatsSummaryRequestTypeSer<'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"), &"VsanQueryVcClusterSmartStatsSummaryRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanVcClusterQueryVerifyHealthSystemVersionsRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanVcClusterQueryVerifyHealthSystemVersionsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanVcClusterQueryVerifyHealthSystemVersionsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanVcClusterQueryVerifyHealthSystemVersionsRequestTypeSer<'b, 'a> {
data: &'b VsanVcClusterQueryVerifyHealthSystemVersionsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanVcClusterQueryVerifyHealthSystemVersionsRequestTypeSer<'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"), &"VsanVcClusterQueryVerifyHealthSystemVersionsRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthQueryVsanClusterHealthCheckIntervalRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanHealthQueryVsanClusterHealthCheckIntervalRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthQueryVsanClusterHealthCheckIntervalRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthQueryVsanClusterHealthCheckIntervalRequestTypeSer<'b, 'a> {
data: &'b VsanHealthQueryVsanClusterHealthCheckIntervalRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthQueryVsanClusterHealthCheckIntervalRequestTypeSer<'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"), &"VsanHealthQueryVsanClusterHealthCheckIntervalRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthQueryVsanClusterHealthConfigRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanHealthQueryVsanClusterHealthConfigRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthQueryVsanClusterHealthConfigRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthQueryVsanClusterHealthConfigRequestTypeSer<'b, 'a> {
data: &'b VsanHealthQueryVsanClusterHealthConfigRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthQueryVsanClusterHealthConfigRequestTypeSer<'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"), &"VsanHealthQueryVsanClusterHealthConfigRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanQueryVcClusterObjExtAttrsRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
uuids: &'a [String],
}
impl<'a> miniserde::Serialize for VsanQueryVcClusterObjExtAttrsRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanQueryVcClusterObjExtAttrsRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanQueryVcClusterObjExtAttrsRequestTypeSer<'b, 'a> {
data: &'b VsanQueryVcClusterObjExtAttrsRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanQueryVcClusterObjExtAttrsRequestTypeSer<'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"), &"VsanQueryVcClusterObjExtAttrsRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("uuids"), &self.data.uuids as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanRebalanceClusterRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
target_hosts: Option<&'a [crate::types::structs::ManagedObjectReference]>,
}
impl<'a> miniserde::Serialize for VsanRebalanceClusterRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanRebalanceClusterRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanRebalanceClusterRequestTypeSer<'b, 'a> {
data: &'b VsanRebalanceClusterRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanRebalanceClusterRequestTypeSer<'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"), &"VsanRebalanceClusterRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.target_hosts else { continue; };
return Some((std::borrow::Cow::Borrowed("targetHosts"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanHealthRepairClusterObjectsImmediateRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
uuids: Option<&'a [String]>,
}
impl<'a> miniserde::Serialize for VsanHealthRepairClusterObjectsImmediateRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthRepairClusterObjectsImmediateRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthRepairClusterObjectsImmediateRequestTypeSer<'b, 'a> {
data: &'b VsanHealthRepairClusterObjectsImmediateRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthRepairClusterObjectsImmediateRequestTypeSer<'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"), &"VsanHealthRepairClusterObjectsImmediateRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.uuids else { continue; };
return Some((std::borrow::Cow::Borrowed("uuids"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanVcClusterRunVmdkLoadTestRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
runname: &'a str,
duration_sec: Option<i32>,
specs: Option<&'a [crate::types::structs::VsanVmdkLoadTestSpec]>,
action: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanVcClusterRunVmdkLoadTestRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanVcClusterRunVmdkLoadTestRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanVcClusterRunVmdkLoadTestRequestTypeSer<'b, 'a> {
data: &'b VsanVcClusterRunVmdkLoadTestRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanVcClusterRunVmdkLoadTestRequestTypeSer<'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"), &"VsanVcClusterRunVmdkLoadTestRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("runname"), &self.data.runname as &dyn miniserde::Serialize)),
3 => {
let Some(ref val) = self.data.duration_sec else { continue; };
return Some((std::borrow::Cow::Borrowed("durationSec"), val as &dyn miniserde::Serialize));
}
4 => {
let Some(ref val) = self.data.specs else { continue; };
return Some((std::borrow::Cow::Borrowed("specs"), val as &dyn miniserde::Serialize));
}
5 => {
let Some(ref val) = self.data.action else { continue; };
return Some((std::borrow::Cow::Borrowed("action"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanHealthSendVsanTelemetryRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanHealthSendVsanTelemetryRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthSendVsanTelemetryRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthSendVsanTelemetryRequestTypeSer<'b, 'a> {
data: &'b VsanHealthSendVsanTelemetryRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthSendVsanTelemetryRequestTypeSer<'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"), &"VsanHealthSendVsanTelemetryRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthSetLogLevelRequestType<'a> {
level: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanHealthSetLogLevelRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthSetLogLevelRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthSetLogLevelRequestTypeSer<'b, 'a> {
data: &'b VsanHealthSetLogLevelRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthSetLogLevelRequestTypeSer<'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"), &"VsanHealthSetLogLevelRequestType")),
1 => {
let Some(ref val) = self.data.level else { continue; };
return Some((std::borrow::Cow::Borrowed("level"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanHealthSetVsanClusterHealthCheckIntervalRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
vsan_cluster_health_check_interval: i32,
}
impl<'a> miniserde::Serialize for VsanHealthSetVsanClusterHealthCheckIntervalRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthSetVsanClusterHealthCheckIntervalRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthSetVsanClusterHealthCheckIntervalRequestTypeSer<'b, 'a> {
data: &'b VsanHealthSetVsanClusterHealthCheckIntervalRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthSetVsanClusterHealthCheckIntervalRequestTypeSer<'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"), &"VsanHealthSetVsanClusterHealthCheckIntervalRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("vsanClusterHealthCheckInterval"), &self.data.vsan_cluster_health_check_interval as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthSetVsanClusterSilentChecksRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
add_silent_checks: Option<&'a [String]>,
remove_silent_checks: Option<&'a [String]>,
}
impl<'a> miniserde::Serialize for VsanHealthSetVsanClusterSilentChecksRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthSetVsanClusterSilentChecksRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthSetVsanClusterSilentChecksRequestTypeSer<'b, 'a> {
data: &'b VsanHealthSetVsanClusterSilentChecksRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthSetVsanClusterSilentChecksRequestTypeSer<'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"), &"VsanHealthSetVsanClusterSilentChecksRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.add_silent_checks else { continue; };
return Some((std::borrow::Cow::Borrowed("addSilentChecks"), val as &dyn miniserde::Serialize));
}
3 => {
let Some(ref val) = self.data.remove_silent_checks else { continue; };
return Some((std::borrow::Cow::Borrowed("removeSilentChecks"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanHealthSetVsanClusterTelemetryConfigRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
vsan_cluster_health_config: &'a crate::types::structs::VsanClusterHealthConfigs,
}
impl<'a> miniserde::Serialize for VsanHealthSetVsanClusterTelemetryConfigRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthSetVsanClusterTelemetryConfigRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthSetVsanClusterTelemetryConfigRequestTypeSer<'b, 'a> {
data: &'b VsanHealthSetVsanClusterTelemetryConfigRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthSetVsanClusterTelemetryConfigRequestTypeSer<'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"), &"VsanHealthSetVsanClusterTelemetryConfigRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => return Some((std::borrow::Cow::Borrowed("vsanClusterHealthConfig"), &self.data.vsan_cluster_health_config as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct SetVsanVcgMappingForHwDevicesRequestType<'a> {
spec: &'a crate::types::structs::VsanHwToVcgInfoMappingSpec,
}
impl<'a> miniserde::Serialize for SetVsanVcgMappingForHwDevicesRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(SetVsanVcgMappingForHwDevicesRequestTypeSer { data: self, seq: 0 }))
}
}
struct SetVsanVcgMappingForHwDevicesRequestTypeSer<'b, 'a> {
data: &'b SetVsanVcgMappingForHwDevicesRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for SetVsanVcgMappingForHwDevicesRequestTypeSer<'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"), &"SetVsanVcgMappingForHwDevicesRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("spec"), &self.data.spec as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanStopRebalanceClusterRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
target_hosts: Option<&'a [crate::types::structs::ManagedObjectReference]>,
}
impl<'a> miniserde::Serialize for VsanStopRebalanceClusterRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanStopRebalanceClusterRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanStopRebalanceClusterRequestTypeSer<'b, 'a> {
data: &'b VsanStopRebalanceClusterRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanStopRebalanceClusterRequestTypeSer<'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"), &"VsanStopRebalanceClusterRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
2 => {
let Some(ref val) = self.data.target_hosts else { continue; };
return Some((std::borrow::Cow::Borrowed("targetHosts"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanHealthTestVsanClusterTelemetryProxyRequestType<'a> {
proxy_config: &'a crate::types::structs::VsanClusterTelemetryProxyConfig,
}
impl<'a> miniserde::Serialize for VsanHealthTestVsanClusterTelemetryProxyRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthTestVsanClusterTelemetryProxyRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthTestVsanClusterTelemetryProxyRequestTypeSer<'b, 'a> {
data: &'b VsanHealthTestVsanClusterTelemetryProxyRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthTestVsanClusterTelemetryProxyRequestTypeSer<'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"), &"VsanHealthTestVsanClusterTelemetryProxyRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("proxyConfig"), &self.data.proxy_config as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanHealthUpdateDefaultDsPolicyRecommendationRequestType<'a> {
cluster: &'a crate::types::structs::ManagedObjectReference,
}
impl<'a> miniserde::Serialize for VsanHealthUpdateDefaultDsPolicyRecommendationRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanHealthUpdateDefaultDsPolicyRecommendationRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanHealthUpdateDefaultDsPolicyRecommendationRequestTypeSer<'b, 'a> {
data: &'b VsanHealthUpdateDefaultDsPolicyRecommendationRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanHealthUpdateDefaultDsPolicyRecommendationRequestTypeSer<'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"), &"VsanHealthUpdateDefaultDSPolicyRecommendationRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("cluster"), &self.data.cluster as &dyn miniserde::Serialize)),
_ => return None,
}
}
}
struct VsanVcUpdateHclDbFromWebRequestType<'a> {
url: Option<&'a str>,
}
impl<'a> miniserde::Serialize for VsanVcUpdateHclDbFromWebRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanVcUpdateHclDbFromWebRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanVcUpdateHclDbFromWebRequestTypeSer<'b, 'a> {
data: &'b VsanVcUpdateHclDbFromWebRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanVcUpdateHclDbFromWebRequestTypeSer<'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"), &"VsanVcUpdateHclDbFromWebRequestType")),
1 => {
let Some(ref val) = self.data.url else { continue; };
return Some((std::borrow::Cow::Borrowed("url"), val as &dyn miniserde::Serialize));
}
_ => return None,
}
}
}
}
struct VsanVcUploadHclDbRequestType<'a> {
db: &'a str,
}
impl<'a> miniserde::Serialize for VsanVcUploadHclDbRequestType<'a> {
fn begin(&self) -> miniserde::ser::Fragment<'_> {
miniserde::ser::Fragment::Map(Box::new(VsanVcUploadHclDbRequestTypeSer { data: self, seq: 0 }))
}
}
struct VsanVcUploadHclDbRequestTypeSer<'b, 'a> {
data: &'b VsanVcUploadHclDbRequestType<'a>,
seq: usize,
}
impl<'b, 'a> miniserde::ser::Map for VsanVcUploadHclDbRequestTypeSer<'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"), &"VsanVcUploadHclDbRequestType")),
1 => return Some((std::borrow::Cow::Borrowed("db"), &self.data.db as &dyn miniserde::Serialize)),
_ => return None,
}
}
}