use super::vim_object_trait::VimObjectTrait;
use super::convert::CastFrom;
use super::struct_enum::StructType;
use super::structs::*;
miniserde::make_place!(Place);
/// This is the built-in base interface implemented by all
/// data objects.
pub trait DataObjectTrait : super::traits::VimObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DataObjectTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DataObjectTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DataObjectTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DataObject"),
__out: &mut self.out,
}))
}
}
struct DataObjectTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DataObjectTrait>>,
}
impl miniserde::de::Map for DataObjectTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DataObjectTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DataObjectTrait for DataObject {
}
impl DataObjectTrait for AgencyConfigInfo {
}
impl DataObjectTrait for AgencyScope {
}
impl DataObjectTrait for AgencyComputeResourceScope {
}
impl DataObjectTrait for AgencyVmFolder {
}
impl DataObjectTrait for AgencyVmResourcePool {
}
impl DataObjectTrait for AgentConfigInfo {
}
impl DataObjectTrait for AgentOvfEnvironmentInfo {
}
impl DataObjectTrait for AgentOvfEnvironmentInfoOvfProperty {
}
impl DataObjectTrait for AgentSslTrust {
}
impl DataObjectTrait for AgentAnyCertificate {
}
impl DataObjectTrait for AgentPinnedPemCertificate {
}
impl DataObjectTrait for AgentStoragePolicy {
}
impl DataObjectTrait for AgentVsanStoragePolicy {
}
impl DataObjectTrait for AgentVibMatchingRule {
}
impl DataObjectTrait for AgentVmHook {
}
impl DataObjectTrait for EamObjectRuntimeInfo {
}
impl DataObjectTrait for AgentRuntimeInfo {
}
impl DataObjectTrait for Issue {
}
impl DataObjectTrait for AgencyIssue {
}
impl DataObjectTrait for AgencyDisabled {
}
impl DataObjectTrait for AgentIssue {
}
impl DataObjectTrait for EamCertificateNotTrusted {
}
impl DataObjectTrait for HostInPartialMaintenanceMode {
}
impl DataObjectTrait for ManagedHostNotReachable {
}
impl DataObjectTrait for MissingDvFilterSwitch {
}
impl DataObjectTrait for OvfInvalidProperty {
}
impl DataObjectTrait for TransitionFailed {
}
impl DataObjectTrait for VibIssue {
}
impl DataObjectTrait for ImmediateHostRebootRequired {
}
impl DataObjectTrait for VibCannotPutHostInMaintenanceMode {
}
impl DataObjectTrait for VibCannotPutHostOutOfMaintenanceMode {
}
impl DataObjectTrait for VibNotInstalled {
}
impl DataObjectTrait for CannotAccessAgentVib {
}
impl DataObjectTrait for VibDependenciesNotMetByHost {
}
impl DataObjectTrait for VibInvalidFormat {
}
impl DataObjectTrait for VibRequirementsNotMetByHost {
}
impl DataObjectTrait for VibRequiresHostInMaintenanceMode {
}
impl DataObjectTrait for VibRequiresHostReboot {
}
impl DataObjectTrait for VibRequiresManualInstallation {
}
impl DataObjectTrait for VibRequiresManualUninstallation {
}
impl DataObjectTrait for VmIssue {
}
impl DataObjectTrait for InvalidConfig {
}
impl DataObjectTrait for VmCorrupted {
}
impl DataObjectTrait for VmDeployed {
}
impl DataObjectTrait for HostInMaintenanceMode {
}
impl DataObjectTrait for HostInStandbyMode {
}
impl DataObjectTrait for HostPoweredOff {
}
impl DataObjectTrait for VmHookFailed {
}
impl DataObjectTrait for VmHookTimedout {
}
impl DataObjectTrait for VmInaccessible {
}
impl DataObjectTrait for VmMarkedAsTemplate {
}
impl DataObjectTrait for VmOrphaned {
}
impl DataObjectTrait for VmPoweredOff {
}
impl DataObjectTrait for InsufficientIpAddresses {
}
impl DataObjectTrait for MissingAgentIpPool {
}
impl DataObjectTrait for VmPoweredOn {
}
impl DataObjectTrait for VmProtected {
}
impl DataObjectTrait for VmSuspended {
}
impl DataObjectTrait for VmWrongFolder {
}
impl DataObjectTrait for VmWrongResourcePool {
}
impl DataObjectTrait for VmNotDeployed {
}
impl DataObjectTrait for CannotAccessAgentOvf {
}
impl DataObjectTrait for IncompatibleHostVersion {
}
impl DataObjectTrait for InsufficientResources {
}
impl DataObjectTrait for InsufficientSpace {
}
impl DataObjectTrait for NoAgentVmDatastore {
}
impl DataObjectTrait for NoCustomAgentVmDatastore {
}
impl DataObjectTrait for NoAgentVmNetwork {
}
impl DataObjectTrait for NoCustomAgentVmNetwork {
}
impl DataObjectTrait for NoDiscoverableAgentVmDatastore {
}
impl DataObjectTrait for NoDiscoverableAgentVmNetwork {
}
impl DataObjectTrait for OvfInvalidFormat {
}
impl DataObjectTrait for VmRequiresHostOutOfMaintenanceMode {
}
impl DataObjectTrait for PersonalityAgentPmIssue {
}
impl DataObjectTrait for PersonalityAgentAwaitingPmRemediation {
}
impl DataObjectTrait for PersonalityAgentBlockedByAgencyOperation {
}
impl DataObjectTrait for OrphanedAgency {
}
impl DataObjectTrait for ClusterAgentAgentIssue {
}
impl DataObjectTrait for ClusterAgentOvfInvalidProperty {
}
impl DataObjectTrait for ClusterAgentTransitionFailed {
}
impl DataObjectTrait for ClusterAgentVmIssue {
}
impl DataObjectTrait for ClusterAgentHostInMaintenanceMode {
}
impl DataObjectTrait for ClusterAgentHostInPartialMaintenanceMode {
}
impl DataObjectTrait for ClusterAgentInvalidConfig {
}
impl DataObjectTrait for ClusterAgentVmHookFailed {
}
impl DataObjectTrait for ClusterAgentVmHookTimedout {
}
impl DataObjectTrait for ClusterAgentVmInaccessible {
}
impl DataObjectTrait for ClusterAgentVmNotRemoved {
}
impl DataObjectTrait for ClusterAgentVmPoweredOff {
}
impl DataObjectTrait for ClusterAgentInsufficientClusterResources {
}
impl DataObjectTrait for ClusterAgentVmPoweredOn {
}
impl DataObjectTrait for ClusterAgentVmProtected {
}
impl DataObjectTrait for ClusterAgentVmSuspended {
}
impl DataObjectTrait for ClusterAgentVmNotDeployed {
}
impl DataObjectTrait for ClusterAgentCertificateNotTrusted {
}
impl DataObjectTrait for ClusterAgentInsufficientClusterSpace {
}
impl DataObjectTrait for ClusterAgentMissingClusterVmDatastore {
}
impl DataObjectTrait for ClusterAgentMissingClusterVmNetwork {
}
impl DataObjectTrait for IntegrityAgencyVumIssue {
}
impl DataObjectTrait for IntegrityAgencyCannotDeleteSoftware {
}
impl DataObjectTrait for IntegrityAgencyCannotStageSoftware {
}
impl DataObjectTrait for IntegrityAgencyVumUnavailable {
}
impl DataObjectTrait for PersonalityAgencyPmIssue {
}
impl DataObjectTrait for PersonalityAgencyCannotConfigureSolutions {
}
impl DataObjectTrait for PersonalityAgencyDepotIssue {
}
impl DataObjectTrait for PersonalityAgencyCannotUploadDepot {
}
impl DataObjectTrait for PersonalityAgencyInaccessibleDepot {
}
impl DataObjectTrait for PersonalityAgencyInvalidDepot {
}
impl DataObjectTrait for PersonalityAgencyPmUnavailable {
}
impl DataObjectTrait for ExtensibleIssue {
}
impl DataObjectTrait for HostIssue {
}
impl DataObjectTrait for OrphanedDvFilterSwitch {
}
impl DataObjectTrait for UnknownAgentVm {
}
impl DataObjectTrait for HooksHookListSpec {
}
impl DataObjectTrait for HooksMarkAsProcessedSpec {
}
impl DataObjectTrait for SolutionsApplySpec {
}
impl DataObjectTrait for SolutionsClusterSolutionComplianceResult {
}
impl DataObjectTrait for SolutionsComplianceResult {
}
impl DataObjectTrait for SolutionsComplianceSpec {
}
impl DataObjectTrait for SolutionsDeploymentUnitComplianceResult {
}
impl DataObjectTrait for SolutionsHookAcknowledgeConfig {
}
impl DataObjectTrait for SolutionsInteractiveHookAcknowledgeConfig {
}
impl DataObjectTrait for SolutionsHookConfig {
}
impl DataObjectTrait for SolutionsHookInfo {
}
impl DataObjectTrait for SolutionsHostComplianceResult {
}
impl DataObjectTrait for SolutionsOvfProperty {
}
impl DataObjectTrait for SolutionsSolutionComplianceResult {
}
impl DataObjectTrait for SolutionsSolutionConfig {
}
impl DataObjectTrait for SolutionsSolutionValidationResult {
}
impl DataObjectTrait for SolutionsStoragePolicy {
}
impl DataObjectTrait for SolutionsProfileIdStoragePolicy {
}
impl DataObjectTrait for SolutionsTransitionSpec {
}
impl DataObjectTrait for SolutionsTypeSpecificSolutionConfig {
}
impl DataObjectTrait for SolutionsClusterBoundSolutionConfig {
}
impl DataObjectTrait for SolutionsHostBoundSolutionConfig {
}
impl DataObjectTrait for SolutionsVmNetworkMapping {
}
impl DataObjectTrait for SolutionsVmSource {
}
impl DataObjectTrait for SolutionsUrlVmSource {
}
impl DataObjectTrait for SolutionsValidateSpec {
}
impl DataObjectTrait for SolutionsValidationResult {
}
impl DataObjectTrait for SolutionsVmResourceSpec {
}
impl DataObjectTrait for VibVibInfo {
}
impl DataObjectTrait for VibVibInfoSoftwareTags {
}
impl DataObjectTrait for VibVibServicesSslTrust {
}
impl DataObjectTrait for VibVibServicesAnyCertificate {
}
impl DataObjectTrait for VibVibServicesPinnedPemCertificate {
}
impl DataObjectTrait for PbmAboutInfo {
}
impl DataObjectTrait for PbmExtendedElementDescription {
}
impl DataObjectTrait for PbmLoggingConfiguration {
}
impl DataObjectTrait for PbmServerObjectRef {
}
impl DataObjectTrait for PbmServiceInstanceContent {
}
impl DataObjectTrait for PbmCapabilityInstance {
}
impl DataObjectTrait for PbmCapabilityMetadata {
}
impl DataObjectTrait for PbmCapabilityMetadataUniqueId {
}
impl DataObjectTrait for PbmCapabilityConstraintInstance {
}
impl DataObjectTrait for PbmCapabilityPropertyInstance {
}
impl DataObjectTrait for PbmCapabilityPropertyMetadata {
}
impl DataObjectTrait for PbmCapabilityTypeInfo {
}
impl DataObjectTrait for PbmCapabilityGenericTypeInfo {
}
impl DataObjectTrait for PbmCapabilityMetadataPerCategory {
}
impl DataObjectTrait for PbmCapabilitySchema {
}
impl DataObjectTrait for PbmCapabilityNamespaceInfo {
}
impl DataObjectTrait for PbmCapabilitySchemaVendorInfo {
}
impl DataObjectTrait for PbmCapabilityVendorNamespaceInfo {
}
impl DataObjectTrait for PbmCapabilityVendorResourceTypeInfo {
}
impl DataObjectTrait for PbmLineOfServiceInfo {
}
impl DataObjectTrait for PbmPersistenceBasedDataServiceInfo {
}
impl DataObjectTrait for PbmVaioDataServiceInfo {
}
impl DataObjectTrait for PbmCapabilityDescription {
}
impl DataObjectTrait for PbmCapabilityDiscreteSet {
}
impl DataObjectTrait for PbmCapabilityRange {
}
impl DataObjectTrait for PbmCapabilityTimeSpan {
}
impl DataObjectTrait for PbmComplianceResult {
}
impl DataObjectTrait for PbmFetchEntityHealthStatusSpec {
}
impl DataObjectTrait for PbmComplianceOperationalStatus {
}
impl DataObjectTrait for PbmCompliancePolicyStatus {
}
impl DataObjectTrait for PbmRollupComplianceResult {
}
impl DataObjectTrait for PbmFaultNoPermissionEntityPrivileges {
}
impl DataObjectTrait for PbmPlacementCompatibilityResult {
}
impl DataObjectTrait for PbmPlacementMatchingResources {
}
impl DataObjectTrait for PbmPlacementMatchingReplicationResources {
}
impl DataObjectTrait for PbmPlacementHub {
}
impl DataObjectTrait for PbmPlacementRequirement {
}
impl DataObjectTrait for PbmPlacementCapabilityConstraintsRequirement {
}
impl DataObjectTrait for PbmPlacementCapabilityProfileRequirement {
}
impl DataObjectTrait for PbmPlacementResourceUtilization {
}
impl DataObjectTrait for PbmCapabilityProfileCreateSpec {
}
impl DataObjectTrait for PbmCapabilityProfileUpdateSpec {
}
impl DataObjectTrait for PbmCapabilityConstraints {
}
impl DataObjectTrait for PbmCapabilitySubProfileConstraints {
}
impl DataObjectTrait for PbmDataServiceToPoliciesMap {
}
impl DataObjectTrait for PbmDefaultProfileInfo {
}
impl DataObjectTrait for PbmProfile {
}
impl DataObjectTrait for PbmCapabilityProfile {
}
impl DataObjectTrait for PbmDefaultCapabilityProfile {
}
impl DataObjectTrait for PbmProfileId {
}
impl DataObjectTrait for PbmProfileOperationOutcome {
}
impl DataObjectTrait for PbmProfileType {
}
impl DataObjectTrait for PbmQueryProfileResult {
}
impl DataObjectTrait for PbmProfileResourceType {
}
impl DataObjectTrait for PbmCapabilitySubProfile {
}
impl DataObjectTrait for PbmDatastoreSpaceStatistics {
}
impl DataObjectTrait for PbmQueryReplicationGroupResult {
}
impl DataObjectTrait for SmsAboutInfo {
}
impl DataObjectTrait for EntityReference {
}
impl DataObjectTrait for FaultDomainFilter {
}
impl DataObjectTrait for ReplicationGroupFilter {
}
impl DataObjectTrait for SmsTaskInfo {
}
impl DataObjectTrait for AlarmFilter {
}
impl DataObjectTrait for AlarmResult {
}
impl DataObjectTrait for SmsProviderInfo {
}
impl DataObjectTrait for VasaProviderInfo {
}
impl DataObjectTrait for SmsProviderSpec {
}
impl DataObjectTrait for VasaProviderSpec {
}
impl DataObjectTrait for VasaProviderUpgradeSpec {
}
impl DataObjectTrait for RelatedStorageArray {
}
impl DataObjectTrait for SupportedVendorModelMapping {
}
impl DataObjectTrait for BackingConfig {
}
impl DataObjectTrait for BackingStoragePool {
}
impl DataObjectTrait for DatastoreBackingPoolMapping {
}
impl DataObjectTrait for DatastorePair {
}
impl DataObjectTrait for DrsMigrationCapabilityResult {
}
impl DataObjectTrait for FaultDomainProviderMapping {
}
impl DataObjectTrait for StorageFileSystemInfo {
}
impl DataObjectTrait for LunHbaAssociation {
}
impl DataObjectTrait for NameValuePair {
}
impl DataObjectTrait for StorageAlarm {
}
impl DataObjectTrait for StorageArray {
}
impl DataObjectTrait for StorageCapability {
}
impl DataObjectTrait for StorageContainer {
}
impl DataObjectTrait for StorageContainerResult {
}
impl DataObjectTrait for StorageContainerSpec {
}
impl DataObjectTrait for StorageFileSystem {
}
impl DataObjectTrait for StorageLun {
}
impl DataObjectTrait for StoragePort {
}
impl DataObjectTrait for FcStoragePort {
}
impl DataObjectTrait for FcoeStoragePort {
}
impl DataObjectTrait for IscsiStoragePort {
}
impl DataObjectTrait for StorageProcessor {
}
impl DataObjectTrait for DeviceId {
}
impl DataObjectTrait for VVolId {
}
impl DataObjectTrait for VasaVirtualDiskId {
}
impl DataObjectTrait for VirtualDiskKey {
}
impl DataObjectTrait for VirtualDiskMoId {
}
impl DataObjectTrait for VirtualMachineId {
}
impl DataObjectTrait for VirtualMachineFilePath {
}
impl DataObjectTrait for VirtualMachineMoId {
}
impl DataObjectTrait for VirtualMachineUuid {
}
impl DataObjectTrait for FailoverParam {
}
impl DataObjectTrait for TestFailoverParam {
}
impl DataObjectTrait for PolicyAssociation {
}
impl DataObjectTrait for ReplicationGroupData {
}
impl DataObjectTrait for RecoveredDevice {
}
impl DataObjectTrait for RecoveredDiskInfo {
}
impl DataObjectTrait for GroupInfo {
}
impl DataObjectTrait for SourceGroupInfo {
}
impl DataObjectTrait for TargetGroupInfo {
}
impl DataObjectTrait for GroupOperationResult {
}
impl DataObjectTrait for FailoverSuccessResult {
}
impl DataObjectTrait for GroupErrorResult {
}
impl DataObjectTrait for QueryPointInTimeReplicaSuccessResult {
}
impl DataObjectTrait for QueryPointInTimeReplicaSummaryResult {
}
impl DataObjectTrait for QueryReplicationGroupSuccessResult {
}
impl DataObjectTrait for ReverseReplicationSuccessResult {
}
impl DataObjectTrait for SyncReplicationGroupSuccessResult {
}
impl DataObjectTrait for PointInTimeReplicaId {
}
impl DataObjectTrait for PromoteParam {
}
impl DataObjectTrait for QueryPointInTimeReplicaParam {
}
impl DataObjectTrait for ReplicaQueryIntervalParam {
}
impl DataObjectTrait for PointInTimeReplicaInfo {
}
impl DataObjectTrait for ReplicaIntervalQueryResult {
}
impl DataObjectTrait for QueryReplicationPeerResult {
}
impl DataObjectTrait for ReplicaId {
}
impl DataObjectTrait for ReplicationTargetInfo {
}
impl DataObjectTrait for SourceGroupMemberInfo {
}
impl DataObjectTrait for TargetDeviceId {
}
impl DataObjectTrait for TargetToSourceInfo {
}
impl DataObjectTrait for TargetGroupMemberInfo {
}
impl DataObjectTrait for RecoveredTargetGroupMemberInfo {
}
impl DataObjectTrait for AboutInfo {
}
impl DataObjectTrait for AuthorizationDescription {
}
impl DataObjectTrait for EntityPrivilege {
}
impl DataObjectTrait for Permission {
}
impl DataObjectTrait for AuthorizationPrivilege {
}
impl DataObjectTrait for PrivilegeAvailability {
}
impl DataObjectTrait for AuthorizationRole {
}
impl DataObjectTrait for UserPrivilegeResult {
}
impl DataObjectTrait for BatchResult {
}
impl DataObjectTrait for Capability {
}
impl DataObjectTrait for ClusterComputeResourceClusterConfigResult {
}
impl DataObjectTrait for ClusterComputeResourceCryptoModePolicy {
}
impl DataObjectTrait for ClusterComputeResourceDvsSetting {
}
impl DataObjectTrait for ClusterComputeResourceDvsSettingDvPortgroupToServiceMapping {
}
impl DataObjectTrait for ClusterComputeResourceDvsProfile {
}
impl DataObjectTrait for ClusterComputeResourceDvsProfileDvPortgroupSpecToServiceMapping {
}
impl DataObjectTrait for ClusterComputeResourceHciConfigInfo {
}
impl DataObjectTrait for ClusterComputeResourceHciConfigSpec {
}
impl DataObjectTrait for ClusterComputeResourceHostConfigurationInput {
}
impl DataObjectTrait for ClusterComputeResourceHostConfigurationProfile {
}
impl DataObjectTrait for ClusterComputeResourceHostEvacuationInfo {
}
impl DataObjectTrait for ClusterComputeResourceHostVmkNicInfo {
}
impl DataObjectTrait for ClusterComputeResourceMaintenanceInfo {
}
impl DataObjectTrait for ClusterComputeResourceVcProfile {
}
impl DataObjectTrait for ClusterComputeResourceValidationResultBase {
}
impl DataObjectTrait for ClusterComputeResourceDvsConfigurationValidation {
}
impl DataObjectTrait for ClusterComputeResourceHostConfigurationValidation {
}
impl DataObjectTrait for VsanClusterConfigPrecheckItem {
}
impl DataObjectTrait for ClusterComputeResourceVcsSlots {
}
impl DataObjectTrait for ComputeResourceConfigInfo {
}
impl DataObjectTrait for ClusterConfigInfoEx {
}
impl DataObjectTrait for ComputeResourceConfigSpec {
}
impl DataObjectTrait for ClusterConfigSpecEx {
}
impl DataObjectTrait for ComputeResourceHostSpbmLicenseInfo {
}
impl DataObjectTrait for ComputeResourceHostSeedSpec {
}
impl DataObjectTrait for ComputeResourceHostSeedSpecSingleHostSpec {
}
impl DataObjectTrait for ComputeResourceSummary {
}
impl DataObjectTrait for ClusterComputeResourceSummary {
}
impl DataObjectTrait for CustomFieldDef {
}
impl DataObjectTrait for CustomFieldValue {
}
impl DataObjectTrait for CustomFieldStringValue {
}
impl DataObjectTrait for CustomizationSpecInfo {
}
impl DataObjectTrait for CustomizationSpecItem {
}
impl DataObjectTrait for DatacenterBasicConnectInfo {
}
impl DataObjectTrait for DatacenterConfigInfo {
}
impl DataObjectTrait for DatacenterConfigSpec {
}
impl DataObjectTrait for DatastoreCapability {
}
impl DataObjectTrait for DatastoreHostMount {
}
impl DataObjectTrait for DatastoreInfo {
}
impl DataObjectTrait for LocalDatastoreInfo {
}
impl DataObjectTrait for NasDatastoreInfo {
}
impl DataObjectTrait for PMemDatastoreInfo {
}
impl DataObjectTrait for VmfsDatastoreInfo {
}
impl DataObjectTrait for VsanDatastoreInfo {
}
impl DataObjectTrait for VvolDatastoreInfo {
}
impl DataObjectTrait for DatastoreMountPathDatastorePair {
}
impl DataObjectTrait for DatastoreSummary {
}
impl DataObjectTrait for DatastoreVVolContainerFailoverPair {
}
impl DataObjectTrait for DatastoreNamespaceManagerDirectoryInfo {
}
impl DataObjectTrait for Description {
}
impl DataObjectTrait for ElementDescription {
}
impl DataObjectTrait for EvcMode {
}
impl DataObjectTrait for ExtendedElementDescription {
}
impl DataObjectTrait for FeatureEvcMode {
}
impl DataObjectTrait for OptionDef {
}
impl DataObjectTrait for ExtendedDescription {
}
impl DataObjectTrait for MethodDescription {
}
impl DataObjectTrait for TypeDescription {
}
impl DataObjectTrait for ScheduledTaskDetail {
}
impl DataObjectTrait for DesiredSoftwareSpec {
}
impl DataObjectTrait for DesiredSoftwareSpecBaseImageSpec {
}
impl DataObjectTrait for DesiredSoftwareSpecComponentSpec {
}
impl DataObjectTrait for DesiredSoftwareSpecVendorAddOnSpec {
}
impl DataObjectTrait for DiagnosticManagerAuditRecordResult {
}
impl DataObjectTrait for DiagnosticManagerBundleInfo {
}
impl DataObjectTrait for DiagnosticManagerLogDescriptor {
}
impl DataObjectTrait for DiagnosticManagerLogHeader {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityQuerySpec {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityQueryByDeviceConfig {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityQueryById {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityQueryByName {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityResult {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityInfo {
}
impl DataObjectTrait for DirectPathProfileManagerCapacityUnknown {
}
impl DataObjectTrait for DirectPathProfileManagerCreateSpec {
}
impl DataObjectTrait for DirectPathProfileManagerDirectPathConfig {
}
impl DataObjectTrait for DirectPathProfileManagerDvxDirectPathConfig {
}
impl DataObjectTrait for DirectPathProfileManagerDynamicDirectPathConfig {
}
impl DataObjectTrait for DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig {
}
impl DataObjectTrait for DirectPathProfileManagerVmiopDirectPathConfig {
}
impl DataObjectTrait for DirectPathProfileInfo {
}
impl DataObjectTrait for DirectPathProfileManagerFilterSpec {
}
impl DataObjectTrait for DirectPathProfileManagerTargetEntity {
}
impl DataObjectTrait for DirectPathProfileManagerTargetCluster {
}
impl DataObjectTrait for DirectPathProfileManagerTargetHost {
}
impl DataObjectTrait for DirectPathProfileManagerUpdateSpec {
}
impl DataObjectTrait for DvsBackupRestoreCapability {
}
impl DataObjectTrait for DvsCapability {
}
impl DataObjectTrait for DvsConfigInfo {
}
impl DataObjectTrait for VMwareDvsConfigInfo {
}
impl DataObjectTrait for DvsConfigSpec {
}
impl DataObjectTrait for VMwareDvsConfigSpec {
}
impl DataObjectTrait for DvsContactInfo {
}
impl DataObjectTrait for DvsCreateSpec {
}
impl DataObjectTrait for DvsFeatureCapability {
}
impl DataObjectTrait for VMwareDvsFeatureCapability {
}
impl DataObjectTrait for DvsHealthCheckConfig {
}
impl DataObjectTrait for VMwareDvsHealthCheckConfig {
}
impl DataObjectTrait for VMwareDvsTeamingHealthCheckConfig {
}
impl DataObjectTrait for VMwareDvsVlanMtuHealthCheckConfig {
}
impl DataObjectTrait for DvsHealthCheckCapability {
}
impl DataObjectTrait for VMwareDvsHealthCheckCapability {
}
impl DataObjectTrait for DvsHostInfrastructureTrafficResource {
}
impl DataObjectTrait for DvsHostInfrastructureTrafficResourceAllocation {
}
impl DataObjectTrait for DvsNetworkResourceManagementCapability {
}
impl DataObjectTrait for DvsResourceRuntimeInfo {
}
impl DataObjectTrait for DvsRollbackCapability {
}
impl DataObjectTrait for DvsRuntimeInfo {
}
impl DataObjectTrait for DvsSummary {
}
impl DataObjectTrait for DvsPolicy {
}
impl DataObjectTrait for DvsUplinkPortPolicy {
}
impl DataObjectTrait for DvsNameArrayUplinkPortPolicy {
}
impl DataObjectTrait for EnumDescription {
}
impl DataObjectTrait for EnvironmentBrowserConfigOptionQuerySpec {
}
impl DataObjectTrait for Extension {
}
impl DataObjectTrait for ExtensionClientInfo {
}
impl DataObjectTrait for ExtensionEventTypeInfo {
}
impl DataObjectTrait for ExtensionFaultTypeInfo {
}
impl DataObjectTrait for ExtensionHealthInfo {
}
impl DataObjectTrait for ExtensionOvfConsumerInfo {
}
impl DataObjectTrait for ExtensionPrivilegeInfo {
}
impl DataObjectTrait for ExtensionResourceInfo {
}
impl DataObjectTrait for ExtensionServerInfo {
}
impl DataObjectTrait for ExtensionTaskTypeInfo {
}
impl DataObjectTrait for ExtensionManagerIpAllocationUsage {
}
impl DataObjectTrait for FaultsByHost {
}
impl DataObjectTrait for FaultsByVm {
}
impl DataObjectTrait for FileLockInfo {
}
impl DataObjectTrait for FileLockInfoResult {
}
impl DataObjectTrait for FolderBatchAddHostsToClusterResult {
}
impl DataObjectTrait for FolderBatchAddStandaloneHostsResult {
}
impl DataObjectTrait for FolderExternallyManagedFolderInfo {
}
impl DataObjectTrait for FolderFailedHostResult {
}
impl DataObjectTrait for FolderNewHostSpec {
}
impl DataObjectTrait for HbrManagerReplicationVmInfo {
}
impl DataObjectTrait for ReplicationVmProgressInfo {
}
impl DataObjectTrait for HbrManagerVmReplicationCapability {
}
impl DataObjectTrait for HbrReplicationTargetSpec {
}
impl DataObjectTrait for HbrTargetSpecReplacement {
}
impl DataObjectTrait for HbrTargetSpec {
}
impl DataObjectTrait for HealthUpdate {
}
impl DataObjectTrait for HealthUpdateInfo {
}
impl DataObjectTrait for PerfInterval {
}
impl DataObjectTrait for HostServiceTicket {
}
impl DataObjectTrait for HostSystemComplianceCheckState {
}
impl DataObjectTrait for HostSystemReconnectSpec {
}
impl DataObjectTrait for HostSystemRemediationState {
}
impl DataObjectTrait for HttpNfcLeaseCapabilities {
}
impl DataObjectTrait for HttpNfcLeaseDatastoreLeaseInfo {
}
impl DataObjectTrait for HttpNfcLeaseDeviceUrl {
}
impl DataObjectTrait for HttpNfcLeaseHostInfo {
}
impl DataObjectTrait for HttpNfcLeaseInfo {
}
impl DataObjectTrait for HttpNfcLeaseManifestEntry {
}
impl DataObjectTrait for HttpNfcLeaseProbeResult {
}
impl DataObjectTrait for HttpNfcLeaseSourceFile {
}
impl DataObjectTrait for ImportSpec {
}
impl DataObjectTrait for VirtualAppImportSpec {
}
impl DataObjectTrait for VirtualMachineImportSpec {
}
impl DataObjectTrait for InheritablePolicy {
}
impl DataObjectTrait for BoolPolicy {
}
impl DataObjectTrait for IntPolicy {
}
impl DataObjectTrait for LongPolicy {
}
impl DataObjectTrait for StringPolicy {
}
impl DataObjectTrait for DvsFilterConfig {
}
impl DataObjectTrait for DvsFilterConfigSpec {
}
impl DataObjectTrait for DvsTrafficFilterConfig {
}
impl DataObjectTrait for DvsTrafficFilterConfigSpec {
}
impl DataObjectTrait for DvsFilterPolicy {
}
impl DataObjectTrait for DvsTrafficShapingPolicy {
}
impl DataObjectTrait for DvsVendorSpecificConfig {
}
impl DataObjectTrait for DvsFailureCriteria {
}
impl DataObjectTrait for DvsMacLearningPolicy {
}
impl DataObjectTrait for DvsMacManagementPolicy {
}
impl DataObjectTrait for DvsSecurityPolicy {
}
impl DataObjectTrait for VMwareUplinkLacpPolicy {
}
impl DataObjectTrait for VMwareUplinkPortOrderPolicy {
}
impl DataObjectTrait for VmwareUplinkPortTeamingPolicy {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchVlanSpec {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchPvlanSpec {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchTrunkVlanSpec {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchVlanIdSpec {
}
impl DataObjectTrait for IoFilterInfo {
}
impl DataObjectTrait for ClusterIoFilterInfo {
}
impl DataObjectTrait for HostIoFilterInfo {
}
impl DataObjectTrait for IoFilterQueryIssueResult {
}
impl DataObjectTrait for IoFilterHostIssue {
}
impl DataObjectTrait for IoFilterManagerSslTrust {
}
impl DataObjectTrait for PinnedCertificate {
}
impl DataObjectTrait for UntrustedCertificate {
}
impl DataObjectTrait for IpPoolManagerIpAllocation {
}
impl DataObjectTrait for KeyValue {
}
impl DataObjectTrait for LatencySensitivity {
}
impl DataObjectTrait for LicenseAssignmentManagerLicenseAssignment {
}
impl DataObjectTrait for LicenseAvailabilityInfo {
}
impl DataObjectTrait for LicenseDiagnostics {
}
impl DataObjectTrait for LicenseManagerEvaluationInfo {
}
impl DataObjectTrait for LicenseFeatureInfo {
}
impl DataObjectTrait for HostLicensableResourceInfo {
}
impl DataObjectTrait for LicenseManagerLicenseInfo {
}
impl DataObjectTrait for LicenseSource {
}
impl DataObjectTrait for EvaluationLicenseSource {
}
impl DataObjectTrait for LicenseServerSource {
}
impl DataObjectTrait for LocalLicenseSource {
}
impl DataObjectTrait for LicenseUsageInfo {
}
impl DataObjectTrait for LicenseReservationInfo {
}
impl DataObjectTrait for LocalizationManagerMessageCatalog {
}
impl DataObjectTrait for NegatableExpression {
}
impl DataObjectTrait for IntExpression {
}
impl DataObjectTrait for IpAddress {
}
impl DataObjectTrait for IpRange {
}
impl DataObjectTrait for SingleIp {
}
impl DataObjectTrait for MacAddress {
}
impl DataObjectTrait for MacRange {
}
impl DataObjectTrait for SingleMac {
}
impl DataObjectTrait for StringExpression {
}
impl DataObjectTrait for DvsIpPort {
}
impl DataObjectTrait for DvsIpPortRange {
}
impl DataObjectTrait for DvsSingleIpPort {
}
impl DataObjectTrait for NetworkSummary {
}
impl DataObjectTrait for OpaqueNetworkSummary {
}
impl DataObjectTrait for NumericRange {
}
impl DataObjectTrait for OpaqueNetworkCapability {
}
impl DataObjectTrait for OvfConsumerOstNode {
}
impl DataObjectTrait for OvfConsumerOvfSection {
}
impl DataObjectTrait for OvfManagerCommonParams {
}
impl DataObjectTrait for OvfCreateImportSpecParams {
}
impl DataObjectTrait for OvfImportParams {
}
impl DataObjectTrait for OvfParseDescriptorParams {
}
impl DataObjectTrait for OvfValidateHostParams {
}
impl DataObjectTrait for OvfCreateDescriptorParams {
}
impl DataObjectTrait for OvfCreateDescriptorResult {
}
impl DataObjectTrait for OvfCreateImportSpecResult {
}
impl DataObjectTrait for OvfDatastoreMapping {
}
impl DataObjectTrait for OvfDeploymentOption {
}
impl DataObjectTrait for OvfFileItem {
}
impl DataObjectTrait for OvfNetworkInfo {
}
impl DataObjectTrait for OvfNetworkMapping {
}
impl DataObjectTrait for OvfFile {
}
impl DataObjectTrait for OvfOptionInfo {
}
impl DataObjectTrait for OvfParseDescriptorResult {
}
impl DataObjectTrait for OvfResourceMap {
}
impl DataObjectTrait for OvfStorageProfileMapping {
}
impl DataObjectTrait for OvfValidateHostResult {
}
impl DataObjectTrait for PasswordField {
}
impl DataObjectTrait for PerformanceDescription {
}
impl DataObjectTrait for PerfCompositeMetric {
}
impl DataObjectTrait for PerfCounterInfo {
}
impl DataObjectTrait for PerformanceManagerCounterLevelMapping {
}
impl DataObjectTrait for PerfEntityMetricBase {
}
impl DataObjectTrait for PerfEntityMetric {
}
impl DataObjectTrait for PerfEntityMetricCsv {
}
impl DataObjectTrait for PerfMetricId {
}
impl DataObjectTrait for PerfMetricSeries {
}
impl DataObjectTrait for PerfMetricIntSeries {
}
impl DataObjectTrait for PerfMetricSeriesCsv {
}
impl DataObjectTrait for PerfProviderSummary {
}
impl DataObjectTrait for PerfQuerySpec {
}
impl DataObjectTrait for PerfSampleInfo {
}
impl DataObjectTrait for PrivilegePolicyDef {
}
impl DataObjectTrait for ResourceAllocationInfo {
}
impl DataObjectTrait for ResourceAllocationOption {
}
impl DataObjectTrait for ResourceConfigOption {
}
impl DataObjectTrait for ResourceConfigSpec {
}
impl DataObjectTrait for DatabaseSizeEstimate {
}
impl DataObjectTrait for DatabaseSizeParam {
}
impl DataObjectTrait for InventoryDescription {
}
impl DataObjectTrait for PerformanceStatisticsDescription {
}
impl DataObjectTrait for ResourcePoolResourceUsage {
}
impl DataObjectTrait for ResourcePoolRuntimeInfo {
}
impl DataObjectTrait for ResourcePoolSummary {
}
impl DataObjectTrait for VirtualAppSummary {
}
impl DataObjectTrait for ResourcePoolQuickStats {
}
impl DataObjectTrait for SddcBase {
}
impl DataObjectTrait for VimVsanReconfigSpec {
}
impl DataObjectTrait for SelectionSet {
}
impl DataObjectTrait for DvPortgroupSelection {
}
impl DataObjectTrait for DvsSelection {
}
impl DataObjectTrait for HostVMotionCompatibility {
}
impl DataObjectTrait for ProductComponentInfo {
}
impl DataObjectTrait for ServiceContent {
}
impl DataObjectTrait for ServiceLocator {
}
impl DataObjectTrait for ServiceLocatorCredential {
}
impl DataObjectTrait for ServiceLocatorNamePassword {
}
impl DataObjectTrait for ServiceLocatorSamlCredential {
}
impl DataObjectTrait for ServiceManagerServiceInfo {
}
impl DataObjectTrait for SessionManagerGenericServiceTicket {
}
impl DataObjectTrait for SessionManagerLocalTicket {
}
impl DataObjectTrait for SessionManagerServiceRequestSpec {
}
impl DataObjectTrait for SessionManagerHttpServiceRequestSpec {
}
impl DataObjectTrait for SessionManagerVmomiServiceRequestSpec {
}
impl DataObjectTrait for SharesInfo {
}
impl DataObjectTrait for SharesOption {
}
impl DataObjectTrait for SiteInfo {
}
impl DataObjectTrait for StoragePodSummary {
}
impl DataObjectTrait for StorageIoAllocationInfo {
}
impl DataObjectTrait for StorageIoAllocationOption {
}
impl DataObjectTrait for StorageIormInfo {
}
impl DataObjectTrait for StorageIormConfigOption {
}
impl DataObjectTrait for StorageIormConfigSpec {
}
impl DataObjectTrait for PodStorageDrsEntry {
}
impl DataObjectTrait for StoragePerformanceSummary {
}
impl DataObjectTrait for StorageResourceManagerStorageProfileStatistics {
}
impl DataObjectTrait for Tag {
}
impl DataObjectTrait for TaskDescription {
}
impl DataObjectTrait for TaskFilterSpec {
}
impl DataObjectTrait for TaskFilterSpecByEntity {
}
impl DataObjectTrait for TaskFilterSpecByTime {
}
impl DataObjectTrait for TaskFilterSpecByUsername {
}
impl DataObjectTrait for TaskInfo {
}
impl DataObjectTrait for TaskInfoFilterSpec {
}
impl DataObjectTrait for TaskInfoFilterSpecFilterTaskResults {
}
impl DataObjectTrait for TaskManagerTaskViewSpec {
}
impl DataObjectTrait for TaskManagerViewByStartId {
}
impl DataObjectTrait for TaskReason {
}
impl DataObjectTrait for TaskReasonAlarm {
}
impl DataObjectTrait for TaskReasonSchedule {
}
impl DataObjectTrait for TaskReasonSystem {
}
impl DataObjectTrait for TaskReasonUser {
}
impl DataObjectTrait for UpdateVirtualMachineFilesResult {
}
impl DataObjectTrait for UpdateVirtualMachineFilesResultFailedVmFileInfo {
}
impl DataObjectTrait for UserSearchResult {
}
impl DataObjectTrait for PosixUserSearchResult {
}
impl DataObjectTrait for UserSession {
}
impl DataObjectTrait for VVolVmConfigFileUpdateResult {
}
impl DataObjectTrait for VVolVmConfigFileUpdateResultFailedVmConfigFileInfo {
}
impl DataObjectTrait for VasaStorageArray {
}
impl DataObjectTrait for VasaStorageArrayDiscoveryFcTransport {
}
impl DataObjectTrait for VasaStorageArrayDiscoveryIpTransport {
}
impl DataObjectTrait for VasaStorageArrayDiscoverySvcInfo {
}
impl DataObjectTrait for VasaProviderContainerSpec {
}
impl DataObjectTrait for VimVasaProvider {
}
impl DataObjectTrait for VimVasaProviderStatePerArray {
}
impl DataObjectTrait for VimVasaProviderVirtualHostConfig {
}
impl DataObjectTrait for VimVasaProviderInfo {
}
impl DataObjectTrait for VirtualAppLinkInfo {
}
impl DataObjectTrait for VirtualDiskSpec {
}
impl DataObjectTrait for DeviceBackedVirtualDiskSpec {
}
impl DataObjectTrait for FileBackedVirtualDiskSpec {
}
impl DataObjectTrait for SeSparseVirtualDiskSpec {
}
impl DataObjectTrait for VirtualMachineConnection {
}
impl DataObjectTrait for VirtualMachineMksConnection {
}
impl DataObjectTrait for DiskChangeInfo {
}
impl DataObjectTrait for DiskChangeExtent {
}
impl DataObjectTrait for VirtualMachineDisplayTopology {
}
impl DataObjectTrait for VirtualMachineMksTicket {
}
impl DataObjectTrait for StorageRequirement {
}
impl DataObjectTrait for VirtualMachineTicket {
}
impl DataObjectTrait for VirtualMachineWipeResult {
}
impl DataObjectTrait for VsanComparator {
}
impl DataObjectTrait for VsanJsonComparator {
}
impl DataObjectTrait for VsanNestJsonComparator {
}
impl DataObjectTrait for VsanDataObfuscationRule {
}
impl DataObjectTrait for VsanJsonFilterRule {
}
impl DataObjectTrait for VsanMassCollectorPropertyParams {
}
impl DataObjectTrait for VsanMassCollectorSpec {
}
impl DataObjectTrait for VsanObjectTypeRule {
}
impl DataObjectTrait for VsanRegexBasedRule {
}
impl DataObjectTrait for VsanResourceConstraint {
}
impl DataObjectTrait for VsanCompositeConstraint {
}
impl DataObjectTrait for VsanPropertyConstraint {
}
impl DataObjectTrait for VsanUpgradeSystemNetworkPartitionInfo {
}
impl DataObjectTrait for VsanUpgradeSystemPreflightCheckIssue {
}
impl DataObjectTrait for VsanUpgradeSystemApiBrokenIssue {
}
impl DataObjectTrait for VsanUpgradeSystemAutoClaimEnabledOnHostsIssue {
}
impl DataObjectTrait for VsanUpgradeSystemHostsDisconnectedIssue {
}
impl DataObjectTrait for VsanUpgradeSystemMissingHostsInClusterIssue {
}
impl DataObjectTrait for VsanUpgradeSystemNetworkPartitionIssue {
}
impl DataObjectTrait for VsanUpgradeSystemNotEnoughFreeCapacityIssue {
}
impl DataObjectTrait for VsanUpgradeSystemRogueHostsInClusterIssue {
}
impl DataObjectTrait for VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue {
}
impl DataObjectTrait for VsanUpgradeSystemWrongEsxVersionIssue {
}
impl DataObjectTrait for VsanBrokenDiskChainIssue {
}
impl DataObjectTrait for VsanDisallowDataMovementIssue {
}
impl DataObjectTrait for VsanDisallowEvacuateDataIssue {
}
impl DataObjectTrait for VsanDiskUnhealthIssue {
}
impl DataObjectTrait for VsanHigherObjectsPresentDuringDowngradeIssue {
}
impl DataObjectTrait for VsanHostPropertyRetrieveIssue {
}
impl DataObjectTrait for VsanHostWithHybridDiskgroupIssue {
}
impl DataObjectTrait for VsanHostsCompressionOnlyNotSupported {
}
impl DataObjectTrait for VsanMixedEsxVersionInClientIssue {
}
impl DataObjectTrait for VsanMixedEsxVersionIssue {
}
impl DataObjectTrait for VsanObjectInaccessibleIssue {
}
impl DataObjectTrait for VsanObjectPolicyIssue {
}
impl DataObjectTrait for VsanRemoteClusterNotCompatible {
}
impl DataObjectTrait for VsanUnknownScanIssue {
}
impl DataObjectTrait for VsanUnsupportedHighDiskVersionIssue {
}
impl DataObjectTrait for VsanUpgradeSystemPreflightCheckResult {
}
impl DataObjectTrait for VsanDiskFormatConversionCheckResult {
}
impl DataObjectTrait for VsanUpgradeSystemUpgradeHistoryItem {
}
impl DataObjectTrait for VsanUpgradeSystemUpgradeHistoryDiskGroupOp {
}
impl DataObjectTrait for VsanUpgradeSystemUpgradeHistoryPreflightFail {
}
impl DataObjectTrait for VsanUpgradeSystemUpgradeHistoryStoragePoolOp {
}
impl DataObjectTrait for VsanUpgradeSystemUpgradeStatus {
}
impl DataObjectTrait for VsanUpgradeStatusEx {
}
impl DataObjectTrait for Action {
}
impl DataObjectTrait for CreateTaskAction {
}
impl DataObjectTrait for MethodAction {
}
impl DataObjectTrait for RunScriptAction {
}
impl DataObjectTrait for SendEmailAction {
}
impl DataObjectTrait for SendSnmpAction {
}
impl DataObjectTrait for MethodActionArgument {
}
impl DataObjectTrait for AlarmAction {
}
impl DataObjectTrait for AlarmTriggeringAction {
}
impl DataObjectTrait for GroupAlarmAction {
}
impl DataObjectTrait for AlarmDescription {
}
impl DataObjectTrait for AlarmExpression {
}
impl DataObjectTrait for AndAlarmExpression {
}
impl DataObjectTrait for EventAlarmExpression {
}
impl DataObjectTrait for MetricAlarmExpression {
}
impl DataObjectTrait for OrAlarmExpression {
}
impl DataObjectTrait for StateAlarmExpression {
}
impl DataObjectTrait for AlarmFilterSpec {
}
impl DataObjectTrait for AlarmSetting {
}
impl DataObjectTrait for AlarmSpec {
}
impl DataObjectTrait for AlarmInfo {
}
impl DataObjectTrait for AlarmState {
}
impl DataObjectTrait for AlarmTriggeringActionTransitionSpec {
}
impl DataObjectTrait for EventAlarmExpressionComparison {
}
impl DataObjectTrait for ClusterAction {
}
impl DataObjectTrait for ClusterClusterInitialPlacementAction {
}
impl DataObjectTrait for ClusterHostInfraUpdateHaModeAction {
}
impl DataObjectTrait for ClusterHostPowerAction {
}
impl DataObjectTrait for ClusterInitialPlacementAction {
}
impl DataObjectTrait for ClusterMigrationAction {
}
impl DataObjectTrait for PlacementAction {
}
impl DataObjectTrait for HbrDiskMigrationAction {
}
impl DataObjectTrait for StorageMigrationAction {
}
impl DataObjectTrait for StoragePlacementAction {
}
impl DataObjectTrait for ClusterActionHistory {
}
impl DataObjectTrait for ClusterAttemptedVmInfo {
}
impl DataObjectTrait for ClusterPowerContext {
}
impl DataObjectTrait for ClusterConfigInfo {
}
impl DataObjectTrait for ClusterConfigSpec {
}
impl DataObjectTrait for ClusterCryptoConfigInfo {
}
impl DataObjectTrait for ClusterDasAamNodeState {
}
impl DataObjectTrait for ClusterDasAdmissionControlInfo {
}
impl DataObjectTrait for ClusterFailoverHostAdmissionControlInfo {
}
impl DataObjectTrait for ClusterFailoverLevelAdmissionControlInfo {
}
impl DataObjectTrait for ClusterFailoverResourcesAdmissionControlInfo {
}
impl DataObjectTrait for ClusterDasAdmissionControlPolicy {
}
impl DataObjectTrait for ClusterFailoverHostAdmissionControlPolicy {
}
impl DataObjectTrait for ClusterFailoverLevelAdmissionControlPolicy {
}
impl DataObjectTrait for ClusterFailoverResourcesAdmissionControlPolicy {
}
impl DataObjectTrait for ClusterDasAdvancedRuntimeInfo {
}
impl DataObjectTrait for ClusterDasFailoverLevelAdvancedRuntimeInfo {
}
impl DataObjectTrait for DasHeartbeatDatastoreInfo {
}
impl DataObjectTrait for ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo {
}
impl DataObjectTrait for ClusterDasConfigInfo {
}
impl DataObjectTrait for ClusterDasData {
}
impl DataObjectTrait for ClusterDasDataSummary {
}
impl DataObjectTrait for ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots {
}
impl DataObjectTrait for ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo {
}
impl DataObjectTrait for ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots {
}
impl DataObjectTrait for ClusterDasFdmHostState {
}
impl DataObjectTrait for ClusterDasHostInfo {
}
impl DataObjectTrait for ClusterDasAamHostInfo {
}
impl DataObjectTrait for ClusterDasHostRecommendation {
}
impl DataObjectTrait for ClusterDasVmConfigInfo {
}
impl DataObjectTrait for ClusterDasVmSettings {
}
impl DataObjectTrait for ClusterDpmConfigInfo {
}
impl DataObjectTrait for ClusterDpmHostConfigInfo {
}
impl DataObjectTrait for ClusterDrsConfigInfo {
}
impl DataObjectTrait for ClusterDrsFaults {
}
impl DataObjectTrait for ClusterDrsFaultsFaultsByVm {
}
impl DataObjectTrait for ClusterDrsFaultsFaultsByVirtualDisk {
}
impl DataObjectTrait for ClusterDrsMigration {
}
impl DataObjectTrait for ClusterDrsRecommendation {
}
impl DataObjectTrait for ClusterDrsVmConfigInfo {
}
impl DataObjectTrait for ClusterEvcManagerCheckResult {
}
impl DataObjectTrait for ClusterEvcManagerEvcState {
}
impl DataObjectTrait for ClusterEnterMaintenanceResult {
}
impl DataObjectTrait for ClusterFailoverHostAdmissionControlInfoHostStatus {
}
impl DataObjectTrait for ClusterGroupInfo {
}
impl DataObjectTrait for ClusterHostGroup {
}
impl DataObjectTrait for ClusterVmGroup {
}
impl DataObjectTrait for ClusterHostRecommendation {
}
impl DataObjectTrait for ClusterInfraUpdateHaConfigInfo {
}
impl DataObjectTrait for ClusterNotAttemptedVmInfo {
}
impl DataObjectTrait for ClusterOrchestrationInfo {
}
impl DataObjectTrait for PerformClusterPowerActionSpec {
}
impl DataObjectTrait for PlacementResult {
}
impl DataObjectTrait for PlacementSpec {
}
impl DataObjectTrait for ClusterPowerOnVmResult {
}
impl DataObjectTrait for ClusterPreemptibleVmPairInfo {
}
impl DataObjectTrait for ClusterProactiveDrsConfigInfo {
}
impl DataObjectTrait for QueryVsanManagedStorageSpaceUsageSpec {
}
impl DataObjectTrait for ClusterRecommendation {
}
impl DataObjectTrait for ClusterResourceUsageSummary {
}
impl DataObjectTrait for ClusterRuleInfo {
}
impl DataObjectTrait for ClusterAffinityRuleSpec {
}
impl DataObjectTrait for ClusterAntiAffinityRuleSpec {
}
impl DataObjectTrait for ClusterDependencyRuleInfo {
}
impl DataObjectTrait for ClusterFtVmHostRuleInfo {
}
impl DataObjectTrait for ClusterVmHostRuleInfo {
}
impl DataObjectTrait for VirtualDiskAntiAffinityRuleSpec {
}
impl DataObjectTrait for VirtualDiskRuleSpec {
}
impl DataObjectTrait for VsanSiteFaultDomain {
}
impl DataObjectTrait for VsanSiteFaultDomainConfig {
}
impl DataObjectTrait for ClusterSlotPolicy {
}
impl DataObjectTrait for ClusterFixedSizeSlotPolicy {
}
impl DataObjectTrait for VsanStorageComplianceResult {
}
impl DataObjectTrait for VsanStorageOperationalStatus {
}
impl DataObjectTrait for VsanStoragePolicyStatus {
}
impl DataObjectTrait for ClusterSystemVMsConfigInfo {
}
impl DataObjectTrait for ClusterSystemVMsConfigSpec {
}
impl DataObjectTrait for ClusterUsageSummary {
}
impl DataObjectTrait for VimClusterVsanPreferredFaultDomainInfo {
}
impl DataObjectTrait for VimClusterVsanStretchedClusterCapability {
}
impl DataObjectTrait for VimClusterVsanStretchedClusterFaultDomainConfig {
}
impl DataObjectTrait for VsanStretchedClusterHostVirtualApplianceStatus {
}
impl DataObjectTrait for VimClusterVsanWitnessHostInfo {
}
impl DataObjectTrait for ClusterVmComponentProtectionSettings {
}
impl DataObjectTrait for ClusterVmOrchestrationInfo {
}
impl DataObjectTrait for ClusterVmReadiness {
}
impl DataObjectTrait for ClusterVmToolsMonitoringSettings {
}
impl DataObjectTrait for VsanAttachToSrOperation {
}
impl DataObjectTrait for VsanCapability {
}
impl DataObjectTrait for VsanClusterAdvCfgSyncHostResult {
}
impl DataObjectTrait for VsanClusterAdvCfgSyncResult {
}
impl DataObjectTrait for VsanClusterBalancePerDiskInfo {
}
impl DataObjectTrait for VsanClusterBalanceSummary {
}
impl DataObjectTrait for VsanClusterClomdLivenessResult {
}
impl DataObjectTrait for VsanClusterConfig {
}
impl DataObjectTrait for VsanClusterCreateVmHealthTestResult {
}
impl DataObjectTrait for VsanClusterDitEncryptionHealthSummary {
}
impl DataObjectTrait for VsanClusterEncryptionHealthSummary {
}
impl DataObjectTrait for VsanClusterFileServiceHealthSummary {
}
impl DataObjectTrait for VsanClusterGlobalDedupHealthSummary {
}
impl DataObjectTrait for VsanClusterHclInfo {
}
impl DataObjectTrait for VsanClusterHealthAction {
}
impl DataObjectTrait for VsanClusterHealthCheckInfo {
}
impl DataObjectTrait for VsanClusterHealthConfigs {
}
impl DataObjectTrait for VsanClusterHealthGroup {
}
impl DataObjectTrait for VsanClusterHealthLinkBase {
}
impl DataObjectTrait for VsanClusterHealthLink {
}
impl DataObjectTrait for VsanClusterHealthQuerySpec {
}
impl DataObjectTrait for VsanClusterHealthResultBase {
}
impl DataObjectTrait for VsanClusterHealthResultTable {
}
impl DataObjectTrait for VsanClusterHealthResultWithRemediation {
}
impl DataObjectTrait for VsanClusterHealthResultColumnInfo {
}
impl DataObjectTrait for VsanClusterHealthResultKeyValuePair {
}
impl DataObjectTrait for VsanClusterHealthResultRow {
}
impl DataObjectTrait for VsanClusterHealthSummary {
}
impl DataObjectTrait for VsanClusterHealthSystemObjectsRepairResult {
}
impl DataObjectTrait for VsanClusterHealthSystemStatusResult {
}
impl DataObjectTrait for VsanClusterHealthSystemVersionResult {
}
impl DataObjectTrait for VsanClusterHealthTest {
}
impl DataObjectTrait for VsanClusterHostVmknicMapping {
}
impl DataObjectTrait for VsanClusterLimitHealthResult {
}
impl DataObjectTrait for VsanClusterNetworkHealthResult {
}
impl DataObjectTrait for VsanClusterNetworkLoadTestResult {
}
impl DataObjectTrait for VsanClusterNetworkPartitionInfo {
}
impl DataObjectTrait for VsanClusterNetworkPerfTaskSpec {
}
impl DataObjectTrait for VsanClusterProactiveTestResult {
}
impl DataObjectTrait for VsanClusterTelemetryProxyConfig {
}
impl DataObjectTrait for VsanClusterVMsHealthOverallResult {
}
impl DataObjectTrait for VsanClusterVMsHealthSummaryResult {
}
impl DataObjectTrait for VsanClusterVmdkLoadTestResult {
}
impl DataObjectTrait for VsanClusterWhatifHostFailuresResult {
}
impl DataObjectTrait for VsanConfigGeneration {
}
impl DataObjectTrait for VsanDataDrivenApiAction {
}
impl DataObjectTrait for VsanDiagnosticsThreshold {
}
impl DataObjectTrait for VsanDiskFormatConversionSpec {
}
impl DataObjectTrait for VimClusterVsanDiskMappingsConfigSpec {
}
impl DataObjectTrait for VsanEntitySpaceUsage {
}
impl DataObjectTrait for VimClusterVsanFaultDomainSpec {
}
impl DataObjectTrait for VsanFaultDomainDestroySpec {
}
impl DataObjectTrait for VsanFaultDomainUpdateSpec {
}
impl DataObjectTrait for VimClusterVsanFaultDomainsConfigSpec {
}
impl DataObjectTrait for VsanHealthActionBase {
}
impl DataObjectTrait for VsanHealthActionSteps {
}
impl DataObjectTrait for VsanHealthApiBasedAction {
}
impl DataObjectTrait for VsanHealthCmdBasedAction {
}
impl DataObjectTrait for VsanHealthDataDrivenAction {
}
impl DataObjectTrait for VsanHealthTxtBasedAction {
}
impl DataObjectTrait for VsanHealthConfirmationDialog {
}
impl DataObjectTrait for VsanHealthCorrelation {
}
impl DataObjectTrait for VsanHealthExtMgmtPreCheckResult {
}
impl DataObjectTrait for VsanHealthTroubleshooting {
}
impl DataObjectTrait for VsanHistoricalHealthQuerySpec {
}
impl DataObjectTrait for VsanHistoricalHealthTest {
}
impl DataObjectTrait for VsanHostClomdLivenessResult {
}
impl DataObjectTrait for VsanHostCreateVmHealthTestResult {
}
impl DataObjectTrait for VimClusterVsanHostDiskMapping {
}
impl DataObjectTrait for VsanHostHealthSystemVersionResult {
}
impl DataObjectTrait for VsanIoInsightInstance {
}
impl DataObjectTrait for VsanIoInsightInstanceQuerySpec {
}
impl DataObjectTrait for VsanIscsiHomeObjectSpec {
}
impl DataObjectTrait for VsanIscsiInitiatorGroup {
}
impl DataObjectTrait for VsanIscsiLunCommonInfo {
}
impl DataObjectTrait for VsanIscsiLun {
}
impl DataObjectTrait for VsanIscsiLunSpec {
}
impl DataObjectTrait for VsanIscsiTargetAuthSpec {
}
impl DataObjectTrait for VsanIscsiTargetBasicInfo {
}
impl DataObjectTrait for VsanIscsiTargetCommonInfo {
}
impl DataObjectTrait for VsanIscsiTarget {
}
impl DataObjectTrait for VsanIscsiTargetSpec {
}
impl DataObjectTrait for VsanIscsiTargetServiceConfig {
}
impl DataObjectTrait for VsanIscsiTargetServiceSpec {
}
impl DataObjectTrait for VsanIscsiTargetServiceDefaultConfigSpec {
}
impl DataObjectTrait for VsanNetworkDiagnostics {
}
impl DataObjectTrait for VsanObjIdentityQuerySpec {
}
impl DataObjectTrait for VsanClusterObjectExtAttrs {
}
impl DataObjectTrait for VsanObjectExtraAttributes {
}
impl DataObjectTrait for VsanObjectIdentity {
}
impl DataObjectTrait for VsanObjectIdentityAndHealth {
}
impl DataObjectTrait for VsanObjectInformation {
}
impl DataObjectTrait for VsanObjectQuerySpec {
}
impl DataObjectTrait for VsanObjectSpaceSummary {
}
impl DataObjectTrait for VsanPerfDiagnoseQuerySpec {
}
impl DataObjectTrait for VsanPerfDiagnosticException {
}
impl DataObjectTrait for VsanPerfDiagnosticResult {
}
impl DataObjectTrait for VsanPerfEntityMetricCsv {
}
impl DataObjectTrait for VsanPerfEntityType {
}
impl DataObjectTrait for VsanPerfGraph {
}
impl DataObjectTrait for VsanPerfHotspotEntitiesMetrics {
}
impl DataObjectTrait for VsanPerfHotspotQuerySpec {
}
impl DataObjectTrait for VsanPerfMasterInformation {
}
impl DataObjectTrait for VsanPerfMemberInfo {
}
impl DataObjectTrait for VsanPerfMetricId {
}
impl DataObjectTrait for VsanPerfMetricSeriesCsv {
}
impl DataObjectTrait for VsanPerfNodeInformation {
}
impl DataObjectTrait for VsanPerfQuerySpec {
}
impl DataObjectTrait for VsanPerfThreshold {
}
impl DataObjectTrait for VsanPerfTimeRange {
}
impl DataObjectTrait for VsanPerfTimeRangeQuerySpec {
}
impl DataObjectTrait for VsanPerfTopEntities {
}
impl DataObjectTrait for VsanPerfTopEntity {
}
impl DataObjectTrait for VsanPerfTopQuerySpec {
}
impl DataObjectTrait for VsanPerfsvcConfig {
}
impl DataObjectTrait for VsanRemoteClusterQuerySpec {
}
impl DataObjectTrait for VsanSpaceQuerySpec {
}
impl DataObjectTrait for VsanSpaceUsage {
}
impl DataObjectTrait for VsanSpaceUsageDetailResult {
}
impl DataObjectTrait for VsanSpaceUsageWithDatastoreType {
}
impl DataObjectTrait for VsanStorageWorkloadType {
}
impl DataObjectTrait for VsanStretchedClusterConfig {
}
impl DataObjectTrait for VsanSyncingObjectFilter {
}
impl DataObjectTrait for VsanUnicastAddressInfo {
}
impl DataObjectTrait for VsanVcKmipServersHealth {
}
impl DataObjectTrait for VsanVcLifecycleCheckResult {
}
impl DataObjectTrait for VsanVcLifecycleCheckSpec {
}
impl DataObjectTrait for VsanVsanClusterPcapGroup {
}
impl DataObjectTrait for VsanVsanClusterPcapResult {
}
impl DataObjectTrait for VsanVumSystemConfig {
}
impl DataObjectTrait for VsanWhatifCapacity {
}
impl DataObjectTrait for VimClusterVsanWitnessSpec {
}
impl DataObjectTrait for CnsAccessControlSpec {
}
impl DataObjectTrait for CnsNfsAccessControlSpec {
}
impl DataObjectTrait for CnsBackingObjectDetails {
}
impl DataObjectTrait for CnsBlockBackingDetails {
}
impl DataObjectTrait for CnsFileBackingDetails {
}
impl DataObjectTrait for CnsVsanFileShareBackingDetails {
}
impl DataObjectTrait for CnsBaseCreateSpec {
}
impl DataObjectTrait for CnsFileCreateSpec {
}
impl DataObjectTrait for CnsVsanFileCreateSpec {
}
impl DataObjectTrait for CnsContainerCluster {
}
impl DataObjectTrait for CnsCursor {
}
impl DataObjectTrait for CnsEntityMetadata {
}
impl DataObjectTrait for CnsKubernetesEntityMetadata {
}
impl DataObjectTrait for CnsKubernetesEntityReference {
}
impl DataObjectTrait for CnsPlacementResult {
}
impl DataObjectTrait for CnsQueryFilter {
}
impl DataObjectTrait for CnsKubernetesQueryFilter {
}
impl DataObjectTrait for CnsQueryResult {
}
impl DataObjectTrait for CnsQuerySelection {
}
impl DataObjectTrait for CnsSnapshotCreateSpec {
}
impl DataObjectTrait for CnsSnapshotDeleteSpec {
}
impl DataObjectTrait for CnsSnapshotId {
}
impl DataObjectTrait for CnsVolume {
}
impl DataObjectTrait for CnsVolumeAclConfigureSpec {
}
impl DataObjectTrait for CnsVolumeAttachDetachSpec {
}
impl DataObjectTrait for CnsVolumeCreateSpec {
}
impl DataObjectTrait for CnsVolumeExtendSpec {
}
impl DataObjectTrait for CnsVolumeId {
}
impl DataObjectTrait for CnsVolumeMetadata {
}
impl DataObjectTrait for CnsVolumeMetadataUpdateSpec {
}
impl DataObjectTrait for CnsVolumeOperationBatchResult {
}
impl DataObjectTrait for CnsVolumeOperationResult {
}
impl DataObjectTrait for CnsAsyncQueryResult {
}
impl DataObjectTrait for CnsVolumeAttachResult {
}
impl DataObjectTrait for CnsVolumeCreateResult {
}
impl DataObjectTrait for CnsVolumePolicyReconfigSpec {
}
impl DataObjectTrait for CnsVolumeRelocateSpec {
}
impl DataObjectTrait for CnsBlockVolumeRelocateSpec {
}
impl DataObjectTrait for CnsVolumeSource {
}
impl DataObjectTrait for CnsSnapshotVolumeSource {
}
impl DataObjectTrait for DistributedVirtualPort {
}
impl DataObjectTrait for DvPortConfigInfo {
}
impl DataObjectTrait for DvPortConfigSpec {
}
impl DataObjectTrait for DvsFilterParameter {
}
impl DataObjectTrait for DvsHostLocalPortInfo {
}
impl DataObjectTrait for DvPortStatus {
}
impl DataObjectTrait for DvPortSetting {
}
impl DataObjectTrait for VMwareDvsPortSetting {
}
impl DataObjectTrait for DvPortState {
}
impl DataObjectTrait for DvPortgroupConfigInfo {
}
impl DataObjectTrait for DvPortgroupConfigSpec {
}
impl DataObjectTrait for DistributedVirtualPortgroupNsxPortgroupOperationResult {
}
impl DataObjectTrait for DvPortgroupPolicy {
}
impl DataObjectTrait for VMwareDvsPortgroupPolicy {
}
impl DataObjectTrait for DistributedVirtualPortgroupProblem {
}
impl DataObjectTrait for DistributedVirtualPortgroupInfo {
}
impl DataObjectTrait for DistributedVirtualSwitchInfo {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerCompatibilityResult {
}
impl DataObjectTrait for DvsManagerDvsConfigTarget {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerDvsProductSpec {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerHostContainer {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerHostDvsFilterSpec {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerHostArrayFilter {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerHostContainerFilter {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerHostDvsMembershipFilter {
}
impl DataObjectTrait for DistributedVirtualSwitchManagerImportResult {
}
impl DataObjectTrait for DvsManagerPhysicalNicsList {
}
impl DataObjectTrait for EntityBackup {
}
impl DataObjectTrait for EntityBackupConfig {
}
impl DataObjectTrait for DvsFilterSpecConnecteeSpec {
}
impl DataObjectTrait for DvsFilterSpecPnicConnecteeSpec {
}
impl DataObjectTrait for DvsFilterSpecVmConnecteeSpec {
}
impl DataObjectTrait for DvsFilterSpecVmknicConnecteeSpec {
}
impl DataObjectTrait for DvsFilterSpecVlanSpec {
}
impl DataObjectTrait for DvsFilterSpecPvlanSpec {
}
impl DataObjectTrait for DvsFilterSpecTrunkVlanSpec {
}
impl DataObjectTrait for DvsFilterSpecVlanIdSpec {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMember {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberBacking {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberPnicBacking {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberConfigInfo {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberConfigSpec {
}
impl DataObjectTrait for HostMemberHealthCheckResult {
}
impl DataObjectTrait for HostMemberUplinkHealthCheckResult {
}
impl DataObjectTrait for VMwareDvsMtuHealthCheckResult {
}
impl DataObjectTrait for VMwareDvsVlanHealthCheckResult {
}
impl DataObjectTrait for VMwareDvsTeamingHealthCheckResult {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberHostUplinkState {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberPnicSpec {
}
impl DataObjectTrait for HostMemberRuntimeInfo {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberRuntimeState {
}
impl DataObjectTrait for DistributedVirtualSwitchHostMemberTransportZoneInfo {
}
impl DataObjectTrait for DistributedVirtualSwitchHostProductSpec {
}
impl DataObjectTrait for DistributedVirtualSwitchKeyedOpaqueBlob {
}
impl DataObjectTrait for DistributedVirtualSwitchNetworkOffloadSpec {
}
impl DataObjectTrait for DvsNetworkResourcePool {
}
impl DataObjectTrait for DvsNetworkResourcePoolAllocationInfo {
}
impl DataObjectTrait for DvsNetworkResourcePoolConfigSpec {
}
impl DataObjectTrait for DistributedVirtualSwitchPortConnectee {
}
impl DataObjectTrait for DistributedVirtualSwitchPortConnection {
}
impl DataObjectTrait for DistributedVirtualSwitchPortCriteria {
}
impl DataObjectTrait for DistributedVirtualSwitchPortStatistics {
}
impl DataObjectTrait for DistributedVirtualSwitchProductSpec {
}
impl DataObjectTrait for DvsTrafficRule {
}
impl DataObjectTrait for DvsNetworkRuleAction {
}
impl DataObjectTrait for DvsAcceptNetworkRuleAction {
}
impl DataObjectTrait for DvsCopyNetworkRuleAction {
}
impl DataObjectTrait for DvsDropNetworkRuleAction {
}
impl DataObjectTrait for DvsGreEncapNetworkRuleAction {
}
impl DataObjectTrait for DvsLogNetworkRuleAction {
}
impl DataObjectTrait for DvsMacRewriteNetworkRuleAction {
}
impl DataObjectTrait for DvsPuntNetworkRuleAction {
}
impl DataObjectTrait for DvsRateLimitNetworkRuleAction {
}
impl DataObjectTrait for DvsUpdateTagNetworkRuleAction {
}
impl DataObjectTrait for DvsNetworkRuleQualifier {
}
impl DataObjectTrait for DvsIpNetworkRuleQualifier {
}
impl DataObjectTrait for DvsMacNetworkRuleQualifier {
}
impl DataObjectTrait for DvsSystemTrafficNetworkRuleQualifier {
}
impl DataObjectTrait for DvsTrafficRuleset {
}
impl DataObjectTrait for DvsVmVnicNetworkResourcePool {
}
impl DataObjectTrait for DvsVmVnicResourcePoolConfigSpec {
}
impl DataObjectTrait for DvsVmVnicResourceAllocation {
}
impl DataObjectTrait for DvsVmVnicNetworkResourcePoolRuntimeInfo {
}
impl DataObjectTrait for DvsVnicAllocatedResource {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchDpuFailoverPolicy {
}
impl DataObjectTrait for VMwareDvsDpuCapability {
}
impl DataObjectTrait for VMwareIpfixConfig {
}
impl DataObjectTrait for VMwareDvsIpfixCapability {
}
impl DataObjectTrait for VMwareDvsLacpCapability {
}
impl DataObjectTrait for VMwareDvsLacpGroupConfig {
}
impl DataObjectTrait for VMwareDvsLacpGroupSpec {
}
impl DataObjectTrait for VMwareDvsLagIpfixConfig {
}
impl DataObjectTrait for VMwareDvsLagVlanConfig {
}
impl DataObjectTrait for VMwareDvsMtuCapability {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchNetworkOffloadConfig {
}
impl DataObjectTrait for VMwareDvsPvlanConfigSpec {
}
impl DataObjectTrait for VMwareDvsPvlanMapEntry {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchRealTimeConfig {
}
impl DataObjectTrait for VmwareDistributedVirtualSwitchRealTimeLanAnnotation {
}
impl DataObjectTrait for VMwareDvsVspanConfigSpec {
}
impl DataObjectTrait for VMwareDvsVspanCapability {
}
impl DataObjectTrait for VMwareVspanPort {
}
impl DataObjectTrait for VMwareVspanSession {
}
impl DataObjectTrait for CryptoKeyId {
}
impl DataObjectTrait for CryptoKeyPlain {
}
impl DataObjectTrait for CryptoKeyResult {
}
impl DataObjectTrait for CryptoManagerHostKeyStatus {
}
impl DataObjectTrait for CryptoManagerKmipCertSignRequest {
}
impl DataObjectTrait for CryptoManagerKmipCertificateInfo {
}
impl DataObjectTrait for CryptoManagerKmipClusterStatus {
}
impl DataObjectTrait for CryptoManagerKmipCryptoKeyStatus {
}
impl DataObjectTrait for CryptoManagerKmipCryptoKeyStatusKeyInfo {
}
impl DataObjectTrait for CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo {
}
impl DataObjectTrait for CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo {
}
impl DataObjectTrait for CryptoManagerKmipCustomAttributeSpec {
}
impl DataObjectTrait for CryptoManagerKmipGenerateKeySpec {
}
impl DataObjectTrait for CryptoManagerKmipServerCertInfo {
}
impl DataObjectTrait for CryptoManagerKmipServerStatus {
}
impl DataObjectTrait for CryptoSpec {
}
impl DataObjectTrait for CryptoSpecDecrypt {
}
impl DataObjectTrait for CryptoSpecDeepRecrypt {
}
impl DataObjectTrait for CryptoSpecEncrypt {
}
impl DataObjectTrait for CryptoSpecNoOp {
}
impl DataObjectTrait for CryptoSpecRegister {
}
impl DataObjectTrait for CryptoSpecShallowRecrypt {
}
impl DataObjectTrait for KeyProviderId {
}
impl DataObjectTrait for KmipClusterInfo {
}
impl DataObjectTrait for KmipClusterInfoKeyInfo {
}
impl DataObjectTrait for KmipClusterInfoWrappingKeyIdKeyInfo {
}
impl DataObjectTrait for KmipClusterInfoWrappingRotationIntervalKeyInfo {
}
impl DataObjectTrait for KmipServerInfo {
}
impl DataObjectTrait for KmipServerSpec {
}
impl DataObjectTrait for KmipServerSpecKeySpec {
}
impl DataObjectTrait for KmipServerSpecWrappingKeyIdKeySpec {
}
impl DataObjectTrait for KmipServerSpecWrappingRotationIntervalKeySpec {
}
impl DataObjectTrait for KmipServerStatus {
}
impl DataObjectTrait for ChangesInfoEventArgument {
}
impl DataObjectTrait for DvsOutOfSyncHostArgument {
}
impl DataObjectTrait for Event {
}
impl DataObjectTrait for EventArgument {
}
impl DataObjectTrait for EntityEventArgument {
}
impl DataObjectTrait for AlarmEventArgument {
}
impl DataObjectTrait for ComputeResourceEventArgument {
}
impl DataObjectTrait for DatacenterEventArgument {
}
impl DataObjectTrait for DatastoreEventArgument {
}
impl DataObjectTrait for DvsEventArgument {
}
impl DataObjectTrait for FolderEventArgument {
}
impl DataObjectTrait for HostEventArgument {
}
impl DataObjectTrait for ManagedEntityEventArgument {
}
impl DataObjectTrait for NetworkEventArgument {
}
impl DataObjectTrait for ResourcePoolEventArgument {
}
impl DataObjectTrait for ScheduledTaskEventArgument {
}
impl DataObjectTrait for VmEventArgument {
}
impl DataObjectTrait for ProfileEventArgument {
}
impl DataObjectTrait for RoleEventArgument {
}
impl DataObjectTrait for EventDescription {
}
impl DataObjectTrait for EventArgDesc {
}
impl DataObjectTrait for EventDescriptionEventDetail {
}
impl DataObjectTrait for EventFilterSpec {
}
impl DataObjectTrait for EventFilterSpecByEntity {
}
impl DataObjectTrait for EventFilterSpecByTime {
}
impl DataObjectTrait for EventFilterSpecByUsername {
}
impl DataObjectTrait for EventManagerEventViewSpec {
}
impl DataObjectTrait for EventManagerViewByStartId {
}
impl DataObjectTrait for ExtendedEventPair {
}
impl DataObjectTrait for VnicPortArgument {
}
impl DataObjectTrait for ExtExtendedProductInfo {
}
impl DataObjectTrait for ManagedByInfo {
}
impl DataObjectTrait for ExtManagedEntityInfo {
}
impl DataObjectTrait for ExtSolutionManagerInfo {
}
impl DataObjectTrait for ExtSolutionManagerInfoTabInfo {
}
impl DataObjectTrait for AnswerFileUpdateFailure {
}
impl DataObjectTrait for ConflictingConfigurationConfig {
}
impl DataObjectTrait for DatacenterMismatchArgument {
}
impl DataObjectTrait for DvsApplyOperationFaultFaultOnObject {
}
impl DataObjectTrait for DvsOperationBulkFaultFaultOnHost {
}
impl DataObjectTrait for ImportOperationBulkFaultFaultOnImport {
}
impl DataObjectTrait for MultipleCertificatesVerifyFaultThumbprintData {
}
impl DataObjectTrait for NoPermissionEntityPrivileges {
}
impl DataObjectTrait for ProfileUpdateFailedUpdateFailure {
}
impl DataObjectTrait for HostActiveDirectory {
}
impl DataObjectTrait for HostActiveDirectorySpec {
}
impl DataObjectTrait for HostAssignableHardwareBinding {
}
impl DataObjectTrait for HostAssignableHardwareConfig {
}
impl DataObjectTrait for HostAssignableHardwareConfigAttributeOverride {
}
impl DataObjectTrait for HostAuthenticationInfo {
}
impl DataObjectTrait for HostAuthenticationManagerInfo {
}
impl DataObjectTrait for HostAuthenticationStoreInfo {
}
impl DataObjectTrait for HostDirectoryStoreInfo {
}
impl DataObjectTrait for HostActiveDirectoryInfo {
}
impl DataObjectTrait for HostLocalAuthenticationInfo {
}
impl DataObjectTrait for AutoStartPowerInfo {
}
impl DataObjectTrait for HostAutoStartManagerConfig {
}
impl DataObjectTrait for AutoStartDefaults {
}
impl DataObjectTrait for HostBiosInfo {
}
impl DataObjectTrait for HostBootDeviceInfo {
}
impl DataObjectTrait for HostBootDevice {
}
impl DataObjectTrait for HostCacheConfigurationInfo {
}
impl DataObjectTrait for HostCacheConfigurationSpec {
}
impl DataObjectTrait for HostCapability {
}
impl DataObjectTrait for HostCertificateManagerCertificateInfo {
}
impl DataObjectTrait for HostCertificateManagerCertificateSpec {
}
impl DataObjectTrait for HostConfigChange {
}
impl DataObjectTrait for HostConfigInfo {
}
impl DataObjectTrait for HostConfigManager {
}
impl DataObjectTrait for HostConfigSpec {
}
impl DataObjectTrait for HostConnectInfo {
}
impl DataObjectTrait for HostDatastoreConnectInfo {
}
impl DataObjectTrait for HostDatastoreExistsConnectInfo {
}
impl DataObjectTrait for HostDatastoreNameConflictConnectInfo {
}
impl DataObjectTrait for HostLicenseConnectInfo {
}
impl DataObjectTrait for HostConnectInfoNetworkInfo {
}
impl DataObjectTrait for HostNewNetworkConnectInfo {
}
impl DataObjectTrait for HostConnectSpec {
}
impl DataObjectTrait for HostCpuIdInfo {
}
impl DataObjectTrait for HostCpuInfo {
}
impl DataObjectTrait for HostCpuPackage {
}
impl DataObjectTrait for HostCpuPowerManagementInfo {
}
impl DataObjectTrait for HostCpuSchedulerInfo {
}
impl DataObjectTrait for HostHyperThreadScheduleInfo {
}
impl DataObjectTrait for HostDataTransportConnectionInfo {
}
impl DataObjectTrait for HostNfcConnectionInfo {
}
impl DataObjectTrait for FileInfo {
}
impl DataObjectTrait for FloppyImageFileInfo {
}
impl DataObjectTrait for FolderFileInfo {
}
impl DataObjectTrait for IsoImageFileInfo {
}
impl DataObjectTrait for VmConfigFileInfo {
}
impl DataObjectTrait for TemplateConfigFileInfo {
}
impl DataObjectTrait for VmDiskFileInfo {
}
impl DataObjectTrait for VmLogFileInfo {
}
impl DataObjectTrait for VmNvramFileInfo {
}
impl DataObjectTrait for VmSnapshotFileInfo {
}
impl DataObjectTrait for FileQueryFlags {
}
impl DataObjectTrait for FileQuery {
}
impl DataObjectTrait for FloppyImageFileQuery {
}
impl DataObjectTrait for FolderFileQuery {
}
impl DataObjectTrait for IsoImageFileQuery {
}
impl DataObjectTrait for VmConfigFileQuery {
}
impl DataObjectTrait for TemplateConfigFileQuery {
}
impl DataObjectTrait for VmDiskFileQuery {
}
impl DataObjectTrait for VmLogFileQuery {
}
impl DataObjectTrait for VmNvramFileQuery {
}
impl DataObjectTrait for VmSnapshotFileQuery {
}
impl DataObjectTrait for HostDatastoreBrowserSearchResults {
}
impl DataObjectTrait for HostDatastoreBrowserSearchSpec {
}
impl DataObjectTrait for VmConfigFileEncryptionInfo {
}
impl DataObjectTrait for VmConfigFileQueryFlags {
}
impl DataObjectTrait for VmConfigFileQueryFilter {
}
impl DataObjectTrait for VmDiskFileEncryptionInfo {
}
impl DataObjectTrait for VmDiskFileQueryFlags {
}
impl DataObjectTrait for VmDiskFileQueryFilter {
}
impl DataObjectTrait for HostDatastoreSystemCapabilities {
}
impl DataObjectTrait for HostDatastoreSystemDatastoreResult {
}
impl DataObjectTrait for HostDatastoreSystemVvolDatastoreSpec {
}
impl DataObjectTrait for HostDateTimeConfig {
}
impl DataObjectTrait for HostDateTimeInfo {
}
impl DataObjectTrait for HostDateTimeSystemServiceTestResult {
}
impl DataObjectTrait for HostDateTimeSystemTimeZone {
}
impl DataObjectTrait for HostDeploymentInfo {
}
impl DataObjectTrait for HostDevice {
}
impl DataObjectTrait for ScsiLun {
}
impl DataObjectTrait for HostScsiDisk {
}
impl DataObjectTrait for DevicePciId {
}
impl DataObjectTrait for HostDhcpService {
}
impl DataObjectTrait for HostDhcpServiceConfig {
}
impl DataObjectTrait for HostDhcpServiceSpec {
}
impl DataObjectTrait for HostDiagnosticPartition {
}
impl DataObjectTrait for HostDiagnosticPartitionCreateDescription {
}
impl DataObjectTrait for HostDiagnosticPartitionCreateOption {
}
impl DataObjectTrait for HostDiagnosticPartitionCreateSpec {
}
impl DataObjectTrait for HostDigestInfo {
}
impl DataObjectTrait for HostTpmDigestInfo {
}
impl DataObjectTrait for HostDiskConfigurationResult {
}
impl DataObjectTrait for HostDiskDimensions {
}
impl DataObjectTrait for HostDiskDimensionsChs {
}
impl DataObjectTrait for HostDiskDimensionsLba {
}
impl DataObjectTrait for HostDiskPartitionInfo {
}
impl DataObjectTrait for HostDiskPartitionBlockRange {
}
impl DataObjectTrait for HostDiskPartitionLayout {
}
impl DataObjectTrait for HostDiskPartitionAttributes {
}
impl DataObjectTrait for HostDiskPartitionSpec {
}
impl DataObjectTrait for HostDnsConfig {
}
impl DataObjectTrait for HostDnsConfigSpec {
}
impl DataObjectTrait for HostDvxClass {
}
impl DataObjectTrait for HostEnterMaintenanceResult {
}
impl DataObjectTrait for HostEsxAgentHostManagerConfigInfo {
}
impl DataObjectTrait for HostFaultToleranceManagerComponentHealthInfo {
}
impl DataObjectTrait for FcoeConfig {
}
impl DataObjectTrait for FcoeConfigFcoeCapabilities {
}
impl DataObjectTrait for FcoeConfigFcoeSpecification {
}
impl DataObjectTrait for FcoeConfigVlanRange {
}
impl DataObjectTrait for HostFeatureCapability {
}
impl DataObjectTrait for HostFeatureMask {
}
impl DataObjectTrait for HostFeatureVersionInfo {
}
impl DataObjectTrait for HostFibreChannelOverEthernetHbaLinkInfo {
}
impl DataObjectTrait for HostFileAccess {
}
impl DataObjectTrait for ModeInfo {
}
impl DataObjectTrait for HostFileSystemMountInfo {
}
impl DataObjectTrait for HostFileSystemVolume {
}
impl DataObjectTrait for HostLocalFileSystemVolume {
}
impl DataObjectTrait for HostNasVolume {
}
impl DataObjectTrait for HostPMemVolume {
}
impl DataObjectTrait for HostVfatVolume {
}
impl DataObjectTrait for HostVffsVolume {
}
impl DataObjectTrait for HostVmfsVolume {
}
impl DataObjectTrait for HostVvolVolume {
}
impl DataObjectTrait for HostFileSystemVolumeInfo {
}
impl DataObjectTrait for HostFirewallConfig {
}
impl DataObjectTrait for HostFirewallConfigRuleSetConfig {
}
impl DataObjectTrait for HostFirewallInfo {
}
impl DataObjectTrait for HostFirewallDefaultPolicy {
}
impl DataObjectTrait for HostFlagInfo {
}
impl DataObjectTrait for HostForceMountedInfo {
}
impl DataObjectTrait for HostFru {
}
impl DataObjectTrait for HostGatewaySpec {
}
impl DataObjectTrait for HostGraphicsConfig {
}
impl DataObjectTrait for HostGraphicsConfigDeviceType {
}
impl DataObjectTrait for HostGraphicsInfo {
}
impl DataObjectTrait for HostHardwareInfo {
}
impl DataObjectTrait for HostHardwareStatusInfo {
}
impl DataObjectTrait for DpuStatusInfoOperationalInfo {
}
impl DataObjectTrait for HostHardwareElementInfo {
}
impl DataObjectTrait for DpuStatusInfo {
}
impl DataObjectTrait for HostStorageElementInfo {
}
impl DataObjectTrait for HostStorageOperationalInfo {
}
impl DataObjectTrait for HostHbaCreateSpec {
}
impl DataObjectTrait for HostTcpHbaCreateSpec {
}
impl DataObjectTrait for HealthSystemRuntime {
}
impl DataObjectTrait for HostAccessControlEntry {
}
impl DataObjectTrait for HostHostBusAdapter {
}
impl DataObjectTrait for HostBlockHba {
}
impl DataObjectTrait for HostFibreChannelHba {
}
impl DataObjectTrait for HostFibreChannelOverEthernetHba {
}
impl DataObjectTrait for HostInternetScsiHba {
}
impl DataObjectTrait for HostParallelScsiHba {
}
impl DataObjectTrait for HostPcieHba {
}
impl DataObjectTrait for HostRdmaHba {
}
impl DataObjectTrait for HostSerialAttachedHba {
}
impl DataObjectTrait for HostTcpHba {
}
impl DataObjectTrait for HostProxySwitch {
}
impl DataObjectTrait for HostProxySwitchConfig {
}
impl DataObjectTrait for HostProxySwitchEnsInfo {
}
impl DataObjectTrait for HostProxySwitchHostLagConfig {
}
impl DataObjectTrait for HostProxySwitchSpec {
}
impl DataObjectTrait for HostSpbmDatastoreInfo {
}
impl DataObjectTrait for HostSpbmHashInfo {
}
impl DataObjectTrait for HostSpbmPolicyBlobInfo {
}
impl DataObjectTrait for HostSpbmPolicyInfo {
}
impl DataObjectTrait for HostImageProfileSummary {
}
impl DataObjectTrait for HostInternetScsiHbaAuthenticationCapabilities {
}
impl DataObjectTrait for HostInternetScsiHbaAuthenticationProperties {
}
impl DataObjectTrait for HostInternetScsiHbaDigestCapabilities {
}
impl DataObjectTrait for HostInternetScsiHbaDigestProperties {
}
impl DataObjectTrait for HostInternetScsiHbaDiscoveryCapabilities {
}
impl DataObjectTrait for HostInternetScsiHbaDiscoveryProperties {
}
impl DataObjectTrait for HostInternetScsiHbaIpCapabilities {
}
impl DataObjectTrait for HostInternetScsiHbaIpProperties {
}
impl DataObjectTrait for HostInternetScsiHbaIPv6Properties {
}
impl DataObjectTrait for HostInternetScsiHbaIscsiIpv6Address {
}
impl DataObjectTrait for HostInternetScsiHbaSendTarget {
}
impl DataObjectTrait for HostInternetScsiHbaStaticTarget {
}
impl DataObjectTrait for HostInternetScsiHbaTargetSet {
}
impl DataObjectTrait for HostIpConfig {
}
impl DataObjectTrait for VsanFileServiceIpConfig {
}
impl DataObjectTrait for HostIpConfigIpV6Address {
}
impl DataObjectTrait for HostIpConfigIpV6AddressConfiguration {
}
impl DataObjectTrait for HostIpRouteConfig {
}
impl DataObjectTrait for HostIpRouteConfigSpec {
}
impl DataObjectTrait for HostIpRouteEntry {
}
impl DataObjectTrait for HostIpRouteOp {
}
impl DataObjectTrait for HostIpRouteTableConfig {
}
impl DataObjectTrait for HostIpRouteTableInfo {
}
impl DataObjectTrait for HostIpmiInfo {
}
impl DataObjectTrait for IscsiDependencyEntity {
}
impl DataObjectTrait for IscsiMigrationDependency {
}
impl DataObjectTrait for IscsiPortInfo {
}
impl DataObjectTrait for IscsiStatus {
}
impl DataObjectTrait for KernelModuleInfo {
}
impl DataObjectTrait for KernelModuleSectionInfo {
}
impl DataObjectTrait for LacpInfo {
}
impl DataObjectTrait for LagInfo {
}
impl DataObjectTrait for LagUplinkInfo {
}
impl DataObjectTrait for HostLicenseSpec {
}
impl DataObjectTrait for LinkDiscoveryProtocolConfig {
}
impl DataObjectTrait for HostAccountSpec {
}
impl DataObjectTrait for HostPosixAccountSpec {
}
impl DataObjectTrait for HostLocalFileSystemVolumeSpec {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerDiskLayoutSpec {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerFileDeleteResult {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerFileDeleteSpec {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerFileReserveResult {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerFileReserveSpec {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerSnapshotLayoutSpec {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerVmMigrationStatus {
}
impl DataObjectTrait for HostLowLevelProvisioningManagerVmRecoveryInfo {
}
impl DataObjectTrait for HostMaintenanceSpec {
}
impl DataObjectTrait for ServiceConsoleReservationInfo {
}
impl DataObjectTrait for VirtualMachineMemoryReservationInfo {
}
impl DataObjectTrait for VirtualMachineMemoryReservationSpec {
}
impl DataObjectTrait for HostMemorySpec {
}
impl DataObjectTrait for HostMemoryTierInfo {
}
impl DataObjectTrait for HostMountInfo {
}
impl DataObjectTrait for HostMultipathInfo {
}
impl DataObjectTrait for HostMultipathInfoLogicalUnit {
}
impl DataObjectTrait for HostMultipathInfoLogicalUnitPolicy {
}
impl DataObjectTrait for HostMultipathInfoFixedLogicalUnitPolicy {
}
impl DataObjectTrait for HostMultipathInfoHppLogicalUnitPolicy {
}
impl DataObjectTrait for HostMultipathInfoLogicalUnitStorageArrayTypePolicy {
}
impl DataObjectTrait for HostMultipathInfoPath {
}
impl DataObjectTrait for HostMultipathStateInfo {
}
impl DataObjectTrait for HostMultipathStateInfoPath {
}
impl DataObjectTrait for HostNasVolumeConfig {
}
impl DataObjectTrait for HostNasVolumeSpec {
}
impl DataObjectTrait for HostNasVolumeUserInfo {
}
impl DataObjectTrait for HostNatService {
}
impl DataObjectTrait for HostNatServiceConfig {
}
impl DataObjectTrait for HostNatServiceNameServiceSpec {
}
impl DataObjectTrait for HostNatServicePortForwardSpec {
}
impl DataObjectTrait for HostNatServiceSpec {
}
impl DataObjectTrait for HostNetCapabilities {
}
impl DataObjectTrait for HostNetOffloadCapabilities {
}
impl DataObjectTrait for HostNetStackInstance {
}
impl DataObjectTrait for HostNetworkConfig {
}
impl DataObjectTrait for HostNetworkConfigNetStackSpec {
}
impl DataObjectTrait for HostNetworkConfigResult {
}
impl DataObjectTrait for HostNetworkInfo {
}
impl DataObjectTrait for HostNetworkPolicy {
}
impl DataObjectTrait for HostNicFailureCriteria {
}
impl DataObjectTrait for HostNicOrderPolicy {
}
impl DataObjectTrait for HostNicTeamingPolicy {
}
impl DataObjectTrait for HostNetworkSecurityPolicy {
}
impl DataObjectTrait for HostNetworkTrafficShapingPolicy {
}
impl DataObjectTrait for HostNtpConfig {
}
impl DataObjectTrait for HostNumaInfo {
}
impl DataObjectTrait for HostNumaNode {
}
impl DataObjectTrait for HostNumericSensorInfo {
}
impl DataObjectTrait for NvdimmDimmInfo {
}
impl DataObjectTrait for NvdimmGuid {
}
impl DataObjectTrait for NvdimmHealthInfo {
}
impl DataObjectTrait for NvdimmInterleaveSetInfo {
}
impl DataObjectTrait for NvdimmNamespaceCreateSpec {
}
impl DataObjectTrait for NvdimmNamespaceDeleteSpec {
}
impl DataObjectTrait for NvdimmNamespaceDetails {
}
impl DataObjectTrait for NvdimmNamespaceInfo {
}
impl DataObjectTrait for NvdimmSystemInfo {
}
impl DataObjectTrait for NvdimmPMemNamespaceCreateSpec {
}
impl DataObjectTrait for NvdimmRegionInfo {
}
impl DataObjectTrait for NvdimmSummary {
}
impl DataObjectTrait for HostNvmeController {
}
impl DataObjectTrait for HostNvmeDisconnectSpec {
}
impl DataObjectTrait for HostNvmeDiscoveryLog {
}
impl DataObjectTrait for HostNvmeDiscoveryLogEntry {
}
impl DataObjectTrait for HostNvmeNamespace {
}
impl DataObjectTrait for HostNvmeSpec {
}
impl DataObjectTrait for HostNvmeConnectSpec {
}
impl DataObjectTrait for HostNvmeDiscoverSpec {
}
impl DataObjectTrait for HostNvmeTopology {
}
impl DataObjectTrait for HostNvmeTopologyInterface {
}
impl DataObjectTrait for HostNvmeTransportParameters {
}
impl DataObjectTrait for HostNvmeOpaqueTransportParameters {
}
impl DataObjectTrait for HostNvmeOverFibreChannelParameters {
}
impl DataObjectTrait for HostNvmeOverRdmaParameters {
}
impl DataObjectTrait for HostNvmeOverTcpParameters {
}
impl DataObjectTrait for HostOpaqueNetworkInfo {
}
impl DataObjectTrait for HostOpaqueSwitch {
}
impl DataObjectTrait for HostOpaqueSwitchPhysicalNicZone {
}
impl DataObjectTrait for HostPartialMaintenanceModeRuntimeInfo {
}
impl DataObjectTrait for HostPatchManagerLocator {
}
impl DataObjectTrait for HostPatchManagerPatchManagerOperationSpec {
}
impl DataObjectTrait for HostPatchManagerResult {
}
impl DataObjectTrait for HostPatchManagerStatus {
}
impl DataObjectTrait for HostPatchManagerStatusPrerequisitePatch {
}
impl DataObjectTrait for HostPathSelectionPolicyOption {
}
impl DataObjectTrait for HostPciDevice {
}
impl DataObjectTrait for HostPciPassthruConfig {
}
impl DataObjectTrait for HostSriovConfig {
}
impl DataObjectTrait for HostPciPassthruInfo {
}
impl DataObjectTrait for HostSriovInfo {
}
impl DataObjectTrait for HostPersistentMemoryInfo {
}
impl DataObjectTrait for PhysicalNic {
}
impl DataObjectTrait for PhysicalNicCdpDeviceCapability {
}
impl DataObjectTrait for PhysicalNicCdpInfo {
}
impl DataObjectTrait for PhysicalNicConfig {
}
impl DataObjectTrait for PhysicalNicLinkInfo {
}
impl DataObjectTrait for LinkLayerDiscoveryProtocolInfo {
}
impl DataObjectTrait for PhysicalNicHintInfo {
}
impl DataObjectTrait for PhysicalNicHint {
}
impl DataObjectTrait for PhysicalNicIpHint {
}
impl DataObjectTrait for PhysicalNicNameHint {
}
impl DataObjectTrait for PhysicalNicSpec {
}
impl DataObjectTrait for HostPlugStoreTopology {
}
impl DataObjectTrait for HostPlugStoreTopologyAdapter {
}
impl DataObjectTrait for HostPlugStoreTopologyDevice {
}
impl DataObjectTrait for HostPlugStoreTopologyPath {
}
impl DataObjectTrait for HostPlugStoreTopologyPlugin {
}
impl DataObjectTrait for HostPlugStoreTopologyTarget {
}
impl DataObjectTrait for PnicTsoInfo {
}
impl DataObjectTrait for HostPortGroup {
}
impl DataObjectTrait for HostPortGroupConfig {
}
impl DataObjectTrait for HostPortGroupPort {
}
impl DataObjectTrait for HostPortGroupSpec {
}
impl DataObjectTrait for PowerSystemCapability {
}
impl DataObjectTrait for PowerSystemInfo {
}
impl DataObjectTrait for HostPowerPolicy {
}
impl DataObjectTrait for HostProtocolEndpoint {
}
impl DataObjectTrait for HostPtpConfig {
}
impl DataObjectTrait for HostPtpConfigPtpPort {
}
impl DataObjectTrait for HostQualifiedName {
}
impl DataObjectTrait for HostRdmaDevice {
}
impl DataObjectTrait for HostRdmaDeviceBacking {
}
impl DataObjectTrait for HostRdmaDevicePnicBacking {
}
impl DataObjectTrait for HostRdmaDeviceCapability {
}
impl DataObjectTrait for HostRdmaDeviceConnectionInfo {
}
impl DataObjectTrait for HostReliableMemoryInfo {
}
impl DataObjectTrait for HostResignatureRescanResult {
}
impl DataObjectTrait for HostFirewallRuleset {
}
impl DataObjectTrait for HostFirewallRulesetIpList {
}
impl DataObjectTrait for HostFirewallRulesetIpNetwork {
}
impl DataObjectTrait for HostFirewallRule {
}
impl DataObjectTrait for HostFirewallRulesetRulesetSpec {
}
impl DataObjectTrait for HostRuntimeInfo {
}
impl DataObjectTrait for HostRuntimeInfoNetStackInstanceRuntimeInfo {
}
impl DataObjectTrait for HostNetworkResourceRuntime {
}
impl DataObjectTrait for HostRuntimeInfoNetworkRuntimeInfo {
}
impl DataObjectTrait for HostPlacedVirtualNicIdentifier {
}
impl DataObjectTrait for HostPnicNetworkResourceInfo {
}
impl DataObjectTrait for HostRuntimeInfoStateEncryptionInfo {
}
impl DataObjectTrait for HostScsiDiskPartition {
}
impl DataObjectTrait for ScsiLunCapabilities {
}
impl DataObjectTrait for ScsiLunDescriptor {
}
impl DataObjectTrait for ScsiLunDurableName {
}
impl DataObjectTrait for HostScsiTopology {
}
impl DataObjectTrait for HostScsiTopologyInterface {
}
impl DataObjectTrait for HostScsiTopologyLun {
}
impl DataObjectTrait for HostScsiTopologyTarget {
}
impl DataObjectTrait for HostSecuritySpec {
}
impl DataObjectTrait for HostService {
}
impl DataObjectTrait for HostServiceSourcePackage {
}
impl DataObjectTrait for HostServiceConfig {
}
impl DataObjectTrait for HostServiceInfo {
}
impl DataObjectTrait for HostSevInfo {
}
impl DataObjectTrait for HostSgxInfo {
}
impl DataObjectTrait for HostSgxRegistrationInfo {
}
impl DataObjectTrait for HostSharedGpuCapabilities {
}
impl DataObjectTrait for HostSnmpSystemAgentLimits {
}
impl DataObjectTrait for HostSnmpConfigSpec {
}
impl DataObjectTrait for HostSnmpDestination {
}
impl DataObjectTrait for SoftwarePackage {
}
impl DataObjectTrait for SoftwarePackageCapability {
}
impl DataObjectTrait for Relation {
}
impl DataObjectTrait for HostSriovDevicePoolInfo {
}
impl DataObjectTrait for HostSriovNetworkDevicePoolInfo {
}
impl DataObjectTrait for HostSslThumbprintInfo {
}
impl DataObjectTrait for HostStorageArrayTypePolicyOption {
}
impl DataObjectTrait for HostStorageDeviceInfo {
}
impl DataObjectTrait for HostStorageSystemDiskLocatorLedResult {
}
impl DataObjectTrait for HostStorageSystemScsiLunResult {
}
impl DataObjectTrait for HostStorageSystemVmfsVolumeResult {
}
impl DataObjectTrait for HostListSummary {
}
impl DataObjectTrait for HostConfigSummary {
}
impl DataObjectTrait for HostListSummaryGatewaySummary {
}
impl DataObjectTrait for HostHardwareSummary {
}
impl DataObjectTrait for HostListSummaryQuickStats {
}
impl DataObjectTrait for SystemEventInfo {
}
impl DataObjectTrait for HostSystemHealthInfo {
}
impl DataObjectTrait for HostSystemIdentificationInfo {
}
impl DataObjectTrait for HostSystemInfo {
}
impl DataObjectTrait for HostSystemResourceInfo {
}
impl DataObjectTrait for HostSystemSwapConfiguration {
}
impl DataObjectTrait for HostSystemSwapConfigurationSystemSwapOption {
}
impl DataObjectTrait for HostSystemSwapConfigurationDatastoreOption {
}
impl DataObjectTrait for HostSystemSwapConfigurationDisabledOption {
}
impl DataObjectTrait for HostSystemSwapConfigurationHostCacheOption {
}
impl DataObjectTrait for HostSystemSwapConfigurationHostLocalSwapOption {
}
impl DataObjectTrait for HostTargetTransport {
}
impl DataObjectTrait for HostBlockAdapterTargetTransport {
}
impl DataObjectTrait for HostFibreChannelTargetTransport {
}
impl DataObjectTrait for HostFibreChannelOverEthernetTargetTransport {
}
impl DataObjectTrait for HostInternetScsiTargetTransport {
}
impl DataObjectTrait for HostParallelScsiTargetTransport {
}
impl DataObjectTrait for HostPcieTargetTransport {
}
impl DataObjectTrait for HostRdmaTargetTransport {
}
impl DataObjectTrait for HostSerialAttachedTargetTransport {
}
impl DataObjectTrait for HostTcpTargetTransport {
}
impl DataObjectTrait for HostTdxInfo {
}
impl DataObjectTrait for HostTpmAttestationInfo {
}
impl DataObjectTrait for HostTpmAttestationReport {
}
impl DataObjectTrait for HostTpmEventDetails {
}
impl DataObjectTrait for HostTpmBootCompleteEventDetails {
}
impl DataObjectTrait for HostTpmBootSecurityOptionEventDetails {
}
impl DataObjectTrait for HostTpmNvTagEventDetails {
}
impl DataObjectTrait for HostTpmSignerEventDetails {
}
impl DataObjectTrait for HostTpmCommandEventDetails {
}
impl DataObjectTrait for HostTpmOptionEventDetails {
}
impl DataObjectTrait for HostTpmSoftwareComponentEventDetails {
}
impl DataObjectTrait for HostTpmVersionEventDetails {
}
impl DataObjectTrait for HostTpmEventLogEntry {
}
impl DataObjectTrait for HostTrustAuthorityAttestationInfo {
}
impl DataObjectTrait for HostUnresolvedVmfsExtent {
}
impl DataObjectTrait for HostUnresolvedVmfsResignatureSpec {
}
impl DataObjectTrait for HostUnresolvedVmfsResolutionResult {
}
impl DataObjectTrait for HostUnresolvedVmfsResolutionSpec {
}
impl DataObjectTrait for HostUnresolvedVmfsVolume {
}
impl DataObjectTrait for HostUnresolvedVmfsVolumeResolveStatus {
}
impl DataObjectTrait for HostVFlashManagerVFlashCacheConfigInfo {
}
impl DataObjectTrait for HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption {
}
impl DataObjectTrait for HostVFlashManagerVFlashCacheConfigSpec {
}
impl DataObjectTrait for HostVFlashManagerVFlashConfigInfo {
}
impl DataObjectTrait for HostVFlashManagerVFlashResourceConfigInfo {
}
impl DataObjectTrait for HostVFlashManagerVFlashResourceConfigSpec {
}
impl DataObjectTrait for HostVFlashManagerVFlashResourceRunTimeInfo {
}
impl DataObjectTrait for HostVFlashResourceConfigurationResult {
}
impl DataObjectTrait for HostVMotionConfig {
}
impl DataObjectTrait for HostVMotionInfo {
}
impl DataObjectTrait for HostVMotionManagerDstInstantCloneResult {
}
impl DataObjectTrait for HostVMotionManagerSrcInstantCloneResult {
}
impl DataObjectTrait for HostVMotionNetConfig {
}
impl DataObjectTrait for VimHostVsanStretchedClusterHostCapability {
}
impl DataObjectTrait for HostVffsSpec {
}
impl DataObjectTrait for HostVirtualNic {
}
impl DataObjectTrait for HostVirtualNicConfig {
}
impl DataObjectTrait for HostVirtualNicIpRouteSpec {
}
impl DataObjectTrait for HostVirtualNicOpaqueNetworkSpec {
}
impl DataObjectTrait for HostVirtualNicSpec {
}
impl DataObjectTrait for HostVirtualNicConnection {
}
impl DataObjectTrait for VirtualNicManagerNetConfig {
}
impl DataObjectTrait for HostVirtualNicManagerNicTypeSelection {
}
impl DataObjectTrait for HostVirtualNicManagerInfo {
}
impl DataObjectTrait for HostVirtualSwitch {
}
impl DataObjectTrait for HostVirtualSwitchBeaconConfig {
}
impl DataObjectTrait for HostVirtualSwitchBridge {
}
impl DataObjectTrait for HostVirtualSwitchAutoBridge {
}
impl DataObjectTrait for HostVirtualSwitchBondBridge {
}
impl DataObjectTrait for HostVirtualSwitchSimpleBridge {
}
impl DataObjectTrait for HostVirtualSwitchConfig {
}
impl DataObjectTrait for HostVirtualSwitchSpec {
}
impl DataObjectTrait for HostVmciAccessManagerAccessSpec {
}
impl DataObjectTrait for VmfsDatastoreOption {
}
impl DataObjectTrait for VmfsDatastoreBaseOption {
}
impl DataObjectTrait for VmfsDatastoreMultipleExtentOption {
}
impl DataObjectTrait for VmfsDatastoreSingleExtentOption {
}
impl DataObjectTrait for VmfsDatastoreAllExtentOption {
}
impl DataObjectTrait for VmfsDatastoreSpec {
}
impl DataObjectTrait for VmfsDatastoreCreateSpec {
}
impl DataObjectTrait for VmfsDatastoreExpandSpec {
}
impl DataObjectTrait for VmfsDatastoreExtendSpec {
}
impl DataObjectTrait for HostVmfsRescanResult {
}
impl DataObjectTrait for VmfsConfigOption {
}
impl DataObjectTrait for HostVmfsSpec {
}
impl DataObjectTrait for VmfsUnmapBandwidthSpec {
}
impl DataObjectTrait for VsanBasicDeviceInfo {
}
impl DataObjectTrait for VsanClusterMembershipInfo {
}
impl DataObjectTrait for VsanDaemonHealth {
}
impl DataObjectTrait for VsanDiskEncryptionHealth {
}
impl DataObjectTrait for VsanDiskRebalanceResult {
}
impl DataObjectTrait for VsanDitEncryptionHealthSummary {
}
impl DataObjectTrait for VsanEncryptionHealthSummary {
}
impl DataObjectTrait for VsanFailedRepairObjectResult {
}
impl DataObjectTrait for VsanFileServerHealthSummary {
}
impl DataObjectTrait for VsanFileServiceBalanceHealth {
}
impl DataObjectTrait for VsanFileServiceHealthSummary {
}
impl DataObjectTrait for VsanFileServiceRootFsHealth {
}
impl DataObjectTrait for VsanFileServiceShareHealthSummary {
}
impl DataObjectTrait for VsanHclCommonDeviceInfo {
}
impl DataObjectTrait for VsanHclNicInfo {
}
impl DataObjectTrait for VsanHclComputeResource {
}
impl DataObjectTrait for VsanHclControllerInfo {
}
impl DataObjectTrait for VsanHclDiskInfo {
}
impl DataObjectTrait for VsanHclFirmwareFile {
}
impl DataObjectTrait for VsanHclFirmwareUpdateSpec {
}
impl DataObjectTrait for VsanHclMemInfo {
}
impl DataObjectTrait for VsanHealthQuerySpec {
}
impl DataObjectTrait for VsanHostCimProviderInfo {
}
impl DataObjectTrait for VsanHostEmmSummary {
}
impl DataObjectTrait for VsanHostFwComponent {
}
impl DataObjectTrait for VsanHostGlobalDedupConfigHealthSummary {
}
impl DataObjectTrait for VsanHostHclInfo {
}
impl DataObjectTrait for VsanHostHealthSystemStatusResult {
}
impl DataObjectTrait for VsanHostHwDeviceId {
}
impl DataObjectTrait for VsanHostIoInsightInfo {
}
impl DataObjectTrait for VsanHostQueryCheckLimitsSpec {
}
impl DataObjectTrait for VsanHostReference {
}
impl DataObjectTrait for VsanHostVirtualApplianceInfo {
}
impl DataObjectTrait for VsanHostVmdkLoadTestResult {
}
impl DataObjectTrait for VsanHwToVcgInfoMapping {
}
impl DataObjectTrait for HostVsanInternalSystemCmmdsQuery {
}
impl DataObjectTrait for HostVsanInternalSystemDeleteVsanObjectsResult {
}
impl DataObjectTrait for VsanNewPolicyBatch {
}
impl DataObjectTrait for VsanPolicyChangeBatch {
}
impl DataObjectTrait for VsanPolicyCost {
}
impl DataObjectTrait for VsanPolicySatisfiability {
}
impl DataObjectTrait for HostVsanInternalSystemVsanObjectOperationResult {
}
impl DataObjectTrait for HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult {
}
impl DataObjectTrait for VsanIoInsightInfo {
}
impl DataObjectTrait for VsanIperfClientSpec {
}
impl DataObjectTrait for VsanKmsHealth {
}
impl DataObjectTrait for VsanLimitHealthResult {
}
impl DataObjectTrait for VsanNetworkDiagnosticsHealthInfo {
}
impl DataObjectTrait for VsanNetworkHealthResult {
}
impl DataObjectTrait for VsanNetworkLoadTestResult {
}
impl DataObjectTrait for VsanNetworkPeerHealthResult {
}
impl DataObjectTrait for VsanNicRdmaInfo {
}
impl DataObjectTrait for VsanObjectHealth {
}
impl DataObjectTrait for VsanObjectOverallHealth {
}
impl DataObjectTrait for VsanPhysicalDiskHealth {
}
impl DataObjectTrait for VsanPhysicalDiskHealthSummary {
}
impl DataObjectTrait for VsanProactiveRebalanceInfoEx {
}
impl DataObjectTrait for VsanQueryResultHostInfo {
}
impl DataObjectTrait for VsanRepairObjectsResult {
}
impl DataObjectTrait for VsanResourceHealth {
}
impl DataObjectTrait for VsanServerClusterInfo {
}
impl DataObjectTrait for VsanSmartDiskStats {
}
impl DataObjectTrait for VsanSmartParameter {
}
impl DataObjectTrait for VsanSmartStatsHostSummary {
}
impl DataObjectTrait for VsanVcgDeviceInfo {
}
impl DataObjectTrait for VsanVmdkIoLoadSpec {
}
impl DataObjectTrait for VsanVmdkLoadTestResult {
}
impl DataObjectTrait for VsanVmdkLoadTestSpec {
}
impl DataObjectTrait for VsanVsanPcapResult {
}
impl DataObjectTrait for HostVvolNqn {
}
impl DataObjectTrait for VVolHostPe {
}
impl DataObjectTrait for HostVvolVolumeHostVvolNqn {
}
impl DataObjectTrait for HostVvolVolumeSpecification {
}
impl DataObjectTrait for NetDhcpConfigInfo {
}
impl DataObjectTrait for NetDhcpConfigInfoDhcpOptions {
}
impl DataObjectTrait for NetDhcpConfigSpec {
}
impl DataObjectTrait for NetDhcpConfigSpecDhcpOptionsSpec {
}
impl DataObjectTrait for NetDnsConfigInfo {
}
impl DataObjectTrait for NetDnsConfigSpec {
}
impl DataObjectTrait for NetIpConfigInfo {
}
impl DataObjectTrait for NetIpConfigInfoIpAddress {
}
impl DataObjectTrait for NetIpConfigSpec {
}
impl DataObjectTrait for NetIpConfigSpecIpAddressSpec {
}
impl DataObjectTrait for NetIpRouteConfigInfo {
}
impl DataObjectTrait for NetIpRouteConfigInfoGateway {
}
impl DataObjectTrait for NetIpRouteConfigInfoIpRoute {
}
impl DataObjectTrait for NetIpRouteConfigSpec {
}
impl DataObjectTrait for NetIpRouteConfigSpecGatewaySpec {
}
impl DataObjectTrait for NetIpRouteConfigSpecIpRouteSpec {
}
impl DataObjectTrait for NetIpStackInfo {
}
impl DataObjectTrait for NetIpStackInfoDefaultRouter {
}
impl DataObjectTrait for NetIpStackInfoNetToMedia {
}
impl DataObjectTrait for NetBiosConfigInfo {
}
impl DataObjectTrait for WinNetBiosConfigInfo {
}
impl DataObjectTrait for ArrayUpdateSpec {
}
impl DataObjectTrait for ClusterDasVmConfigSpec {
}
impl DataObjectTrait for ClusterDatastoreUpdateSpec {
}
impl DataObjectTrait for ClusterDpmHostConfigSpec {
}
impl DataObjectTrait for ClusterDrsVmConfigSpec {
}
impl DataObjectTrait for ClusterGroupSpec {
}
impl DataObjectTrait for ClusterPreemptibleVmPairSpec {
}
impl DataObjectTrait for ClusterRuleSpec {
}
impl DataObjectTrait for ClusterTagCategoryUpdateSpec {
}
impl DataObjectTrait for ClusterVmOrchestrationSpec {
}
impl DataObjectTrait for StorageDrsOptionSpec {
}
impl DataObjectTrait for StorageDrsVmConfigSpec {
}
impl DataObjectTrait for VAppOvfSectionSpec {
}
impl DataObjectTrait for VAppProductSpec {
}
impl DataObjectTrait for VAppPropertySpec {
}
impl DataObjectTrait for VirtualMachineCpuIdInfoSpec {
}
impl DataObjectTrait for OptionType {
}
impl DataObjectTrait for BoolOption {
}
impl DataObjectTrait for ChoiceOption {
}
impl DataObjectTrait for FloatOption {
}
impl DataObjectTrait for IntOption {
}
impl DataObjectTrait for LongOption {
}
impl DataObjectTrait for StringOption {
}
impl DataObjectTrait for OptionValue {
}
impl DataObjectTrait for HostInternetScsiHbaParamValue {
}
impl DataObjectTrait for ApplyProfile {
}
impl DataObjectTrait for ProfileApplyProfileElement {
}
impl DataObjectTrait for ActiveDirectoryProfile {
}
impl DataObjectTrait for AuthenticationProfile {
}
impl DataObjectTrait for DateTimeProfile {
}
impl DataObjectTrait for DvsProfile {
}
impl DataObjectTrait for DvsVNicProfile {
}
impl DataObjectTrait for DvsHostVNicProfile {
}
impl DataObjectTrait for DvsServiceConsoleVNicProfile {
}
impl DataObjectTrait for FirewallProfile {
}
impl DataObjectTrait for FirewallProfileRulesetProfile {
}
impl DataObjectTrait for HostApplyProfile {
}
impl DataObjectTrait for HostMemoryProfile {
}
impl DataObjectTrait for IpAddressProfile {
}
impl DataObjectTrait for IpRouteProfile {
}
impl DataObjectTrait for NasStorageProfile {
}
impl DataObjectTrait for NetStackInstanceProfile {
}
impl DataObjectTrait for NetworkPolicyProfile {
}
impl DataObjectTrait for NetworkProfile {
}
impl DataObjectTrait for NetworkProfileDnsConfigProfile {
}
impl DataObjectTrait for NsxHostVNicProfile {
}
impl DataObjectTrait for OpaqueSwitchProfile {
}
impl DataObjectTrait for OptionProfile {
}
impl DataObjectTrait for PermissionProfile {
}
impl DataObjectTrait for PhysicalNicProfile {
}
impl DataObjectTrait for PnicUplinkProfile {
}
impl DataObjectTrait for PortGroupProfile {
}
impl DataObjectTrait for HostPortGroupProfile {
}
impl DataObjectTrait for ServiceConsolePortGroupProfile {
}
impl DataObjectTrait for VmPortGroupProfile {
}
impl DataObjectTrait for VirtualSwitchSelectionProfile {
}
impl DataObjectTrait for VlanProfile {
}
impl DataObjectTrait for SecurityProfile {
}
impl DataObjectTrait for ServiceProfile {
}
impl DataObjectTrait for StaticRouteProfile {
}
impl DataObjectTrait for StorageProfile {
}
impl DataObjectTrait for UserGroupProfile {
}
impl DataObjectTrait for UserProfile {
}
impl DataObjectTrait for VirtualSwitchProfile {
}
impl DataObjectTrait for LinkProfile {
}
impl DataObjectTrait for NumPortsProfile {
}
impl DataObjectTrait for ProfileApplyProfileProperty {
}
impl DataObjectTrait for ComplianceLocator {
}
impl DataObjectTrait for ComplianceProfile {
}
impl DataObjectTrait for ComplianceResult {
}
impl DataObjectTrait for ComplianceFailure {
}
impl DataObjectTrait for ComplianceFailureComplianceFailureValues {
}
impl DataObjectTrait for ProfileDeferredPolicyOptionParameter {
}
impl DataObjectTrait for ProfileExpression {
}
impl DataObjectTrait for ProfileCompositeExpression {
}
impl DataObjectTrait for ProfileSimpleExpression {
}
impl DataObjectTrait for ProfileExpressionMetadata {
}
impl DataObjectTrait for ProfileParameterMetadata {
}
impl DataObjectTrait for ProfileParameterMetadataParameterRelationMetadata {
}
impl DataObjectTrait for ProfilePolicy {
}
impl DataObjectTrait for ProfilePolicyMetadata {
}
impl DataObjectTrait for PolicyOption {
}
impl DataObjectTrait for CompositePolicyOption {
}
impl DataObjectTrait for ProfilePolicyOptionMetadata {
}
impl DataObjectTrait for ProfileCompositePolicyOptionMetadata {
}
impl DataObjectTrait for UserInputRequiredParameterMetadata {
}
impl DataObjectTrait for ProfileConfigInfo {
}
impl DataObjectTrait for ClusterProfileConfigInfo {
}
impl DataObjectTrait for HostProfileConfigInfo {
}
impl DataObjectTrait for ProfileCreateSpec {
}
impl DataObjectTrait for ProfileSerializedCreateSpec {
}
impl DataObjectTrait for HostProfileSerializedHostProfileSpec {
}
impl DataObjectTrait for ClusterProfileCreateSpec {
}
impl DataObjectTrait for ClusterProfileConfigSpec {
}
impl DataObjectTrait for ClusterProfileCompleteConfigSpec {
}
impl DataObjectTrait for ClusterProfileConfigServiceCreateSpec {
}
impl DataObjectTrait for HostProfileConfigSpec {
}
impl DataObjectTrait for HostProfileCompleteConfigSpec {
}
impl DataObjectTrait for HostProfileHostBasedConfigSpec {
}
impl DataObjectTrait for ProfileDescription {
}
impl DataObjectTrait for ProfileDescriptionSection {
}
impl DataObjectTrait for ProfileMetadata {
}
impl DataObjectTrait for ProfileMetadataProfileOperationMessage {
}
impl DataObjectTrait for ProfileMetadataProfileSortSpec {
}
impl DataObjectTrait for ProfilePropertyPath {
}
impl DataObjectTrait for ProfileProfileStructure {
}
impl DataObjectTrait for ProfileProfileStructureProperty {
}
impl DataObjectTrait for AnswerFile {
}
impl DataObjectTrait for AnswerFileStatusResult {
}
impl DataObjectTrait for AnswerFileStatusError {
}
impl DataObjectTrait for ProfileExecuteResult {
}
impl DataObjectTrait for ApplyHostProfileConfigurationSpec {
}
impl DataObjectTrait for ProfileExecuteError {
}
impl DataObjectTrait for HostProfileValidationFailureInfo {
}
impl DataObjectTrait for HostSpecification {
}
impl DataObjectTrait for HostSubSpecification {
}
impl DataObjectTrait for AnswerFileCreateSpec {
}
impl DataObjectTrait for AnswerFileOptionsCreateSpec {
}
impl DataObjectTrait for AnswerFileSerializedCreateSpec {
}
impl DataObjectTrait for ApplyHostProfileConfigurationResult {
}
impl DataObjectTrait for HostProfileManagerCompositionResult {
}
impl DataObjectTrait for HostProfileManagerCompositionResultResultElement {
}
impl DataObjectTrait for HostProfileManagerCompositionValidationResult {
}
impl DataObjectTrait for HostProfileManagerCompositionValidationResultResultElement {
}
impl DataObjectTrait for HostProfileManagerConfigTaskList {
}
impl DataObjectTrait for HostProfilesEntityCustomizations {
}
impl DataObjectTrait for StructuredCustomizations {
}
impl DataObjectTrait for HostProfileManagerHostToConfigSpecMap {
}
impl DataObjectTrait for ScheduledTaskDescription {
}
impl DataObjectTrait for ScheduledTaskSpec {
}
impl DataObjectTrait for ScheduledTaskInfo {
}
impl DataObjectTrait for TaskScheduler {
}
impl DataObjectTrait for AfterStartupTaskScheduler {
}
impl DataObjectTrait for OnceTaskScheduler {
}
impl DataObjectTrait for RecurrentTaskScheduler {
}
impl DataObjectTrait for HourlyTaskScheduler {
}
impl DataObjectTrait for DailyTaskScheduler {
}
impl DataObjectTrait for MonthlyTaskScheduler {
}
impl DataObjectTrait for MonthlyByDayTaskScheduler {
}
impl DataObjectTrait for MonthlyByWeekdayTaskScheduler {
}
impl DataObjectTrait for WeeklyTaskScheduler {
}
impl DataObjectTrait for ApplyStorageRecommendationResult {
}
impl DataObjectTrait for StorageDrsAutomationConfig {
}
impl DataObjectTrait for StorageDrsConfigInfo {
}
impl DataObjectTrait for StorageDrsConfigSpec {
}
impl DataObjectTrait for StorageDrsIoLoadBalanceConfig {
}
impl DataObjectTrait for PlacementAffinityRule {
}
impl DataObjectTrait for PlacementRankResult {
}
impl DataObjectTrait for PlacementRankSpec {
}
impl DataObjectTrait for StorageDrsPlacementRankVmSpec {
}
impl DataObjectTrait for StorageDrsPodConfigInfo {
}
impl DataObjectTrait for StorageDrsPodConfigSpec {
}
impl DataObjectTrait for StorageDrsPodSelectionSpec {
}
impl DataObjectTrait for PodDiskLocator {
}
impl DataObjectTrait for VmPodConfigForPlacement {
}
impl DataObjectTrait for StorageDrsSpaceLoadBalanceConfig {
}
impl DataObjectTrait for StoragePlacementResult {
}
impl DataObjectTrait for StoragePlacementSpec {
}
impl DataObjectTrait for StorageDrsVmConfigInfo {
}
impl DataObjectTrait for VAppCloneSpec {
}
impl DataObjectTrait for VAppCloneSpecNetworkMappingPair {
}
impl DataObjectTrait for VAppCloneSpecResourceMap {
}
impl DataObjectTrait for VAppEntityConfigInfo {
}
impl DataObjectTrait for VAppIpAssignmentInfo {
}
impl DataObjectTrait for IpPool {
}
impl DataObjectTrait for IpPoolAssociation {
}
impl DataObjectTrait for IpPoolIpPoolConfigInfo {
}
impl DataObjectTrait for VAppOvfSectionInfo {
}
impl DataObjectTrait for VAppProductInfo {
}
impl DataObjectTrait for VAppPropertyInfo {
}
impl DataObjectTrait for VmConfigInfo {
}
impl DataObjectTrait for VAppConfigInfo {
}
impl DataObjectTrait for VmConfigSpec {
}
impl DataObjectTrait for VAppConfigSpec {
}
impl DataObjectTrait for ClusterNetworkConfigSpec {
}
impl DataObjectTrait for FailoverNodeInfo {
}
impl DataObjectTrait for NodeDeploymentSpec {
}
impl DataObjectTrait for PassiveNodeDeploymentSpec {
}
impl DataObjectTrait for NodeNetworkSpec {
}
impl DataObjectTrait for PassiveNodeNetworkSpec {
}
impl DataObjectTrait for SourceNodeSpec {
}
impl DataObjectTrait for VchaClusterConfigInfo {
}
impl DataObjectTrait for VchaClusterConfigSpec {
}
impl DataObjectTrait for VchaClusterDeploymentSpec {
}
impl DataObjectTrait for VchaClusterNetworkSpec {
}
impl DataObjectTrait for WitnessNodeInfo {
}
impl DataObjectTrait for VchaClusterHealth {
}
impl DataObjectTrait for VchaClusterRuntimeInfo {
}
impl DataObjectTrait for VchaNodeRuntimeInfo {
}
impl DataObjectTrait for VirtualMachineAffinityInfo {
}
impl DataObjectTrait for VirtualMachineBaseIndependentFilterSpec {
}
impl DataObjectTrait for VirtualMachineEmptyIndependentFilterSpec {
}
impl DataObjectTrait for VirtualMachineIndependentFilterSpec {
}
impl DataObjectTrait for VirtualMachineBootOptions {
}
impl DataObjectTrait for VirtualMachineBootOptionsBootableDevice {
}
impl DataObjectTrait for VirtualMachineBootOptionsBootableCdromDevice {
}
impl DataObjectTrait for VirtualMachineBootOptionsBootableDiskDevice {
}
impl DataObjectTrait for VirtualMachineBootOptionsBootableEthernetDevice {
}
impl DataObjectTrait for VirtualMachineBootOptionsBootableFloppyDevice {
}
impl DataObjectTrait for VirtualMachineCapability {
}
impl DataObjectTrait for VirtualMachineCertThumbprint {
}
impl DataObjectTrait for VirtualMachineCloneSpec {
}
impl DataObjectTrait for VirtualMachineConfigInfo {
}
impl DataObjectTrait for VirtualMachineConfigInfoDatastoreUrlPair {
}
impl DataObjectTrait for VirtualMachineConfigInfoOverheadInfo {
}
impl DataObjectTrait for VirtualMachineConfigOption {
}
impl DataObjectTrait for VirtualMachineConfigOptionDescriptor {
}
impl DataObjectTrait for VirtualMachineConfigSpec {
}
impl DataObjectTrait for ConfigTarget {
}
impl DataObjectTrait for VirtualMachineConsolePreferences {
}
impl DataObjectTrait for VirtualMachineContentLibraryItemInfo {
}
impl DataObjectTrait for DatastoreOption {
}
impl DataObjectTrait for VirtualMachineDatastoreVolumeOption {
}
impl DataObjectTrait for VirtualMachineDefaultPowerOpInfo {
}
impl DataObjectTrait for VirtualMachineDeviceRuntimeInfo {
}
impl DataObjectTrait for VirtualMachineDeviceRuntimeInfoDeviceRuntimeState {
}
impl DataObjectTrait for VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState {
}
impl DataObjectTrait for VirtualMachineDvxClassInfo {
}
impl DataObjectTrait for FaultToleranceConfigInfo {
}
impl DataObjectTrait for FaultTolerancePrimaryConfigInfo {
}
impl DataObjectTrait for FaultToleranceSecondaryConfigInfo {
}
impl DataObjectTrait for FaultToleranceConfigSpec {
}
impl DataObjectTrait for FaultToleranceMetaSpec {
}
impl DataObjectTrait for FaultToleranceSecondaryOpResult {
}
impl DataObjectTrait for FaultToleranceVmConfigSpec {
}
impl DataObjectTrait for FaultToleranceDiskSpec {
}
impl DataObjectTrait for VirtualMachineFeatureRequirement {
}
impl DataObjectTrait for VirtualMachineFileInfo {
}
impl DataObjectTrait for VirtualMachineFileLayout {
}
impl DataObjectTrait for VirtualMachineFileLayoutDiskLayout {
}
impl DataObjectTrait for VirtualMachineFileLayoutSnapshotLayout {
}
impl DataObjectTrait for VirtualMachineFileLayoutEx {
}
impl DataObjectTrait for VirtualMachineFileLayoutExDiskLayout {
}
impl DataObjectTrait for VirtualMachineFileLayoutExDiskUnit {
}
impl DataObjectTrait for VirtualMachineFileLayoutExFileInfo {
}
impl DataObjectTrait for VirtualMachineFileLayoutExSnapshotLayout {
}
impl DataObjectTrait for VirtualMachineFlagInfo {
}
impl DataObjectTrait for VirtualMachineForkConfigInfo {
}
impl DataObjectTrait for GuestInfo {
}
impl DataObjectTrait for GuestInfoCustomizationInfo {
}
impl DataObjectTrait for GuestDiskInfo {
}
impl DataObjectTrait for GuestInfoNamespaceGenerationInfo {
}
impl DataObjectTrait for GuestNicInfo {
}
impl DataObjectTrait for GuestScreenInfo {
}
impl DataObjectTrait for GuestStackInfo {
}
impl DataObjectTrait for GuestInfoVirtualDiskMapping {
}
impl DataObjectTrait for VirtualMachineGuestIntegrityInfo {
}
impl DataObjectTrait for VirtualMachineGuestMonitoringModeInfo {
}
impl DataObjectTrait for GuestOsDescriptor {
}
impl DataObjectTrait for VirtualMachineGuestQuiesceSpec {
}
impl DataObjectTrait for VirtualMachineWindowsQuiesceSpec {
}
impl DataObjectTrait for VirtualMachineIdeDiskDevicePartitionInfo {
}
impl DataObjectTrait for VirtualMachineInstantCloneSpec {
}
impl DataObjectTrait for VirtualMachineLegacyNetworkSwitchInfo {
}
impl DataObjectTrait for VirtualMachineMessage {
}
impl DataObjectTrait for VirtualMachineMetadataManagerVmMetadata {
}
impl DataObjectTrait for VirtualMachineMetadataManagerVmMetadataInput {
}
impl DataObjectTrait for VirtualMachineMetadataManagerVmMetadataOwner {
}
impl DataObjectTrait for VirtualMachineMetadataManagerVmMetadataResult {
}
impl DataObjectTrait for VirtualMachineNetworkShaperInfo {
}
impl DataObjectTrait for VirtualMachineProfileDetails {
}
impl DataObjectTrait for VirtualMachineProfileDetailsDiskProfileDetails {
}
impl DataObjectTrait for VirtualMachineProfileRawData {
}
impl DataObjectTrait for VirtualMachineProfileSpec {
}
impl DataObjectTrait for VirtualMachineDefaultProfileSpec {
}
impl DataObjectTrait for VirtualMachineDefinedProfileSpec {
}
impl DataObjectTrait for VirtualMachineEmptyProfileSpec {
}
impl DataObjectTrait for VirtualMachinePropertyRelation {
}
impl DataObjectTrait for VirtualMachineQuestionInfo {
}
impl DataObjectTrait for VirtualMachineRelocateSpec {
}
impl DataObjectTrait for VirtualMachineRelocateSpecDiskLocator {
}
impl DataObjectTrait for VirtualMachineRelocateSpecDiskLocatorBackingSpec {
}
impl DataObjectTrait for ReplicationConfigSpec {
}
impl DataObjectTrait for ReplicationInfoDiskSettings {
}
impl DataObjectTrait for VirtualMachineRuntimeInfo {
}
impl DataObjectTrait for VirtualMachineRuntimeInfoDasProtectionState {
}
impl DataObjectTrait for ScheduledHardwareUpgradeInfo {
}
impl DataObjectTrait for VirtualMachineSgxInfo {
}
impl DataObjectTrait for VirtualMachineSnapshotInfo {
}
impl DataObjectTrait for SnapshotSelectionSpec {
}
impl DataObjectTrait for VirtualMachineSnapshotTree {
}
impl DataObjectTrait for VirtualMachineSriovDevicePoolInfo {
}
impl DataObjectTrait for VirtualMachineSriovNetworkDevicePoolInfo {
}
impl DataObjectTrait for VirtualMachineStorageInfo {
}
impl DataObjectTrait for VirtualMachineUsageOnDatastore {
}
impl DataObjectTrait for SubnetInfoFolderInfo {
}
impl DataObjectTrait for VirtualMachineSummary {
}
impl DataObjectTrait for VirtualMachineConfigSummary {
}
impl DataObjectTrait for VirtualMachineGuestSummary {
}
impl DataObjectTrait for VirtualMachineQuickStats {
}
impl DataObjectTrait for VirtualMachineQuickStatsMemoryTierStats {
}
impl DataObjectTrait for VirtualMachineStorageSummary {
}
impl DataObjectTrait for VirtualMachineTargetInfo {
}
impl DataObjectTrait for VirtualMachineCdromInfo {
}
impl DataObjectTrait for VirtualMachineDatastoreInfo {
}
impl DataObjectTrait for VirtualMachineDiskDeviceInfo {
}
impl DataObjectTrait for VirtualMachineIdeDiskDeviceInfo {
}
impl DataObjectTrait for VirtualMachineScsiDiskDeviceInfo {
}
impl DataObjectTrait for VirtualMachineDynamicPassthroughInfo {
}
impl DataObjectTrait for VirtualMachineFloppyInfo {
}
impl DataObjectTrait for VirtualMachineNetworkInfo {
}
impl DataObjectTrait for OpaqueNetworkTargetInfo {
}
impl DataObjectTrait for VirtualMachineParallelInfo {
}
impl DataObjectTrait for VirtualMachinePciPassthroughInfo {
}
impl DataObjectTrait for VirtualMachineSriovInfo {
}
impl DataObjectTrait for VirtualMachinePciSharedGpuPassthroughInfo {
}
impl DataObjectTrait for VirtualMachinePrecisionClockInfo {
}
impl DataObjectTrait for VirtualMachineScsiPassthroughInfo {
}
impl DataObjectTrait for VirtualMachineSerialInfo {
}
impl DataObjectTrait for VirtualMachineSgxTargetInfo {
}
impl DataObjectTrait for VirtualMachineSoundInfo {
}
impl DataObjectTrait for SubnetInfo {
}
impl DataObjectTrait for VirtualMachineUsbInfo {
}
impl DataObjectTrait for VirtualMachineVFlashModuleInfo {
}
impl DataObjectTrait for VirtualMachineVMotionStunTimeInfo {
}
impl DataObjectTrait for VirtualMachineVendorDeviceGroupInfo {
}
impl DataObjectTrait for VirtualMachineVgpuDeviceInfo {
}
impl DataObjectTrait for VirtualMachineVgpuProfileInfo {
}
impl DataObjectTrait for ToolsConfigInfo {
}
impl DataObjectTrait for ToolsConfigInfoToolsLastInstallInfo {
}
impl DataObjectTrait for UsbScanCodeSpec {
}
impl DataObjectTrait for UsbScanCodeSpecKeyEvent {
}
impl DataObjectTrait for UsbScanCodeSpecModifierType {
}
impl DataObjectTrait for VirtualMachineVcpuConfig {
}
impl DataObjectTrait for VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo {
}
impl DataObjectTrait for VirtualMachineVirtualDeviceGroups {
}
impl DataObjectTrait for VirtualMachineVirtualDeviceGroupsDeviceGroup {
}
impl DataObjectTrait for VirtualMachineVirtualDeviceGroupsVendorDeviceGroup {
}
impl DataObjectTrait for VirtualMachineVirtualDeviceSwap {
}
impl DataObjectTrait for VirtualMachineVirtualDeviceSwapDeviceSwapInfo {
}
impl DataObjectTrait for VirtualHardware {
}
impl DataObjectTrait for VirtualHardwareOption {
}
impl DataObjectTrait for VirtualMachineVirtualNuma {
}
impl DataObjectTrait for VirtualMachineVirtualNumaInfo {
}
impl DataObjectTrait for VirtualMachineVirtualPMem {
}
impl DataObjectTrait for CheckResult {
}
impl DataObjectTrait for CustomizationAdapterMapping {
}
impl DataObjectTrait for CustomizationGlobalIpSettings {
}
impl DataObjectTrait for CustomizationGuiRunOnce {
}
impl DataObjectTrait for CustomizationGuiUnattended {
}
impl DataObjectTrait for CustomizationIpSettings {
}
impl DataObjectTrait for CustomizationIpSettingsIpV6AddressSpec {
}
impl DataObjectTrait for CustomizationIdentification {
}
impl DataObjectTrait for CustomizationIdentitySettings {
}
impl DataObjectTrait for CustomizationCloudinitPrep {
}
impl DataObjectTrait for CustomizationLinuxPrep {
}
impl DataObjectTrait for CustomizationSysprep {
}
impl DataObjectTrait for CustomizationSysprepText {
}
impl DataObjectTrait for CustomizationIpGenerator {
}
impl DataObjectTrait for CustomizationCustomIpGenerator {
}
impl DataObjectTrait for CustomizationDhcpIpGenerator {
}
impl DataObjectTrait for CustomizationFixedIp {
}
impl DataObjectTrait for CustomizationUnknownIpGenerator {
}
impl DataObjectTrait for CustomizationIpV6Generator {
}
impl DataObjectTrait for CustomizationAutoIpV6Generator {
}
impl DataObjectTrait for CustomizationCustomIpV6Generator {
}
impl DataObjectTrait for CustomizationDhcpIpV6Generator {
}
impl DataObjectTrait for CustomizationFixedIpV6 {
}
impl DataObjectTrait for CustomizationStatelessIpV6Generator {
}
impl DataObjectTrait for CustomizationUnknownIpV6Generator {
}
impl DataObjectTrait for CustomizationLicenseFilePrintData {
}
impl DataObjectTrait for CustomizationName {
}
impl DataObjectTrait for CustomizationCustomName {
}
impl DataObjectTrait for CustomizationFixedName {
}
impl DataObjectTrait for CustomizationPrefixName {
}
impl DataObjectTrait for CustomizationUnknownName {
}
impl DataObjectTrait for CustomizationVirtualMachineName {
}
impl DataObjectTrait for CustomizationOptions {
}
impl DataObjectTrait for CustomizationLinuxOptions {
}
impl DataObjectTrait for CustomizationWinOptions {
}
impl DataObjectTrait for CustomizationPassword {
}
impl DataObjectTrait for CustomizationSpec {
}
impl DataObjectTrait for CustomizationUserData {
}
impl DataObjectTrait for HostDiskMappingInfo {
}
impl DataObjectTrait for HostDiskMappingPartitionInfo {
}
impl DataObjectTrait for HostDiskMappingOption {
}
impl DataObjectTrait for HostDiskMappingPartitionOption {
}
impl DataObjectTrait for VirtualDevice {
}
impl DataObjectTrait for VirtualCdrom {
}
impl DataObjectTrait for VirtualController {
}
impl DataObjectTrait for VirtualIdeController {
}
impl DataObjectTrait for VirtualNvdimmController {
}
impl DataObjectTrait for VirtualNvmeController {
}
impl DataObjectTrait for VirtualPciController {
}
impl DataObjectTrait for VirtualPs2Controller {
}
impl DataObjectTrait for VirtualSataController {
}
impl DataObjectTrait for VirtualAhciController {
}
impl DataObjectTrait for VirtualScsiController {
}
impl DataObjectTrait for ParaVirtualScsiController {
}
impl DataObjectTrait for VirtualBusLogicController {
}
impl DataObjectTrait for VirtualLsiLogicController {
}
impl DataObjectTrait for VirtualLsiLogicSasController {
}
impl DataObjectTrait for VirtualSioController {
}
impl DataObjectTrait for VirtualUsbController {
}
impl DataObjectTrait for VirtualUsbxhciController {
}
impl DataObjectTrait for VirtualDisk {
}
impl DataObjectTrait for VirtualEthernetCard {
}
impl DataObjectTrait for VirtualE1000 {
}
impl DataObjectTrait for VirtualE1000E {
}
impl DataObjectTrait for VirtualPcNet32 {
}
impl DataObjectTrait for VirtualSriovEthernetCard {
}
impl DataObjectTrait for VirtualVmxnet {
}
impl DataObjectTrait for VirtualVmxnet2 {
}
impl DataObjectTrait for VirtualVmxnet3 {
}
impl DataObjectTrait for VirtualVmxnet3Vrdma {
}
impl DataObjectTrait for VirtualFloppy {
}
impl DataObjectTrait for VirtualKeyboard {
}
impl DataObjectTrait for VirtualNvdimm {
}
impl DataObjectTrait for VirtualPciPassthrough {
}
impl DataObjectTrait for VirtualParallelPort {
}
impl DataObjectTrait for VirtualPointingDevice {
}
impl DataObjectTrait for VirtualPrecisionClock {
}
impl DataObjectTrait for VirtualScsiPassthrough {
}
impl DataObjectTrait for VirtualSerialPort {
}
impl DataObjectTrait for VirtualSoundCard {
}
impl DataObjectTrait for VirtualEnsoniq1371 {
}
impl DataObjectTrait for VirtualHdAudioCard {
}
impl DataObjectTrait for VirtualSoundBlaster16 {
}
impl DataObjectTrait for VirtualTpm {
}
impl DataObjectTrait for VirtualUsb {
}
impl DataObjectTrait for VirtualMachineVmciDevice {
}
impl DataObjectTrait for VirtualMachineVmirom {
}
impl DataObjectTrait for VirtualMachineVideoCard {
}
impl DataObjectTrait for VirtualWdt {
}
impl DataObjectTrait for VirtualDeviceBackingInfo {
}
impl DataObjectTrait for VirtualDeviceDeviceBackingInfo {
}
impl DataObjectTrait for VirtualCdromAtapiBackingInfo {
}
impl DataObjectTrait for VirtualCdromPassthroughBackingInfo {
}
impl DataObjectTrait for VirtualDiskRawDiskVer2BackingInfo {
}
impl DataObjectTrait for VirtualDiskPartitionedRawDiskVer2BackingInfo {
}
impl DataObjectTrait for VirtualEthernetCardLegacyNetworkBackingInfo {
}
impl DataObjectTrait for VirtualEthernetCardNetworkBackingInfo {
}
impl DataObjectTrait for VirtualFloppyDeviceBackingInfo {
}
impl DataObjectTrait for VirtualPciPassthroughDeviceBackingInfo {
}
impl DataObjectTrait for VirtualPciPassthroughDynamicBackingInfo {
}
impl DataObjectTrait for VirtualParallelPortDeviceBackingInfo {
}
impl DataObjectTrait for VirtualPointingDeviceDeviceBackingInfo {
}
impl DataObjectTrait for VirtualScsiPassthroughDeviceBackingInfo {
}
impl DataObjectTrait for VirtualSerialPortDeviceBackingInfo {
}
impl DataObjectTrait for VirtualSoundCardDeviceBackingInfo {
}
impl DataObjectTrait for VirtualUsbRemoteHostBackingInfo {
}
impl DataObjectTrait for VirtualUsbusbBackingInfo {
}
impl DataObjectTrait for VirtualDeviceFileBackingInfo {
}
impl DataObjectTrait for VirtualCdromIsoBackingInfo {
}
impl DataObjectTrait for VirtualDiskFlatVer1BackingInfo {
}
impl DataObjectTrait for VirtualDiskFlatVer2BackingInfo {
}
impl DataObjectTrait for VirtualDiskLocalPMemBackingInfo {
}
impl DataObjectTrait for VirtualDiskRawDiskMappingVer1BackingInfo {
}
impl DataObjectTrait for VirtualDiskSeSparseBackingInfo {
}
impl DataObjectTrait for VirtualDiskSparseVer1BackingInfo {
}
impl DataObjectTrait for VirtualDiskSparseVer2BackingInfo {
}
impl DataObjectTrait for VirtualFloppyImageBackingInfo {
}
impl DataObjectTrait for VirtualNvdimmBackingInfo {
}
impl DataObjectTrait for VirtualParallelPortFileBackingInfo {
}
impl DataObjectTrait for VirtualSerialPortFileBackingInfo {
}
impl DataObjectTrait for VirtualDevicePipeBackingInfo {
}
impl DataObjectTrait for VirtualSerialPortPipeBackingInfo {
}
impl DataObjectTrait for VirtualDeviceRemoteDeviceBackingInfo {
}
impl DataObjectTrait for VirtualCdromRemoteAtapiBackingInfo {
}
impl DataObjectTrait for VirtualCdromRemotePassthroughBackingInfo {
}
impl DataObjectTrait for VirtualFloppyRemoteDeviceBackingInfo {
}
impl DataObjectTrait for VirtualUsbRemoteClientBackingInfo {
}
impl DataObjectTrait for VirtualDeviceUriBackingInfo {
}
impl DataObjectTrait for VirtualSerialPortUriBackingInfo {
}
impl DataObjectTrait for VirtualEthernetCardDistributedVirtualPortBackingInfo {
}
impl DataObjectTrait for VirtualEthernetCardOpaqueNetworkBackingInfo {
}
impl DataObjectTrait for VirtualPciPassthroughDvxBackingInfo {
}
impl DataObjectTrait for VirtualPciPassthroughPluginBackingInfo {
}
impl DataObjectTrait for VirtualPciPassthroughVmiopBackingInfo {
}
impl DataObjectTrait for VirtualPrecisionClockSystemClockBackingInfo {
}
impl DataObjectTrait for VirtualSerialPortThinPrintBackingInfo {
}
impl DataObjectTrait for VirtualSriovEthernetCardSriovBackingInfo {
}
impl DataObjectTrait for VirtualDeviceBusSlotInfo {
}
impl DataObjectTrait for VirtualDevicePciBusSlotInfo {
}
impl DataObjectTrait for VirtualUsbControllerPciBusSlotInfo {
}
impl DataObjectTrait for VirtualDeviceConnectInfo {
}
impl DataObjectTrait for VirtualDeviceDeviceGroupInfo {
}
impl DataObjectTrait for VirtualDeviceOption {
}
impl DataObjectTrait for VirtualCdromOption {
}
impl DataObjectTrait for VirtualControllerOption {
}
impl DataObjectTrait for VirtualIdeControllerOption {
}
impl DataObjectTrait for VirtualNvdimmControllerOption {
}
impl DataObjectTrait for VirtualNvmeControllerOption {
}
impl DataObjectTrait for VirtualPciControllerOption {
}
impl DataObjectTrait for VirtualPs2ControllerOption {
}
impl DataObjectTrait for VirtualSataControllerOption {
}
impl DataObjectTrait for VirtualAhciControllerOption {
}
impl DataObjectTrait for VirtualScsiControllerOption {
}
impl DataObjectTrait for ParaVirtualScsiControllerOption {
}
impl DataObjectTrait for VirtualBusLogicControllerOption {
}
impl DataObjectTrait for VirtualLsiLogicControllerOption {
}
impl DataObjectTrait for VirtualLsiLogicSasControllerOption {
}
impl DataObjectTrait for VirtualSioControllerOption {
}
impl DataObjectTrait for VirtualUsbControllerOption {
}
impl DataObjectTrait for VirtualUsbxhciControllerOption {
}
impl DataObjectTrait for VirtualDiskOption {
}
impl DataObjectTrait for VirtualEthernetCardOption {
}
impl DataObjectTrait for VirtualE1000Option {
}
impl DataObjectTrait for VirtualE1000EOption {
}
impl DataObjectTrait for VirtualPcNet32Option {
}
impl DataObjectTrait for VirtualSriovEthernetCardOption {
}
impl DataObjectTrait for VirtualVmxnetOption {
}
impl DataObjectTrait for VirtualVmxnet2Option {
}
impl DataObjectTrait for VirtualVmxnet3Option {
}
impl DataObjectTrait for VirtualVmxnet3VrdmaOption {
}
impl DataObjectTrait for VirtualFloppyOption {
}
impl DataObjectTrait for VirtualKeyboardOption {
}
impl DataObjectTrait for VirtualNvdimmOption {
}
impl DataObjectTrait for VirtualPciPassthroughOption {
}
impl DataObjectTrait for VirtualParallelPortOption {
}
impl DataObjectTrait for VirtualPointingDeviceOption {
}
impl DataObjectTrait for VirtualPrecisionClockOption {
}
impl DataObjectTrait for VirtualScsiPassthroughOption {
}
impl DataObjectTrait for VirtualSerialPortOption {
}
impl DataObjectTrait for VirtualSoundCardOption {
}
impl DataObjectTrait for VirtualEnsoniq1371Option {
}
impl DataObjectTrait for VirtualHdAudioCardOption {
}
impl DataObjectTrait for VirtualSoundBlaster16Option {
}
impl DataObjectTrait for VirtualTpmOption {
}
impl DataObjectTrait for VirtualUsbOption {
}
impl DataObjectTrait for VirtualMachineVmciDeviceOption {
}
impl DataObjectTrait for VirtualVmiromOption {
}
impl DataObjectTrait for VirtualVideoCardOption {
}
impl DataObjectTrait for VirtualWdtOption {
}
impl DataObjectTrait for VirtualDeviceBackingOption {
}
impl DataObjectTrait for VirtualDeviceDeviceBackingOption {
}
impl DataObjectTrait for VirtualCdromAtapiBackingOption {
}
impl DataObjectTrait for VirtualCdromPassthroughBackingOption {
}
impl DataObjectTrait for VirtualCdromRemoteAtapiBackingOption {
}
impl DataObjectTrait for VirtualDiskRawDiskMappingVer1BackingOption {
}
impl DataObjectTrait for VirtualDiskRawDiskVer2BackingOption {
}
impl DataObjectTrait for VirtualDiskPartitionedRawDiskVer2BackingOption {
}
impl DataObjectTrait for VirtualEthernetCardLegacyNetworkBackingOption {
}
impl DataObjectTrait for VirtualEthernetCardNetworkBackingOption {
}
impl DataObjectTrait for VirtualFloppyDeviceBackingOption {
}
impl DataObjectTrait for VirtualPciPassthroughDeviceBackingOption {
}
impl DataObjectTrait for VirtualPciPassthroughDynamicBackingOption {
}
impl DataObjectTrait for VirtualParallelPortDeviceBackingOption {
}
impl DataObjectTrait for VirtualPointingDeviceBackingOption {
}
impl DataObjectTrait for VirtualScsiPassthroughDeviceBackingOption {
}
impl DataObjectTrait for VirtualSerialPortDeviceBackingOption {
}
impl DataObjectTrait for VirtualSoundCardDeviceBackingOption {
}
impl DataObjectTrait for VirtualUsbRemoteHostBackingOption {
}
impl DataObjectTrait for VirtualUsbusbBackingOption {
}
impl DataObjectTrait for VirtualDeviceFileBackingOption {
}
impl DataObjectTrait for VirtualCdromIsoBackingOption {
}
impl DataObjectTrait for VirtualDiskFlatVer1BackingOption {
}
impl DataObjectTrait for VirtualDiskFlatVer2BackingOption {
}
impl DataObjectTrait for VirtualDiskLocalPMemBackingOption {
}
impl DataObjectTrait for VirtualDiskSeSparseBackingOption {
}
impl DataObjectTrait for VirtualDiskSparseVer1BackingOption {
}
impl DataObjectTrait for VirtualDiskSparseVer2BackingOption {
}
impl DataObjectTrait for VirtualFloppyImageBackingOption {
}
impl DataObjectTrait for VirtualParallelPortFileBackingOption {
}
impl DataObjectTrait for VirtualSerialPortFileBackingOption {
}
impl DataObjectTrait for VirtualDevicePipeBackingOption {
}
impl DataObjectTrait for VirtualSerialPortPipeBackingOption {
}
impl DataObjectTrait for VirtualDeviceRemoteDeviceBackingOption {
}
impl DataObjectTrait for VirtualCdromRemotePassthroughBackingOption {
}
impl DataObjectTrait for VirtualFloppyRemoteDeviceBackingOption {
}
impl DataObjectTrait for VirtualUsbRemoteClientBackingOption {
}
impl DataObjectTrait for VirtualDeviceUriBackingOption {
}
impl DataObjectTrait for VirtualSerialPortUriBackingOption {
}
impl DataObjectTrait for VirtualEthernetCardDvPortBackingOption {
}
impl DataObjectTrait for VirtualEthernetCardOpaqueNetworkBackingOption {
}
impl DataObjectTrait for VirtualPciPassthroughDvxBackingOption {
}
impl DataObjectTrait for VirtualPciPassthroughPluginBackingOption {
}
impl DataObjectTrait for VirtualPciPassthroughVmiopBackingOption {
}
impl DataObjectTrait for VirtualPrecisionClockSystemClockBackingOption {
}
impl DataObjectTrait for VirtualSerialPortThinPrintBackingOption {
}
impl DataObjectTrait for VirtualSriovEthernetCardSriovBackingOption {
}
impl DataObjectTrait for VirtualDeviceBusSlotOption {
}
impl DataObjectTrait for VirtualDeviceConnectOption {
}
impl DataObjectTrait for VirtualDeviceConfigSpec {
}
impl DataObjectTrait for VirtualDiskConfigSpec {
}
impl DataObjectTrait for VirtualDeviceConfigSpecBackingSpec {
}
impl DataObjectTrait for VirtualDiskVFlashCacheConfigInfo {
}
impl DataObjectTrait for VirtualDiskId {
}
impl DataObjectTrait for VirtualDiskDeltaDiskFormatsSupported {
}
impl DataObjectTrait for VirtualDiskOptionVFlashCacheConfigOption {
}
impl DataObjectTrait for VirtualEthernetCardResourceAllocation {
}
impl DataObjectTrait for VirtualPciPassthroughAllowedDevice {
}
impl DataObjectTrait for VirtualMachineVmciDeviceFilterInfo {
}
impl DataObjectTrait for VirtualMachineVmciDeviceFilterSpec {
}
impl DataObjectTrait for VirtualMachineVmciDeviceOptionFilterSpecOption {
}
impl DataObjectTrait for VirtualVmxnet3StrictLatencyConfig {
}
impl DataObjectTrait for VirtualVmxnet3OptionStrictLatencyConfigOption {
}
impl DataObjectTrait for GuestAliases {
}
impl DataObjectTrait for GuestAuthAliasInfo {
}
impl DataObjectTrait for GuestAuthSubject {
}
impl DataObjectTrait for GuestAuthAnySubject {
}
impl DataObjectTrait for GuestAuthNamedSubject {
}
impl DataObjectTrait for GuestMappedAliases {
}
impl DataObjectTrait for GuestFileAttributes {
}
impl DataObjectTrait for GuestPosixFileAttributes {
}
impl DataObjectTrait for GuestWindowsFileAttributes {
}
impl DataObjectTrait for GuestFileInfo {
}
impl DataObjectTrait for FileTransferInformation {
}
impl DataObjectTrait for GuestListFileInfo {
}
impl DataObjectTrait for GuestAuthentication {
}
impl DataObjectTrait for NamePasswordAuthentication {
}
impl DataObjectTrait for SamlTokenAuthentication {
}
impl DataObjectTrait for SspiAuthentication {
}
impl DataObjectTrait for TicketedSessionAuthentication {
}
impl DataObjectTrait for GuestProcessInfo {
}
impl DataObjectTrait for GuestProgramSpec {
}
impl DataObjectTrait for GuestWindowsProgramSpec {
}
impl DataObjectTrait for GuestRegKeySpec {
}
impl DataObjectTrait for GuestRegKeyNameSpec {
}
impl DataObjectTrait for GuestRegKeyRecordSpec {
}
impl DataObjectTrait for GuestRegValueSpec {
}
impl DataObjectTrait for GuestRegValueDataSpec {
}
impl DataObjectTrait for GuestRegValueBinarySpec {
}
impl DataObjectTrait for GuestRegValueDwordSpec {
}
impl DataObjectTrait for GuestRegValueExpandStringSpec {
}
impl DataObjectTrait for GuestRegValueMultiStringSpec {
}
impl DataObjectTrait for GuestRegValueQwordSpec {
}
impl DataObjectTrait for GuestRegValueStringSpec {
}
impl DataObjectTrait for GuestRegValueNameSpec {
}
impl DataObjectTrait for DeviceGroupId {
}
impl DataObjectTrait for FaultDomainId {
}
impl DataObjectTrait for FaultDomainInfo {
}
impl DataObjectTrait for ReplicationGroupId {
}
impl DataObjectTrait for ReplicationSpec {
}
impl DataObjectTrait for VsanCapacityReservationInfo {
}
impl DataObjectTrait for ClusterRuntimeInfo {
}
impl DataObjectTrait for VsanCompatibilityCheckResult {
}
impl DataObjectTrait for VimVsanDataEfficiencyCapacityState {
}
impl DataObjectTrait for VsanDataEfficiencyConfig {
}
impl DataObjectTrait for VsanDataEfficiencyConfigEx {
}
impl DataObjectTrait for VsanDataEncryptionConfig {
}
impl DataObjectTrait for VsanDataInTransitEncryptionConfig {
}
impl DataObjectTrait for VsanDatastoreConfig {
}
impl DataObjectTrait for VsanAdvancedDatastoreConfig {
}
impl DataObjectTrait for VsanDatastoreSpec {
}
impl DataObjectTrait for VsanClientDatastoreConfig {
}
impl DataObjectTrait for VsanXvcClientConfig {
}
impl DataObjectTrait for DefaultDatastorePolicySelectionInfo {
}
impl DataObjectTrait for VsanDirectoryServerConfig {
}
impl DataObjectTrait for ActiveVsanDirectoryServerConfig {
}
impl DataObjectTrait for DiskClaimConfiguration {
}
impl DataObjectTrait for VsanEntityCompatibilityResult {
}
impl DataObjectTrait for EntityResourceCheckDetails {
}
impl DataObjectTrait for VsanDiskGroupResourceCheckResult {
}
impl DataObjectTrait for VsanDiskResourceCheckResult {
}
impl DataObjectTrait for VsanStoragePoolDiskResourceCheckResult {
}
impl DataObjectTrait for VsanFaultDomainResourceCheckResult {
}
impl DataObjectTrait for VsanHostResourceCheckResult {
}
impl DataObjectTrait for VsanResourceCheckResult {
}
impl DataObjectTrait for VsanResourceCheckComponentResult {
}
impl DataObjectTrait for VsanResourceCheckDataPersistenceResult {
}
impl DataObjectTrait for VsanResourceCheckVsanResult {
}
impl DataObjectTrait for VsanStoragePoolResourceCheckResult {
}
impl DataObjectTrait for VsanFileServiceConfig {
}
impl DataObjectTrait for VsanFileServiceDomain {
}
impl DataObjectTrait for VsanFileServiceDomainConfig {
}
impl DataObjectTrait for VsanFileServiceDomainQuerySpec {
}
impl DataObjectTrait for VsanFileShare {
}
impl DataObjectTrait for VsanFileShareConfig {
}
impl DataObjectTrait for VsanFileShareNetPermission {
}
impl DataObjectTrait for VsanFileShareQueryProperties {
}
impl DataObjectTrait for FileShareQueryResult {
}
impl DataObjectTrait for VsanFileShareQuerySpec {
}
impl DataObjectTrait for VsanFileShareRuntimeInfo {
}
impl DataObjectTrait for VsanFileShareSmbOptions {
}
impl DataObjectTrait for VsanFileShareSnapshot {
}
impl DataObjectTrait for VsanFileShareSnapshotConfig {
}
impl DataObjectTrait for VsanFileShareSnapshotQueryResult {
}
impl DataObjectTrait for VsanFileShareSnapshotQuerySpec {
}
impl DataObjectTrait for VsanHciMeshDatastoreSource {
}
impl DataObjectTrait for VsanIoDiagnosticsFailedCheck {
}
impl DataObjectTrait for VsanIoDiagnosticsInstance {
}
impl DataObjectTrait for VsanIoDiagnosticsInstanceEvent {
}
impl DataObjectTrait for VsanIoDiagnosticsInstanceQuerySpec {
}
impl DataObjectTrait for VsanIoDiagnosticsObjectLayout {
}
impl DataObjectTrait for VsanIoDiagnosticsPrecheckResult {
}
impl DataObjectTrait for VsanIoDiagnosticsStats {
}
impl DataObjectTrait for VsanIoDiagnosticsTarget {
}
impl DataObjectTrait for VsanIoDiagnosticsTargetStats {
}
impl DataObjectTrait for VsanIoLatency {
}
impl DataObjectTrait for VsanIoLatencyMetrics {
}
impl DataObjectTrait for LifecycleConfigDetails {
}
impl DataObjectTrait for LifecycleFaultDomainDetails {
}
impl DataObjectTrait for LifecyclePreCheckResult {
}
impl DataObjectTrait for LifecycleWitnessDetails {
}
impl DataObjectTrait for VsanMetricProfile {
}
impl DataObjectTrait for VsanMetricsConfig {
}
impl DataObjectTrait for VsanMountPrecheckItem {
}
impl DataObjectTrait for VsanDatastoreSourcePrecheckItem {
}
impl DataObjectTrait for VsanMountPrecheckNetworkConnectivityResult {
}
impl DataObjectTrait for VsanMountPrecheckNetworkLatencyResult {
}
impl DataObjectTrait for VsanMountPrecheckNetworkConnectivity {
}
impl DataObjectTrait for VsanMountPrecheckNetworkConnectivityDetail {
}
impl DataObjectTrait for VsanMountPrecheckNetworkLatency {
}
impl DataObjectTrait for VsanMountPrecheckNetworkLatencyDetail {
}
impl DataObjectTrait for VsanMountPrecheckResult {
}
impl DataObjectTrait for VsanDatastoreSourcePrecheckResult {
}
impl DataObjectTrait for VsanObjectHealthTelemetrySummary {
}
impl DataObjectTrait for VsanObjectIoStats {
}
impl DataObjectTrait for VsanProactiveRebalanceInfo {
}
impl DataObjectTrait for VsanRdmaConfig {
}
impl DataObjectTrait for VsanRemoteVcInfo {
}
impl DataObjectTrait for VsanRemoteVcInfoStandalone {
}
impl DataObjectTrait for RemoteVsanSite {
}
impl DataObjectTrait for RemoteVsanSiteAffinity {
}
impl DataObjectTrait for RepairTimerInfo {
}
impl DataObjectTrait for VsanResourceCheckSpec {
}
impl DataObjectTrait for VsanResourceCheckStatus {
}
impl DataObjectTrait for VsanResourceCheckTaskDetails {
}
impl DataObjectTrait for VsanDiskDataEvacuationResourceCheckTaskDetails {
}
impl DataObjectTrait for ResyncIopsInfo {
}
impl DataObjectTrait for VsanRuntimeStatsHostMap {
}
impl DataObjectTrait for SsdEnduranceThresholdSpec {
}
impl DataObjectTrait for VsanServerHostUnicastInfo {
}
impl DataObjectTrait for VsanSharedWitnessCompatibilityResult {
}
impl DataObjectTrait for VsanSnapServiceConfig {
}
impl DataObjectTrait for VcRemoteVsanServerClusterConfig {
}
impl DataObjectTrait for VcRemoteVsanServerClusterInfo {
}
impl DataObjectTrait for VsanIscsiVipConfigSpec {
}
impl DataObjectTrait for VsanIscsiVipConfig {
}
impl DataObjectTrait for VsanIscsiVipDVswitchConfig {
}
impl DataObjectTrait for VsanVipNetworkConfig {
}
impl DataObjectTrait for VsanIscsiVipVswitchConfig {
}
impl DataObjectTrait for VsanBurnInTest {
}
impl DataObjectTrait for VsanBurnInTestCheckResult {
}
impl DataObjectTrait for VsanCloudHealthStatus {
}
impl DataObjectTrait for VsanClusterBurnInTestResultList {
}
impl DataObjectTrait for VsanCompliantDriver {
}
impl DataObjectTrait for VsanCompliantFirmware {
}
impl DataObjectTrait for VsanConfigBaseIssue {
}
impl DataObjectTrait for VsanConfigNotAllDisksClaimedIssue {
}
impl DataObjectTrait for VsanConfigCheckResult {
}
impl DataObjectTrait for VsanDatastoreDefaultPolicySelectionConfig {
}
impl DataObjectTrait for VsanDeconvergedNetConfig {
}
impl DataObjectTrait for VsanDiskModelInfo {
}
impl DataObjectTrait for VsanDownloadItem {
}
impl DataObjectTrait for VsanEsaConfig {
}
impl DataObjectTrait for VsanEsaConfigInfo {
}
impl DataObjectTrait for VsanEsaDiskConfiguration {
}
impl DataObjectTrait for VsanExtendedConfig {
}
impl DataObjectTrait for VsanFileServiceOvfSpec {
}
impl DataObjectTrait for VsanFileServicePreflightCheckResult {
}
impl DataObjectTrait for VsanGenericClusterBaseIssue {
}
impl DataObjectTrait for VsanGenericClusterBestPracticeHealth {
}
impl DataObjectTrait for VsanHclDeviceConstraint {
}
impl DataObjectTrait for VsanHclDiskConstraint {
}
impl DataObjectTrait for VsanHclDriverInfo {
}
impl DataObjectTrait for VsanHclMinFwConstraint {
}
impl DataObjectTrait for VsanHclQuerySpec {
}
impl DataObjectTrait for VsanHclReleaseConstraint {
}
impl DataObjectTrait for VsanHealthConfigSpec {
}
impl DataObjectTrait for VsanHealthCustomizationSpec {
}
impl DataObjectTrait for VsanHealthThreshold {
}
impl DataObjectTrait for VsanHistoricalHealthConfig {
}
impl DataObjectTrait for VsanHostDeviceInfo {
}
impl DataObjectTrait for VsanHwToVcgInfoMappingSpec {
}
impl DataObjectTrait for VsanIoTripAnalyzerConfig {
}
impl DataObjectTrait for VsanIoTripAnalyzerRecurrence {
}
impl DataObjectTrait for VsanInternalExtendedConfig {
}
impl DataObjectTrait for VsanNetworkConfigBaseIssue {
}
impl DataObjectTrait for VsanNetworkConfigPnicSpeedInconsistencyIssue {
}
impl DataObjectTrait for VsanNetworkConfigPortgroupWithNoRedundancyIssue {
}
impl DataObjectTrait for VsanNetworkConfigVdsScopeIssue {
}
impl DataObjectTrait for VsanNetworkConfigVsanNotOnVdsIssue {
}
impl DataObjectTrait for VsanNetworkConfigVswitchWithNoRedundancyIssue {
}
impl DataObjectTrait for VsanNetworkVMotionVmknicNotFountIssue {
}
impl DataObjectTrait for VsanNetworkConfigBestPracticeHealth {
}
impl DataObjectTrait for VsanObjSnapParams {
}
impl DataObjectTrait for VsanObjectDetail {
}
impl DataObjectTrait for VsanObjectSnapshotId {
}
impl DataObjectTrait for VimVsanVsanPMemConfig {
}
impl DataObjectTrait for VsanPerfsvcHealthResult {
}
impl DataObjectTrait for VsanPrepareVsanForVcsaSpec {
}
impl DataObjectTrait for VsanSnapshotDetail {
}
impl DataObjectTrait for VsanSnapshotQueryResult {
}
impl DataObjectTrait for VsanSnapshotQuerySpec {
}
impl DataObjectTrait for VsanSpaceEfficiencyMetadataSize {
}
impl DataObjectTrait for VsanSpaceEfficiencyRatio {
}
impl DataObjectTrait for VsanUnmapConfig {
}
impl DataObjectTrait for VsanUpdateItem {
}
impl DataObjectTrait for VsanVcPostDeployConfigSpec {
}
impl DataObjectTrait for VsanVcStretchedClusterConfigSpec {
}
impl DataObjectTrait for VsanVcsaDeploymentProgress {
}
impl DataObjectTrait for VsanVdsMigrationPlan {
}
impl DataObjectTrait for VsanVdsPgMigrationHostInfo {
}
impl DataObjectTrait for VsanVdsPgMigrationSpec {
}
impl DataObjectTrait for VsanVdsPgMigrationVmInfo {
}
impl DataObjectTrait for VsanVibInstallPreflightStatus {
}
impl DataObjectTrait for VsanVibScanResult {
}
impl DataObjectTrait for VsanVibSpec {
}
impl DataObjectTrait for VsanVmVdsMigrationSpec {
}
impl DataObjectTrait for VsanVnicVdsMigrationSpec {
}
impl DataObjectTrait for VsanVumConfig {
}
impl DataObjectTrait for VsanWitnessHostConfig {
}
impl DataObjectTrait for VsanXvcClientInfo {
}
impl DataObjectTrait for VsanXvcDatastoreConfig {
}
impl DataObjectTrait for VsanXvcDatastoreInfo {
}
impl DataObjectTrait for VsanXvcClientInfoSpec {
}
impl DataObjectTrait for VsanXvcQueryCriteria {
}
impl DataObjectTrait for VsanXvcQueryFilter {
}
impl DataObjectTrait for VsanXvcQueryPropertyValue {
}
impl DataObjectTrait for VsanXvcQueryResultSet {
}
impl DataObjectTrait for VsanXvcQuerySpec {
}
impl DataObjectTrait for VsanXvcResultItem {
}
impl DataObjectTrait for VsanClusterConfigInfo {
}
impl DataObjectTrait for VsanConfigInfoEx {
}
impl DataObjectTrait for VsanClusterConfigInfoHostDefaultInfo {
}
impl DataObjectTrait for VsanClusterCoreConfig {
}
impl DataObjectTrait for VsanClusterCoreConfigSpec {
}
impl DataObjectTrait for VsanHostAbortWipeDiskStatus {
}
impl DataObjectTrait for VsanHostAboutInfoEx {
}
impl DataObjectTrait for VsanAddStoragePoolDiskSpec {
}
impl DataObjectTrait for VsanHostClusterStatus {
}
impl DataObjectTrait for VsanHostClusterStatusState {
}
impl DataObjectTrait for VsanHostClusterStatusStateCompletionEstimate {
}
impl DataObjectTrait for VsanComplianceDetail {
}
impl DataObjectTrait for VsanComplianceResult {
}
impl DataObjectTrait for VsanHostConfigInfo {
}
impl DataObjectTrait for VsanHostConfigInfoEx {
}
impl DataObjectTrait for VsanHostConfigInfoClusterInfo {
}
impl DataObjectTrait for VsanHostFaultDomainInfo {
}
impl DataObjectTrait for VsanHostConfigInfoNetworkInfo {
}
impl DataObjectTrait for VsanHostConfigInfoNetworkInfoPortConfig {
}
impl DataObjectTrait for VsanHostPortConfigEx {
}
impl DataObjectTrait for VsanHostConfigInfoStorageInfo {
}
impl DataObjectTrait for VsanHostCreateNativeKeyProviderSpec {
}
impl DataObjectTrait for VsanInTransitEncryptionInfo {
}
impl DataObjectTrait for VsanHostDecommissionMode {
}
impl DataObjectTrait for VsanDeleteStoragePoolDiskSpec {
}
impl DataObjectTrait for VsanHostDiskMapInfo {
}
impl DataObjectTrait for VimVsanHostDiskMapInfoEx {
}
impl DataObjectTrait for VsanHostDiskMapResult {
}
impl DataObjectTrait for VsanHostDiskMapping {
}
impl DataObjectTrait for VimVsanHostDiskMappingCreationSpec {
}
impl DataObjectTrait for VsanHostDiskResult {
}
impl DataObjectTrait for VimVsanHostDiskResultEx {
}
impl DataObjectTrait for VsanHostDrsStats {
}
impl DataObjectTrait for VsanHostEncryptionInfo {
}
impl DataObjectTrait for VsanHostIpConfig {
}
impl DataObjectTrait for VsanHostIpConfigEx {
}
impl DataObjectTrait for VsanHostMembershipInfo {
}
impl DataObjectTrait for VsanPolicyStatus {
}
impl DataObjectTrait for VimVsanHostQueryVsanDisksSpec {
}
impl DataObjectTrait for RemoteVsanServerClusterConfig {
}
impl DataObjectTrait for VsanHostRuntimeStats {
}
impl DataObjectTrait for VsanHostServerClusterUnicastConfig {
}
impl DataObjectTrait for VsanHostServerClusterUnicastInfo {
}
impl DataObjectTrait for SiteAffinityInfo {
}
impl DataObjectTrait for VsanStoragePoolDisk {
}
impl DataObjectTrait for VimVsanHostStoragePoolDiskInfo {
}
impl DataObjectTrait for VimVsanHostStoragePoolInfo {
}
impl DataObjectTrait for VimVsanHostTrimDiskEntry {
}
impl DataObjectTrait for VimVsanHostTrimDiskSpec {
}
impl DataObjectTrait for VimVsanHostUpdateStoragePoolDiskSpec {
}
impl DataObjectTrait for VsanHostAssociatedObjects {
}
impl DataObjectTrait for VsanHostAssociatedObjectsResult {
}
impl DataObjectTrait for VsanComplianceQuerySpec {
}
impl DataObjectTrait for VsanHostComponentSyncState {
}
impl DataObjectTrait for VimVsanHostVsanDirectStorage {
}
impl DataObjectTrait for VsanHostVsanDiskInfo {
}
impl DataObjectTrait for VimVsanHostVsanDiskManagementSystemCapability {
}
impl DataObjectTrait for VimVsanHostVsanHostCapability {
}
impl DataObjectTrait for VimVsanHostVsanManagedDisksInfo {
}
impl DataObjectTrait for VimVsanHostVsanManagedPMemInfo {
}
impl DataObjectTrait for VsanObjectProfileInfo {
}
impl DataObjectTrait for VsanHostVsanObjectSyncState {
}
impl DataObjectTrait for VsanHostRuntimeInfo {
}
impl DataObjectTrait for VsanHostRuntimeInfoDiskIssue {
}
impl DataObjectTrait for VimVsanHostVsanScsiDisk {
}
impl DataObjectTrait for VsanHostVsanObjectSyncQueryResult {
}
impl DataObjectTrait for VsanSyncingObjectRecoveryDetails {
}
impl DataObjectTrait for VsanWhatIfEvacDetail {
}
impl DataObjectTrait for VsanWhatIfEvacResult {
}
impl DataObjectTrait for VsanHostWipeDiskStatus {
}
impl DataObjectTrait for BaseConfigInfo {
}
impl DataObjectTrait for VStorageObjectConfigInfo {
}
impl DataObjectTrait for BaseConfigInfoBackingInfo {
}
impl DataObjectTrait for BaseConfigInfoFileBackingInfo {
}
impl DataObjectTrait for BaseConfigInfoDiskFileBackingInfo {
}
impl DataObjectTrait for BaseConfigInfoRawDiskMappingBackingInfo {
}
impl DataObjectTrait for VslmCreateSpec {
}
impl DataObjectTrait for VslmCreateSpecBackingSpec {
}
impl DataObjectTrait for VslmCreateSpecDiskFileBackingSpec {
}
impl DataObjectTrait for VslmCreateSpecRawDiskMappingBackingSpec {
}
impl DataObjectTrait for DiskCryptoSpec {
}
impl DataObjectTrait for Id {
}
impl DataObjectTrait for VslmInfrastructureObjectPolicy {
}
impl DataObjectTrait for VslmInfrastructureObjectPolicySpec {
}
impl DataObjectTrait for VslmMigrateSpec {
}
impl DataObjectTrait for VslmCloneSpec {
}
impl DataObjectTrait for VslmRelocateSpec {
}
impl DataObjectTrait for VStorageObjectReconcileResult {
}
impl DataObjectTrait for VStorageObjectReconcileResultInvalidDiskPath {
}
impl DataObjectTrait for VStorageObjectReconcileResultReconcileDetail {
}
impl DataObjectTrait for VStorageObjectReconcileSpec {
}
impl DataObjectTrait for VStorageObjectStateInfo {
}
impl DataObjectTrait for VslmTagEntry {
}
impl DataObjectTrait for VslmVClockInfo {
}
impl DataObjectTrait for VStorageObject {
}
impl DataObjectTrait for VStorageObjectSnapshot {
}
impl DataObjectTrait for VStorageObjectSnapshotDetails {
}
impl DataObjectTrait for VStorageObjectSnapshotInfo {
}
impl DataObjectTrait for VStorageObjectSnapshotInfoVStorageObjectSnapshot {
}
impl DataObjectTrait for RetrieveVStorageObjSpec {
}
impl DataObjectTrait for VStorageObjectAssociations {
}
impl DataObjectTrait for VStorageObjectAssociationsVmDiskAssociations {
}
impl DataObjectTrait for DynamicArray {
}
impl DataObjectTrait for DynamicProperty {
}
impl DataObjectTrait for KeyAnyValue {
}
impl DataObjectTrait for LocalizableMessage {
}
impl DataObjectTrait for LocalizedMethodFault {
}
impl DataObjectTrait for PropertyChange {
}
impl DataObjectTrait for PropertyFilterSpec {
}
impl DataObjectTrait for PropertyFilterUpdate {
}
impl DataObjectTrait for MissingObject {
}
impl DataObjectTrait for MissingProperty {
}
impl DataObjectTrait for ObjectContent {
}
impl DataObjectTrait for ObjectSpec {
}
impl DataObjectTrait for ObjectUpdate {
}
impl DataObjectTrait for PropertySpec {
}
impl DataObjectTrait for RetrieveOptions {
}
impl DataObjectTrait for RetrieveResult {
}
impl DataObjectTrait for SelectionSpec {
}
impl DataObjectTrait for TraversalSpec {
}
impl DataObjectTrait for UpdateSet {
}
impl DataObjectTrait for WaitOptions {
}
impl DataObjectTrait for VslmAboutInfo {
}
impl DataObjectTrait for VslmQueryDatastoreInfoResult {
}
impl DataObjectTrait for VslmServiceInstanceContent {
}
impl DataObjectTrait for VslmTaskInfo {
}
impl DataObjectTrait for VslmTaskReason {
}
impl DataObjectTrait for VslmTaskReasonAlarm {
}
impl DataObjectTrait for VslmTaskReasonSchedule {
}
impl DataObjectTrait for VslmTaskReasonSystem {
}
impl DataObjectTrait for VslmTaskReasonUser {
}
impl DataObjectTrait for VslmDatastoreSyncStatus {
}
impl DataObjectTrait for VslmVsoVStorageObjectAssociations {
}
impl DataObjectTrait for VslmVsoVStorageObjectAssociationsVmDiskAssociation {
}
impl DataObjectTrait for VslmVsoVStorageObjectQueryResult {
}
impl DataObjectTrait for VslmVsoVStorageObjectQuerySpec {
}
impl DataObjectTrait for VslmVsoVStorageObjectResult {
}
impl DataObjectTrait for VslmVsoVStorageObjectSnapshotResult {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DataObjectTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DataObject => Some(from.as_any_ref().downcast_ref::<DataObject>()?),
StructType::AgencyConfigInfo => Some(from.as_any_ref().downcast_ref::<AgencyConfigInfo>()?),
StructType::AgencyScope => Some(from.as_any_ref().downcast_ref::<AgencyScope>()?),
StructType::AgencyComputeResourceScope => Some(from.as_any_ref().downcast_ref::<AgencyComputeResourceScope>()?),
StructType::AgencyVmFolder => Some(from.as_any_ref().downcast_ref::<AgencyVmFolder>()?),
StructType::AgencyVmResourcePool => Some(from.as_any_ref().downcast_ref::<AgencyVmResourcePool>()?),
StructType::AgentConfigInfo => Some(from.as_any_ref().downcast_ref::<AgentConfigInfo>()?),
StructType::AgentOvfEnvironmentInfo => Some(from.as_any_ref().downcast_ref::<AgentOvfEnvironmentInfo>()?),
StructType::AgentOvfEnvironmentInfoOvfProperty => Some(from.as_any_ref().downcast_ref::<AgentOvfEnvironmentInfoOvfProperty>()?),
StructType::AgentSslTrust => Some(from.as_any_ref().downcast_ref::<AgentSslTrust>()?),
StructType::AgentAnyCertificate => Some(from.as_any_ref().downcast_ref::<AgentAnyCertificate>()?),
StructType::AgentPinnedPemCertificate => Some(from.as_any_ref().downcast_ref::<AgentPinnedPemCertificate>()?),
StructType::AgentStoragePolicy => Some(from.as_any_ref().downcast_ref::<AgentStoragePolicy>()?),
StructType::AgentVsanStoragePolicy => Some(from.as_any_ref().downcast_ref::<AgentVsanStoragePolicy>()?),
StructType::AgentVibMatchingRule => Some(from.as_any_ref().downcast_ref::<AgentVibMatchingRule>()?),
StructType::AgentVmHook => Some(from.as_any_ref().downcast_ref::<AgentVmHook>()?),
StructType::EamObjectRuntimeInfo => Some(from.as_any_ref().downcast_ref::<EamObjectRuntimeInfo>()?),
StructType::AgentRuntimeInfo => Some(from.as_any_ref().downcast_ref::<AgentRuntimeInfo>()?),
StructType::Issue => Some(from.as_any_ref().downcast_ref::<Issue>()?),
StructType::AgencyIssue => Some(from.as_any_ref().downcast_ref::<AgencyIssue>()?),
StructType::AgencyDisabled => Some(from.as_any_ref().downcast_ref::<AgencyDisabled>()?),
StructType::AgentIssue => Some(from.as_any_ref().downcast_ref::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Some(from.as_any_ref().downcast_ref::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Some(from.as_any_ref().downcast_ref::<TransitionFailed>()?),
StructType::VibIssue => Some(from.as_any_ref().downcast_ref::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Some(from.as_any_ref().downcast_ref::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Some(from.as_any_ref().downcast_ref::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Some(from.as_any_ref().downcast_ref::<VmIssue>()?),
StructType::InvalidConfig => Some(from.as_any_ref().downcast_ref::<InvalidConfig>()?),
StructType::VmCorrupted => Some(from.as_any_ref().downcast_ref::<VmCorrupted>()?),
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
StructType::VmHookFailed => Some(from.as_any_ref().downcast_ref::<VmHookFailed>()?),
StructType::VmHookTimedout => Some(from.as_any_ref().downcast_ref::<VmHookTimedout>()?),
StructType::VmInaccessible => Some(from.as_any_ref().downcast_ref::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Some(from.as_any_ref().downcast_ref::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Some(from.as_any_ref().downcast_ref::<VmOrphaned>()?),
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Some(from.as_any_ref().downcast_ref::<VmPoweredOn>()?),
StructType::VmProtected => Some(from.as_any_ref().downcast_ref::<VmProtected>()?),
StructType::VmSuspended => Some(from.as_any_ref().downcast_ref::<VmSuspended>()?),
StructType::VmWrongFolder => Some(from.as_any_ref().downcast_ref::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Some(from.as_any_ref().downcast_ref::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Some(from.as_any_ref().downcast_ref::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Some(from.as_any_ref().downcast_ref::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Some(from.as_any_ref().downcast_ref::<InsufficientResources>()?),
StructType::InsufficientSpace => Some(from.as_any_ref().downcast_ref::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Some(from.as_any_ref().downcast_ref::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Some(from.as_any_ref().downcast_ref::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Some(from.as_any_ref().downcast_ref::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmUnavailable>()?),
StructType::ExtensibleIssue => Some(from.as_any_ref().downcast_ref::<ExtensibleIssue>()?),
StructType::HostIssue => Some(from.as_any_ref().downcast_ref::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Some(from.as_any_ref().downcast_ref::<UnknownAgentVm>()?),
StructType::HooksHookListSpec => Some(from.as_any_ref().downcast_ref::<HooksHookListSpec>()?),
StructType::HooksMarkAsProcessedSpec => Some(from.as_any_ref().downcast_ref::<HooksMarkAsProcessedSpec>()?),
StructType::SolutionsApplySpec => Some(from.as_any_ref().downcast_ref::<SolutionsApplySpec>()?),
StructType::SolutionsClusterSolutionComplianceResult => Some(from.as_any_ref().downcast_ref::<SolutionsClusterSolutionComplianceResult>()?),
StructType::SolutionsComplianceResult => Some(from.as_any_ref().downcast_ref::<SolutionsComplianceResult>()?),
StructType::SolutionsComplianceSpec => Some(from.as_any_ref().downcast_ref::<SolutionsComplianceSpec>()?),
StructType::SolutionsDeploymentUnitComplianceResult => Some(from.as_any_ref().downcast_ref::<SolutionsDeploymentUnitComplianceResult>()?),
StructType::SolutionsHookAcknowledgeConfig => Some(from.as_any_ref().downcast_ref::<SolutionsHookAcknowledgeConfig>()?),
StructType::SolutionsInteractiveHookAcknowledgeConfig => Some(from.as_any_ref().downcast_ref::<SolutionsInteractiveHookAcknowledgeConfig>()?),
StructType::SolutionsHookConfig => Some(from.as_any_ref().downcast_ref::<SolutionsHookConfig>()?),
StructType::SolutionsHookInfo => Some(from.as_any_ref().downcast_ref::<SolutionsHookInfo>()?),
StructType::SolutionsHostComplianceResult => Some(from.as_any_ref().downcast_ref::<SolutionsHostComplianceResult>()?),
StructType::SolutionsOvfProperty => Some(from.as_any_ref().downcast_ref::<SolutionsOvfProperty>()?),
StructType::SolutionsSolutionComplianceResult => Some(from.as_any_ref().downcast_ref::<SolutionsSolutionComplianceResult>()?),
StructType::SolutionsSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsSolutionConfig>()?),
StructType::SolutionsSolutionValidationResult => Some(from.as_any_ref().downcast_ref::<SolutionsSolutionValidationResult>()?),
StructType::SolutionsStoragePolicy => Some(from.as_any_ref().downcast_ref::<SolutionsStoragePolicy>()?),
StructType::SolutionsProfileIdStoragePolicy => Some(from.as_any_ref().downcast_ref::<SolutionsProfileIdStoragePolicy>()?),
StructType::SolutionsTransitionSpec => Some(from.as_any_ref().downcast_ref::<SolutionsTransitionSpec>()?),
StructType::SolutionsTypeSpecificSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsTypeSpecificSolutionConfig>()?),
StructType::SolutionsClusterBoundSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsClusterBoundSolutionConfig>()?),
StructType::SolutionsHostBoundSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsHostBoundSolutionConfig>()?),
StructType::SolutionsVmNetworkMapping => Some(from.as_any_ref().downcast_ref::<SolutionsVmNetworkMapping>()?),
StructType::SolutionsVmSource => Some(from.as_any_ref().downcast_ref::<SolutionsVmSource>()?),
StructType::SolutionsUrlVmSource => Some(from.as_any_ref().downcast_ref::<SolutionsUrlVmSource>()?),
StructType::SolutionsValidateSpec => Some(from.as_any_ref().downcast_ref::<SolutionsValidateSpec>()?),
StructType::SolutionsValidationResult => Some(from.as_any_ref().downcast_ref::<SolutionsValidationResult>()?),
StructType::SolutionsVmResourceSpec => Some(from.as_any_ref().downcast_ref::<SolutionsVmResourceSpec>()?),
StructType::VibVibInfo => Some(from.as_any_ref().downcast_ref::<VibVibInfo>()?),
StructType::VibVibInfoSoftwareTags => Some(from.as_any_ref().downcast_ref::<VibVibInfoSoftwareTags>()?),
StructType::VibVibServicesSslTrust => Some(from.as_any_ref().downcast_ref::<VibVibServicesSslTrust>()?),
StructType::VibVibServicesAnyCertificate => Some(from.as_any_ref().downcast_ref::<VibVibServicesAnyCertificate>()?),
StructType::VibVibServicesPinnedPemCertificate => Some(from.as_any_ref().downcast_ref::<VibVibServicesPinnedPemCertificate>()?),
StructType::PbmAboutInfo => Some(from.as_any_ref().downcast_ref::<PbmAboutInfo>()?),
StructType::PbmExtendedElementDescription => Some(from.as_any_ref().downcast_ref::<PbmExtendedElementDescription>()?),
StructType::PbmLoggingConfiguration => Some(from.as_any_ref().downcast_ref::<PbmLoggingConfiguration>()?),
StructType::PbmServerObjectRef => Some(from.as_any_ref().downcast_ref::<PbmServerObjectRef>()?),
StructType::PbmServiceInstanceContent => Some(from.as_any_ref().downcast_ref::<PbmServiceInstanceContent>()?),
StructType::PbmCapabilityInstance => Some(from.as_any_ref().downcast_ref::<PbmCapabilityInstance>()?),
StructType::PbmCapabilityMetadata => Some(from.as_any_ref().downcast_ref::<PbmCapabilityMetadata>()?),
StructType::PbmCapabilityMetadataUniqueId => Some(from.as_any_ref().downcast_ref::<PbmCapabilityMetadataUniqueId>()?),
StructType::PbmCapabilityConstraintInstance => Some(from.as_any_ref().downcast_ref::<PbmCapabilityConstraintInstance>()?),
StructType::PbmCapabilityPropertyInstance => Some(from.as_any_ref().downcast_ref::<PbmCapabilityPropertyInstance>()?),
StructType::PbmCapabilityPropertyMetadata => Some(from.as_any_ref().downcast_ref::<PbmCapabilityPropertyMetadata>()?),
StructType::PbmCapabilityTypeInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityTypeInfo>()?),
StructType::PbmCapabilityGenericTypeInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityGenericTypeInfo>()?),
StructType::PbmCapabilityMetadataPerCategory => Some(from.as_any_ref().downcast_ref::<PbmCapabilityMetadataPerCategory>()?),
StructType::PbmCapabilitySchema => Some(from.as_any_ref().downcast_ref::<PbmCapabilitySchema>()?),
StructType::PbmCapabilityNamespaceInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityNamespaceInfo>()?),
StructType::PbmCapabilitySchemaVendorInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilitySchemaVendorInfo>()?),
StructType::PbmCapabilityVendorNamespaceInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityVendorNamespaceInfo>()?),
StructType::PbmCapabilityVendorResourceTypeInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityVendorResourceTypeInfo>()?),
StructType::PbmLineOfServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmLineOfServiceInfo>()?),
StructType::PbmPersistenceBasedDataServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmPersistenceBasedDataServiceInfo>()?),
StructType::PbmVaioDataServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmVaioDataServiceInfo>()?),
StructType::PbmCapabilityDescription => Some(from.as_any_ref().downcast_ref::<PbmCapabilityDescription>()?),
StructType::PbmCapabilityDiscreteSet => Some(from.as_any_ref().downcast_ref::<PbmCapabilityDiscreteSet>()?),
StructType::PbmCapabilityRange => Some(from.as_any_ref().downcast_ref::<PbmCapabilityRange>()?),
StructType::PbmCapabilityTimeSpan => Some(from.as_any_ref().downcast_ref::<PbmCapabilityTimeSpan>()?),
StructType::PbmComplianceResult => Some(from.as_any_ref().downcast_ref::<PbmComplianceResult>()?),
StructType::PbmFetchEntityHealthStatusSpec => Some(from.as_any_ref().downcast_ref::<PbmFetchEntityHealthStatusSpec>()?),
StructType::PbmComplianceOperationalStatus => Some(from.as_any_ref().downcast_ref::<PbmComplianceOperationalStatus>()?),
StructType::PbmCompliancePolicyStatus => Some(from.as_any_ref().downcast_ref::<PbmCompliancePolicyStatus>()?),
StructType::PbmRollupComplianceResult => Some(from.as_any_ref().downcast_ref::<PbmRollupComplianceResult>()?),
StructType::PbmFaultNoPermissionEntityPrivileges => Some(from.as_any_ref().downcast_ref::<PbmFaultNoPermissionEntityPrivileges>()?),
StructType::PbmPlacementCompatibilityResult => Some(from.as_any_ref().downcast_ref::<PbmPlacementCompatibilityResult>()?),
StructType::PbmPlacementMatchingResources => Some(from.as_any_ref().downcast_ref::<PbmPlacementMatchingResources>()?),
StructType::PbmPlacementMatchingReplicationResources => Some(from.as_any_ref().downcast_ref::<PbmPlacementMatchingReplicationResources>()?),
StructType::PbmPlacementHub => Some(from.as_any_ref().downcast_ref::<PbmPlacementHub>()?),
StructType::PbmPlacementRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementRequirement>()?),
StructType::PbmPlacementCapabilityConstraintsRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementCapabilityConstraintsRequirement>()?),
StructType::PbmPlacementCapabilityProfileRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementCapabilityProfileRequirement>()?),
StructType::PbmPlacementResourceUtilization => Some(from.as_any_ref().downcast_ref::<PbmPlacementResourceUtilization>()?),
StructType::PbmCapabilityProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<PbmCapabilityProfileCreateSpec>()?),
StructType::PbmCapabilityProfileUpdateSpec => Some(from.as_any_ref().downcast_ref::<PbmCapabilityProfileUpdateSpec>()?),
StructType::PbmCapabilityConstraints => Some(from.as_any_ref().downcast_ref::<PbmCapabilityConstraints>()?),
StructType::PbmCapabilitySubProfileConstraints => Some(from.as_any_ref().downcast_ref::<PbmCapabilitySubProfileConstraints>()?),
StructType::PbmDataServiceToPoliciesMap => Some(from.as_any_ref().downcast_ref::<PbmDataServiceToPoliciesMap>()?),
StructType::PbmDefaultProfileInfo => Some(from.as_any_ref().downcast_ref::<PbmDefaultProfileInfo>()?),
StructType::PbmProfile => Some(from.as_any_ref().downcast_ref::<PbmProfile>()?),
StructType::PbmCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmDefaultCapabilityProfile>()?),
StructType::PbmProfileId => Some(from.as_any_ref().downcast_ref::<PbmProfileId>()?),
StructType::PbmProfileOperationOutcome => Some(from.as_any_ref().downcast_ref::<PbmProfileOperationOutcome>()?),
StructType::PbmProfileType => Some(from.as_any_ref().downcast_ref::<PbmProfileType>()?),
StructType::PbmQueryProfileResult => Some(from.as_any_ref().downcast_ref::<PbmQueryProfileResult>()?),
StructType::PbmProfileResourceType => Some(from.as_any_ref().downcast_ref::<PbmProfileResourceType>()?),
StructType::PbmCapabilitySubProfile => Some(from.as_any_ref().downcast_ref::<PbmCapabilitySubProfile>()?),
StructType::PbmDatastoreSpaceStatistics => Some(from.as_any_ref().downcast_ref::<PbmDatastoreSpaceStatistics>()?),
StructType::PbmQueryReplicationGroupResult => Some(from.as_any_ref().downcast_ref::<PbmQueryReplicationGroupResult>()?),
StructType::SmsAboutInfo => Some(from.as_any_ref().downcast_ref::<SmsAboutInfo>()?),
StructType::EntityReference => Some(from.as_any_ref().downcast_ref::<EntityReference>()?),
StructType::FaultDomainFilter => Some(from.as_any_ref().downcast_ref::<FaultDomainFilter>()?),
StructType::ReplicationGroupFilter => Some(from.as_any_ref().downcast_ref::<ReplicationGroupFilter>()?),
StructType::SmsTaskInfo => Some(from.as_any_ref().downcast_ref::<SmsTaskInfo>()?),
StructType::AlarmFilter => Some(from.as_any_ref().downcast_ref::<AlarmFilter>()?),
StructType::AlarmResult => Some(from.as_any_ref().downcast_ref::<AlarmResult>()?),
StructType::SmsProviderInfo => Some(from.as_any_ref().downcast_ref::<SmsProviderInfo>()?),
StructType::VasaProviderInfo => Some(from.as_any_ref().downcast_ref::<VasaProviderInfo>()?),
StructType::SmsProviderSpec => Some(from.as_any_ref().downcast_ref::<SmsProviderSpec>()?),
StructType::VasaProviderSpec => Some(from.as_any_ref().downcast_ref::<VasaProviderSpec>()?),
StructType::VasaProviderUpgradeSpec => Some(from.as_any_ref().downcast_ref::<VasaProviderUpgradeSpec>()?),
StructType::RelatedStorageArray => Some(from.as_any_ref().downcast_ref::<RelatedStorageArray>()?),
StructType::SupportedVendorModelMapping => Some(from.as_any_ref().downcast_ref::<SupportedVendorModelMapping>()?),
StructType::BackingConfig => Some(from.as_any_ref().downcast_ref::<BackingConfig>()?),
StructType::BackingStoragePool => Some(from.as_any_ref().downcast_ref::<BackingStoragePool>()?),
StructType::DatastoreBackingPoolMapping => Some(from.as_any_ref().downcast_ref::<DatastoreBackingPoolMapping>()?),
StructType::DatastorePair => Some(from.as_any_ref().downcast_ref::<DatastorePair>()?),
StructType::DrsMigrationCapabilityResult => Some(from.as_any_ref().downcast_ref::<DrsMigrationCapabilityResult>()?),
StructType::FaultDomainProviderMapping => Some(from.as_any_ref().downcast_ref::<FaultDomainProviderMapping>()?),
StructType::StorageFileSystemInfo => Some(from.as_any_ref().downcast_ref::<StorageFileSystemInfo>()?),
StructType::LunHbaAssociation => Some(from.as_any_ref().downcast_ref::<LunHbaAssociation>()?),
StructType::NameValuePair => Some(from.as_any_ref().downcast_ref::<NameValuePair>()?),
StructType::StorageAlarm => Some(from.as_any_ref().downcast_ref::<StorageAlarm>()?),
StructType::StorageArray => Some(from.as_any_ref().downcast_ref::<StorageArray>()?),
StructType::StorageCapability => Some(from.as_any_ref().downcast_ref::<StorageCapability>()?),
StructType::StorageContainer => Some(from.as_any_ref().downcast_ref::<StorageContainer>()?),
StructType::StorageContainerResult => Some(from.as_any_ref().downcast_ref::<StorageContainerResult>()?),
StructType::StorageContainerSpec => Some(from.as_any_ref().downcast_ref::<StorageContainerSpec>()?),
StructType::StorageFileSystem => Some(from.as_any_ref().downcast_ref::<StorageFileSystem>()?),
StructType::StorageLun => Some(from.as_any_ref().downcast_ref::<StorageLun>()?),
StructType::StoragePort => Some(from.as_any_ref().downcast_ref::<StoragePort>()?),
StructType::FcStoragePort => Some(from.as_any_ref().downcast_ref::<FcStoragePort>()?),
StructType::FcoeStoragePort => Some(from.as_any_ref().downcast_ref::<FcoeStoragePort>()?),
StructType::IscsiStoragePort => Some(from.as_any_ref().downcast_ref::<IscsiStoragePort>()?),
StructType::StorageProcessor => Some(from.as_any_ref().downcast_ref::<StorageProcessor>()?),
StructType::DeviceId => Some(from.as_any_ref().downcast_ref::<DeviceId>()?),
StructType::VVolId => Some(from.as_any_ref().downcast_ref::<VVolId>()?),
StructType::VasaVirtualDiskId => Some(from.as_any_ref().downcast_ref::<VasaVirtualDiskId>()?),
StructType::VirtualDiskKey => Some(from.as_any_ref().downcast_ref::<VirtualDiskKey>()?),
StructType::VirtualDiskMoId => Some(from.as_any_ref().downcast_ref::<VirtualDiskMoId>()?),
StructType::VirtualMachineId => Some(from.as_any_ref().downcast_ref::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Some(from.as_any_ref().downcast_ref::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Some(from.as_any_ref().downcast_ref::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Some(from.as_any_ref().downcast_ref::<VirtualMachineUuid>()?),
StructType::FailoverParam => Some(from.as_any_ref().downcast_ref::<FailoverParam>()?),
StructType::TestFailoverParam => Some(from.as_any_ref().downcast_ref::<TestFailoverParam>()?),
StructType::PolicyAssociation => Some(from.as_any_ref().downcast_ref::<PolicyAssociation>()?),
StructType::ReplicationGroupData => Some(from.as_any_ref().downcast_ref::<ReplicationGroupData>()?),
StructType::RecoveredDevice => Some(from.as_any_ref().downcast_ref::<RecoveredDevice>()?),
StructType::RecoveredDiskInfo => Some(from.as_any_ref().downcast_ref::<RecoveredDiskInfo>()?),
StructType::GroupInfo => Some(from.as_any_ref().downcast_ref::<GroupInfo>()?),
StructType::SourceGroupInfo => Some(from.as_any_ref().downcast_ref::<SourceGroupInfo>()?),
StructType::TargetGroupInfo => Some(from.as_any_ref().downcast_ref::<TargetGroupInfo>()?),
StructType::GroupOperationResult => Some(from.as_any_ref().downcast_ref::<GroupOperationResult>()?),
StructType::FailoverSuccessResult => Some(from.as_any_ref().downcast_ref::<FailoverSuccessResult>()?),
StructType::GroupErrorResult => Some(from.as_any_ref().downcast_ref::<GroupErrorResult>()?),
StructType::QueryPointInTimeReplicaSuccessResult => Some(from.as_any_ref().downcast_ref::<QueryPointInTimeReplicaSuccessResult>()?),
StructType::QueryPointInTimeReplicaSummaryResult => Some(from.as_any_ref().downcast_ref::<QueryPointInTimeReplicaSummaryResult>()?),
StructType::QueryReplicationGroupSuccessResult => Some(from.as_any_ref().downcast_ref::<QueryReplicationGroupSuccessResult>()?),
StructType::ReverseReplicationSuccessResult => Some(from.as_any_ref().downcast_ref::<ReverseReplicationSuccessResult>()?),
StructType::SyncReplicationGroupSuccessResult => Some(from.as_any_ref().downcast_ref::<SyncReplicationGroupSuccessResult>()?),
StructType::PointInTimeReplicaId => Some(from.as_any_ref().downcast_ref::<PointInTimeReplicaId>()?),
StructType::PromoteParam => Some(from.as_any_ref().downcast_ref::<PromoteParam>()?),
StructType::QueryPointInTimeReplicaParam => Some(from.as_any_ref().downcast_ref::<QueryPointInTimeReplicaParam>()?),
StructType::ReplicaQueryIntervalParam => Some(from.as_any_ref().downcast_ref::<ReplicaQueryIntervalParam>()?),
StructType::PointInTimeReplicaInfo => Some(from.as_any_ref().downcast_ref::<PointInTimeReplicaInfo>()?),
StructType::ReplicaIntervalQueryResult => Some(from.as_any_ref().downcast_ref::<ReplicaIntervalQueryResult>()?),
StructType::QueryReplicationPeerResult => Some(from.as_any_ref().downcast_ref::<QueryReplicationPeerResult>()?),
StructType::ReplicaId => Some(from.as_any_ref().downcast_ref::<ReplicaId>()?),
StructType::ReplicationTargetInfo => Some(from.as_any_ref().downcast_ref::<ReplicationTargetInfo>()?),
StructType::SourceGroupMemberInfo => Some(from.as_any_ref().downcast_ref::<SourceGroupMemberInfo>()?),
StructType::TargetDeviceId => Some(from.as_any_ref().downcast_ref::<TargetDeviceId>()?),
StructType::TargetToSourceInfo => Some(from.as_any_ref().downcast_ref::<TargetToSourceInfo>()?),
StructType::TargetGroupMemberInfo => Some(from.as_any_ref().downcast_ref::<TargetGroupMemberInfo>()?),
StructType::RecoveredTargetGroupMemberInfo => Some(from.as_any_ref().downcast_ref::<RecoveredTargetGroupMemberInfo>()?),
StructType::AboutInfo => Some(from.as_any_ref().downcast_ref::<AboutInfo>()?),
StructType::AuthorizationDescription => Some(from.as_any_ref().downcast_ref::<AuthorizationDescription>()?),
StructType::EntityPrivilege => Some(from.as_any_ref().downcast_ref::<EntityPrivilege>()?),
StructType::Permission => Some(from.as_any_ref().downcast_ref::<Permission>()?),
StructType::AuthorizationPrivilege => Some(from.as_any_ref().downcast_ref::<AuthorizationPrivilege>()?),
StructType::PrivilegeAvailability => Some(from.as_any_ref().downcast_ref::<PrivilegeAvailability>()?),
StructType::AuthorizationRole => Some(from.as_any_ref().downcast_ref::<AuthorizationRole>()?),
StructType::UserPrivilegeResult => Some(from.as_any_ref().downcast_ref::<UserPrivilegeResult>()?),
StructType::BatchResult => Some(from.as_any_ref().downcast_ref::<BatchResult>()?),
StructType::Capability => Some(from.as_any_ref().downcast_ref::<Capability>()?),
StructType::ClusterComputeResourceClusterConfigResult => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceClusterConfigResult>()?),
StructType::ClusterComputeResourceCryptoModePolicy => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceCryptoModePolicy>()?),
StructType::ClusterComputeResourceDvsSetting => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsSetting>()?),
StructType::ClusterComputeResourceDvsSettingDvPortgroupToServiceMapping => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsSettingDvPortgroupToServiceMapping>()?),
StructType::ClusterComputeResourceDvsProfile => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsProfile>()?),
StructType::ClusterComputeResourceDvsProfileDvPortgroupSpecToServiceMapping => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsProfileDvPortgroupSpecToServiceMapping>()?),
StructType::ClusterComputeResourceHciConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHciConfigInfo>()?),
StructType::ClusterComputeResourceHciConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHciConfigSpec>()?),
StructType::ClusterComputeResourceHostConfigurationInput => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostConfigurationInput>()?),
StructType::ClusterComputeResourceHostConfigurationProfile => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostConfigurationProfile>()?),
StructType::ClusterComputeResourceHostEvacuationInfo => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostEvacuationInfo>()?),
StructType::ClusterComputeResourceHostVmkNicInfo => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostVmkNicInfo>()?),
StructType::ClusterComputeResourceMaintenanceInfo => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceMaintenanceInfo>()?),
StructType::ClusterComputeResourceVcProfile => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceVcProfile>()?),
StructType::ClusterComputeResourceValidationResultBase => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceValidationResultBase>()?),
StructType::ClusterComputeResourceDvsConfigurationValidation => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsConfigurationValidation>()?),
StructType::ClusterComputeResourceHostConfigurationValidation => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostConfigurationValidation>()?),
StructType::VsanClusterConfigPrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanClusterConfigPrecheckItem>()?),
StructType::ClusterComputeResourceVcsSlots => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceVcsSlots>()?),
StructType::ComputeResourceConfigInfo => Some(from.as_any_ref().downcast_ref::<ComputeResourceConfigInfo>()?),
StructType::ClusterConfigInfoEx => Some(from.as_any_ref().downcast_ref::<ClusterConfigInfoEx>()?),
StructType::ComputeResourceConfigSpec => Some(from.as_any_ref().downcast_ref::<ComputeResourceConfigSpec>()?),
StructType::ClusterConfigSpecEx => Some(from.as_any_ref().downcast_ref::<ClusterConfigSpecEx>()?),
StructType::ComputeResourceHostSpbmLicenseInfo => Some(from.as_any_ref().downcast_ref::<ComputeResourceHostSpbmLicenseInfo>()?),
StructType::ComputeResourceHostSeedSpec => Some(from.as_any_ref().downcast_ref::<ComputeResourceHostSeedSpec>()?),
StructType::ComputeResourceHostSeedSpecSingleHostSpec => Some(from.as_any_ref().downcast_ref::<ComputeResourceHostSeedSpecSingleHostSpec>()?),
StructType::ComputeResourceSummary => Some(from.as_any_ref().downcast_ref::<ComputeResourceSummary>()?),
StructType::ClusterComputeResourceSummary => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceSummary>()?),
StructType::CustomFieldDef => Some(from.as_any_ref().downcast_ref::<CustomFieldDef>()?),
StructType::CustomFieldValue => Some(from.as_any_ref().downcast_ref::<CustomFieldValue>()?),
StructType::CustomFieldStringValue => Some(from.as_any_ref().downcast_ref::<CustomFieldStringValue>()?),
StructType::CustomizationSpecInfo => Some(from.as_any_ref().downcast_ref::<CustomizationSpecInfo>()?),
StructType::CustomizationSpecItem => Some(from.as_any_ref().downcast_ref::<CustomizationSpecItem>()?),
StructType::DatacenterBasicConnectInfo => Some(from.as_any_ref().downcast_ref::<DatacenterBasicConnectInfo>()?),
StructType::DatacenterConfigInfo => Some(from.as_any_ref().downcast_ref::<DatacenterConfigInfo>()?),
StructType::DatacenterConfigSpec => Some(from.as_any_ref().downcast_ref::<DatacenterConfigSpec>()?),
StructType::DatastoreCapability => Some(from.as_any_ref().downcast_ref::<DatastoreCapability>()?),
StructType::DatastoreHostMount => Some(from.as_any_ref().downcast_ref::<DatastoreHostMount>()?),
StructType::DatastoreInfo => Some(from.as_any_ref().downcast_ref::<DatastoreInfo>()?),
StructType::LocalDatastoreInfo => Some(from.as_any_ref().downcast_ref::<LocalDatastoreInfo>()?),
StructType::NasDatastoreInfo => Some(from.as_any_ref().downcast_ref::<NasDatastoreInfo>()?),
StructType::PMemDatastoreInfo => Some(from.as_any_ref().downcast_ref::<PMemDatastoreInfo>()?),
StructType::VmfsDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreInfo>()?),
StructType::VsanDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VsanDatastoreInfo>()?),
StructType::VvolDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VvolDatastoreInfo>()?),
StructType::DatastoreMountPathDatastorePair => Some(from.as_any_ref().downcast_ref::<DatastoreMountPathDatastorePair>()?),
StructType::DatastoreSummary => Some(from.as_any_ref().downcast_ref::<DatastoreSummary>()?),
StructType::DatastoreVVolContainerFailoverPair => Some(from.as_any_ref().downcast_ref::<DatastoreVVolContainerFailoverPair>()?),
StructType::DatastoreNamespaceManagerDirectoryInfo => Some(from.as_any_ref().downcast_ref::<DatastoreNamespaceManagerDirectoryInfo>()?),
StructType::Description => Some(from.as_any_ref().downcast_ref::<Description>()?),
StructType::ElementDescription => Some(from.as_any_ref().downcast_ref::<ElementDescription>()?),
StructType::EvcMode => Some(from.as_any_ref().downcast_ref::<EvcMode>()?),
StructType::ExtendedElementDescription => Some(from.as_any_ref().downcast_ref::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Some(from.as_any_ref().downcast_ref::<FeatureEvcMode>()?),
StructType::OptionDef => Some(from.as_any_ref().downcast_ref::<OptionDef>()?),
StructType::ExtendedDescription => Some(from.as_any_ref().downcast_ref::<ExtendedDescription>()?),
StructType::MethodDescription => Some(from.as_any_ref().downcast_ref::<MethodDescription>()?),
StructType::TypeDescription => Some(from.as_any_ref().downcast_ref::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Some(from.as_any_ref().downcast_ref::<ScheduledTaskDetail>()?),
StructType::DesiredSoftwareSpec => Some(from.as_any_ref().downcast_ref::<DesiredSoftwareSpec>()?),
StructType::DesiredSoftwareSpecBaseImageSpec => Some(from.as_any_ref().downcast_ref::<DesiredSoftwareSpecBaseImageSpec>()?),
StructType::DesiredSoftwareSpecComponentSpec => Some(from.as_any_ref().downcast_ref::<DesiredSoftwareSpecComponentSpec>()?),
StructType::DesiredSoftwareSpecVendorAddOnSpec => Some(from.as_any_ref().downcast_ref::<DesiredSoftwareSpecVendorAddOnSpec>()?),
StructType::DiagnosticManagerAuditRecordResult => Some(from.as_any_ref().downcast_ref::<DiagnosticManagerAuditRecordResult>()?),
StructType::DiagnosticManagerBundleInfo => Some(from.as_any_ref().downcast_ref::<DiagnosticManagerBundleInfo>()?),
StructType::DiagnosticManagerLogDescriptor => Some(from.as_any_ref().downcast_ref::<DiagnosticManagerLogDescriptor>()?),
StructType::DiagnosticManagerLogHeader => Some(from.as_any_ref().downcast_ref::<DiagnosticManagerLogHeader>()?),
StructType::DirectPathProfileManagerCapacityQuerySpec => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQuerySpec>()?),
StructType::DirectPathProfileManagerCapacityQueryByDeviceConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryByDeviceConfig>()?),
StructType::DirectPathProfileManagerCapacityQueryById => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryById>()?),
StructType::DirectPathProfileManagerCapacityQueryByName => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryByName>()?),
StructType::DirectPathProfileManagerCapacityResult => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityResult>()?),
StructType::DirectPathProfileManagerCapacityInfo => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityInfo>()?),
StructType::DirectPathProfileManagerCapacityUnknown => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityUnknown>()?),
StructType::DirectPathProfileManagerCreateSpec => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCreateSpec>()?),
StructType::DirectPathProfileManagerDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDirectPathConfig>()?),
StructType::DirectPathProfileManagerDvxDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDvxDirectPathConfig>()?),
StructType::DirectPathProfileManagerDynamicDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDynamicDirectPathConfig>()?),
StructType::DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig>()?),
StructType::DirectPathProfileManagerVmiopDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerVmiopDirectPathConfig>()?),
StructType::DirectPathProfileInfo => Some(from.as_any_ref().downcast_ref::<DirectPathProfileInfo>()?),
StructType::DirectPathProfileManagerFilterSpec => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerFilterSpec>()?),
StructType::DirectPathProfileManagerTargetEntity => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetEntity>()?),
StructType::DirectPathProfileManagerTargetCluster => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetCluster>()?),
StructType::DirectPathProfileManagerTargetHost => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetHost>()?),
StructType::DirectPathProfileManagerUpdateSpec => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerUpdateSpec>()?),
StructType::DvsBackupRestoreCapability => Some(from.as_any_ref().downcast_ref::<DvsBackupRestoreCapability>()?),
StructType::DvsCapability => Some(from.as_any_ref().downcast_ref::<DvsCapability>()?),
StructType::DvsConfigInfo => Some(from.as_any_ref().downcast_ref::<DvsConfigInfo>()?),
StructType::VMwareDvsConfigInfo => Some(from.as_any_ref().downcast_ref::<VMwareDvsConfigInfo>()?),
StructType::DvsConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsConfigSpec>()?),
StructType::VMwareDvsConfigSpec => Some(from.as_any_ref().downcast_ref::<VMwareDvsConfigSpec>()?),
StructType::DvsContactInfo => Some(from.as_any_ref().downcast_ref::<DvsContactInfo>()?),
StructType::DvsCreateSpec => Some(from.as_any_ref().downcast_ref::<DvsCreateSpec>()?),
StructType::DvsFeatureCapability => Some(from.as_any_ref().downcast_ref::<DvsFeatureCapability>()?),
StructType::VMwareDvsFeatureCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsFeatureCapability>()?),
StructType::DvsHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<DvsHealthCheckConfig>()?),
StructType::VMwareDvsHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanMtuHealthCheckConfig>()?),
StructType::DvsHealthCheckCapability => Some(from.as_any_ref().downcast_ref::<DvsHealthCheckCapability>()?),
StructType::VMwareDvsHealthCheckCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsHealthCheckCapability>()?),
StructType::DvsHostInfrastructureTrafficResource => Some(from.as_any_ref().downcast_ref::<DvsHostInfrastructureTrafficResource>()?),
StructType::DvsHostInfrastructureTrafficResourceAllocation => Some(from.as_any_ref().downcast_ref::<DvsHostInfrastructureTrafficResourceAllocation>()?),
StructType::DvsNetworkResourceManagementCapability => Some(from.as_any_ref().downcast_ref::<DvsNetworkResourceManagementCapability>()?),
StructType::DvsResourceRuntimeInfo => Some(from.as_any_ref().downcast_ref::<DvsResourceRuntimeInfo>()?),
StructType::DvsRollbackCapability => Some(from.as_any_ref().downcast_ref::<DvsRollbackCapability>()?),
StructType::DvsRuntimeInfo => Some(from.as_any_ref().downcast_ref::<DvsRuntimeInfo>()?),
StructType::DvsSummary => Some(from.as_any_ref().downcast_ref::<DvsSummary>()?),
StructType::DvsPolicy => Some(from.as_any_ref().downcast_ref::<DvsPolicy>()?),
StructType::DvsUplinkPortPolicy => Some(from.as_any_ref().downcast_ref::<DvsUplinkPortPolicy>()?),
StructType::DvsNameArrayUplinkPortPolicy => Some(from.as_any_ref().downcast_ref::<DvsNameArrayUplinkPortPolicy>()?),
StructType::EnumDescription => Some(from.as_any_ref().downcast_ref::<EnumDescription>()?),
StructType::EnvironmentBrowserConfigOptionQuerySpec => Some(from.as_any_ref().downcast_ref::<EnvironmentBrowserConfigOptionQuerySpec>()?),
StructType::Extension => Some(from.as_any_ref().downcast_ref::<Extension>()?),
StructType::ExtensionClientInfo => Some(from.as_any_ref().downcast_ref::<ExtensionClientInfo>()?),
StructType::ExtensionEventTypeInfo => Some(from.as_any_ref().downcast_ref::<ExtensionEventTypeInfo>()?),
StructType::ExtensionFaultTypeInfo => Some(from.as_any_ref().downcast_ref::<ExtensionFaultTypeInfo>()?),
StructType::ExtensionHealthInfo => Some(from.as_any_ref().downcast_ref::<ExtensionHealthInfo>()?),
StructType::ExtensionOvfConsumerInfo => Some(from.as_any_ref().downcast_ref::<ExtensionOvfConsumerInfo>()?),
StructType::ExtensionPrivilegeInfo => Some(from.as_any_ref().downcast_ref::<ExtensionPrivilegeInfo>()?),
StructType::ExtensionResourceInfo => Some(from.as_any_ref().downcast_ref::<ExtensionResourceInfo>()?),
StructType::ExtensionServerInfo => Some(from.as_any_ref().downcast_ref::<ExtensionServerInfo>()?),
StructType::ExtensionTaskTypeInfo => Some(from.as_any_ref().downcast_ref::<ExtensionTaskTypeInfo>()?),
StructType::ExtensionManagerIpAllocationUsage => Some(from.as_any_ref().downcast_ref::<ExtensionManagerIpAllocationUsage>()?),
StructType::FaultsByHost => Some(from.as_any_ref().downcast_ref::<FaultsByHost>()?),
StructType::FaultsByVm => Some(from.as_any_ref().downcast_ref::<FaultsByVm>()?),
StructType::FileLockInfo => Some(from.as_any_ref().downcast_ref::<FileLockInfo>()?),
StructType::FileLockInfoResult => Some(from.as_any_ref().downcast_ref::<FileLockInfoResult>()?),
StructType::FolderBatchAddHostsToClusterResult => Some(from.as_any_ref().downcast_ref::<FolderBatchAddHostsToClusterResult>()?),
StructType::FolderBatchAddStandaloneHostsResult => Some(from.as_any_ref().downcast_ref::<FolderBatchAddStandaloneHostsResult>()?),
StructType::FolderExternallyManagedFolderInfo => Some(from.as_any_ref().downcast_ref::<FolderExternallyManagedFolderInfo>()?),
StructType::FolderFailedHostResult => Some(from.as_any_ref().downcast_ref::<FolderFailedHostResult>()?),
StructType::FolderNewHostSpec => Some(from.as_any_ref().downcast_ref::<FolderNewHostSpec>()?),
StructType::HbrManagerReplicationVmInfo => Some(from.as_any_ref().downcast_ref::<HbrManagerReplicationVmInfo>()?),
StructType::ReplicationVmProgressInfo => Some(from.as_any_ref().downcast_ref::<ReplicationVmProgressInfo>()?),
StructType::HbrManagerVmReplicationCapability => Some(from.as_any_ref().downcast_ref::<HbrManagerVmReplicationCapability>()?),
StructType::HbrReplicationTargetSpec => Some(from.as_any_ref().downcast_ref::<HbrReplicationTargetSpec>()?),
StructType::HbrTargetSpecReplacement => Some(from.as_any_ref().downcast_ref::<HbrTargetSpecReplacement>()?),
StructType::HbrTargetSpec => Some(from.as_any_ref().downcast_ref::<HbrTargetSpec>()?),
StructType::HealthUpdate => Some(from.as_any_ref().downcast_ref::<HealthUpdate>()?),
StructType::HealthUpdateInfo => Some(from.as_any_ref().downcast_ref::<HealthUpdateInfo>()?),
StructType::PerfInterval => Some(from.as_any_ref().downcast_ref::<PerfInterval>()?),
StructType::HostServiceTicket => Some(from.as_any_ref().downcast_ref::<HostServiceTicket>()?),
StructType::HostSystemComplianceCheckState => Some(from.as_any_ref().downcast_ref::<HostSystemComplianceCheckState>()?),
StructType::HostSystemReconnectSpec => Some(from.as_any_ref().downcast_ref::<HostSystemReconnectSpec>()?),
StructType::HostSystemRemediationState => Some(from.as_any_ref().downcast_ref::<HostSystemRemediationState>()?),
StructType::HttpNfcLeaseCapabilities => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseCapabilities>()?),
StructType::HttpNfcLeaseDatastoreLeaseInfo => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseDatastoreLeaseInfo>()?),
StructType::HttpNfcLeaseDeviceUrl => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseDeviceUrl>()?),
StructType::HttpNfcLeaseHostInfo => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseHostInfo>()?),
StructType::HttpNfcLeaseInfo => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseInfo>()?),
StructType::HttpNfcLeaseManifestEntry => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseManifestEntry>()?),
StructType::HttpNfcLeaseProbeResult => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseProbeResult>()?),
StructType::HttpNfcLeaseSourceFile => Some(from.as_any_ref().downcast_ref::<HttpNfcLeaseSourceFile>()?),
StructType::ImportSpec => Some(from.as_any_ref().downcast_ref::<ImportSpec>()?),
StructType::VirtualAppImportSpec => Some(from.as_any_ref().downcast_ref::<VirtualAppImportSpec>()?),
StructType::VirtualMachineImportSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineImportSpec>()?),
StructType::InheritablePolicy => Some(from.as_any_ref().downcast_ref::<InheritablePolicy>()?),
StructType::BoolPolicy => Some(from.as_any_ref().downcast_ref::<BoolPolicy>()?),
StructType::IntPolicy => Some(from.as_any_ref().downcast_ref::<IntPolicy>()?),
StructType::LongPolicy => Some(from.as_any_ref().downcast_ref::<LongPolicy>()?),
StructType::StringPolicy => Some(from.as_any_ref().downcast_ref::<StringPolicy>()?),
StructType::DvsFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfigSpec>()?),
StructType::DvsFilterPolicy => Some(from.as_any_ref().downcast_ref::<DvsFilterPolicy>()?),
StructType::DvsTrafficShapingPolicy => Some(from.as_any_ref().downcast_ref::<DvsTrafficShapingPolicy>()?),
StructType::DvsVendorSpecificConfig => Some(from.as_any_ref().downcast_ref::<DvsVendorSpecificConfig>()?),
StructType::DvsFailureCriteria => Some(from.as_any_ref().downcast_ref::<DvsFailureCriteria>()?),
StructType::DvsMacLearningPolicy => Some(from.as_any_ref().downcast_ref::<DvsMacLearningPolicy>()?),
StructType::DvsMacManagementPolicy => Some(from.as_any_ref().downcast_ref::<DvsMacManagementPolicy>()?),
StructType::DvsSecurityPolicy => Some(from.as_any_ref().downcast_ref::<DvsSecurityPolicy>()?),
StructType::VMwareUplinkLacpPolicy => Some(from.as_any_ref().downcast_ref::<VMwareUplinkLacpPolicy>()?),
StructType::VMwareUplinkPortOrderPolicy => Some(from.as_any_ref().downcast_ref::<VMwareUplinkPortOrderPolicy>()?),
StructType::VmwareUplinkPortTeamingPolicy => Some(from.as_any_ref().downcast_ref::<VmwareUplinkPortTeamingPolicy>()?),
StructType::VmwareDistributedVirtualSwitchVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
StructType::IoFilterInfo => Some(from.as_any_ref().downcast_ref::<IoFilterInfo>()?),
StructType::ClusterIoFilterInfo => Some(from.as_any_ref().downcast_ref::<ClusterIoFilterInfo>()?),
StructType::HostIoFilterInfo => Some(from.as_any_ref().downcast_ref::<HostIoFilterInfo>()?),
StructType::IoFilterQueryIssueResult => Some(from.as_any_ref().downcast_ref::<IoFilterQueryIssueResult>()?),
StructType::IoFilterHostIssue => Some(from.as_any_ref().downcast_ref::<IoFilterHostIssue>()?),
StructType::IoFilterManagerSslTrust => Some(from.as_any_ref().downcast_ref::<IoFilterManagerSslTrust>()?),
StructType::PinnedCertificate => Some(from.as_any_ref().downcast_ref::<PinnedCertificate>()?),
StructType::UntrustedCertificate => Some(from.as_any_ref().downcast_ref::<UntrustedCertificate>()?),
StructType::IpPoolManagerIpAllocation => Some(from.as_any_ref().downcast_ref::<IpPoolManagerIpAllocation>()?),
StructType::KeyValue => Some(from.as_any_ref().downcast_ref::<KeyValue>()?),
StructType::LatencySensitivity => Some(from.as_any_ref().downcast_ref::<LatencySensitivity>()?),
StructType::LicenseAssignmentManagerLicenseAssignment => Some(from.as_any_ref().downcast_ref::<LicenseAssignmentManagerLicenseAssignment>()?),
StructType::LicenseAvailabilityInfo => Some(from.as_any_ref().downcast_ref::<LicenseAvailabilityInfo>()?),
StructType::LicenseDiagnostics => Some(from.as_any_ref().downcast_ref::<LicenseDiagnostics>()?),
StructType::LicenseManagerEvaluationInfo => Some(from.as_any_ref().downcast_ref::<LicenseManagerEvaluationInfo>()?),
StructType::LicenseFeatureInfo => Some(from.as_any_ref().downcast_ref::<LicenseFeatureInfo>()?),
StructType::HostLicensableResourceInfo => Some(from.as_any_ref().downcast_ref::<HostLicensableResourceInfo>()?),
StructType::LicenseManagerLicenseInfo => Some(from.as_any_ref().downcast_ref::<LicenseManagerLicenseInfo>()?),
StructType::LicenseSource => Some(from.as_any_ref().downcast_ref::<LicenseSource>()?),
StructType::EvaluationLicenseSource => Some(from.as_any_ref().downcast_ref::<EvaluationLicenseSource>()?),
StructType::LicenseServerSource => Some(from.as_any_ref().downcast_ref::<LicenseServerSource>()?),
StructType::LocalLicenseSource => Some(from.as_any_ref().downcast_ref::<LocalLicenseSource>()?),
StructType::LicenseUsageInfo => Some(from.as_any_ref().downcast_ref::<LicenseUsageInfo>()?),
StructType::LicenseReservationInfo => Some(from.as_any_ref().downcast_ref::<LicenseReservationInfo>()?),
StructType::LocalizationManagerMessageCatalog => Some(from.as_any_ref().downcast_ref::<LocalizationManagerMessageCatalog>()?),
StructType::NegatableExpression => Some(from.as_any_ref().downcast_ref::<NegatableExpression>()?),
StructType::IntExpression => Some(from.as_any_ref().downcast_ref::<IntExpression>()?),
StructType::IpAddress => Some(from.as_any_ref().downcast_ref::<IpAddress>()?),
StructType::IpRange => Some(from.as_any_ref().downcast_ref::<IpRange>()?),
StructType::SingleIp => Some(from.as_any_ref().downcast_ref::<SingleIp>()?),
StructType::MacAddress => Some(from.as_any_ref().downcast_ref::<MacAddress>()?),
StructType::MacRange => Some(from.as_any_ref().downcast_ref::<MacRange>()?),
StructType::SingleMac => Some(from.as_any_ref().downcast_ref::<SingleMac>()?),
StructType::StringExpression => Some(from.as_any_ref().downcast_ref::<StringExpression>()?),
StructType::DvsIpPort => Some(from.as_any_ref().downcast_ref::<DvsIpPort>()?),
StructType::DvsIpPortRange => Some(from.as_any_ref().downcast_ref::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Some(from.as_any_ref().downcast_ref::<DvsSingleIpPort>()?),
StructType::NetworkSummary => Some(from.as_any_ref().downcast_ref::<NetworkSummary>()?),
StructType::OpaqueNetworkSummary => Some(from.as_any_ref().downcast_ref::<OpaqueNetworkSummary>()?),
StructType::NumericRange => Some(from.as_any_ref().downcast_ref::<NumericRange>()?),
StructType::OpaqueNetworkCapability => Some(from.as_any_ref().downcast_ref::<OpaqueNetworkCapability>()?),
StructType::OvfConsumerOstNode => Some(from.as_any_ref().downcast_ref::<OvfConsumerOstNode>()?),
StructType::OvfConsumerOvfSection => Some(from.as_any_ref().downcast_ref::<OvfConsumerOvfSection>()?),
StructType::OvfManagerCommonParams => Some(from.as_any_ref().downcast_ref::<OvfManagerCommonParams>()?),
StructType::OvfCreateImportSpecParams => Some(from.as_any_ref().downcast_ref::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Some(from.as_any_ref().downcast_ref::<OvfImportParams>()?),
StructType::OvfParseDescriptorParams => Some(from.as_any_ref().downcast_ref::<OvfParseDescriptorParams>()?),
StructType::OvfValidateHostParams => Some(from.as_any_ref().downcast_ref::<OvfValidateHostParams>()?),
StructType::OvfCreateDescriptorParams => Some(from.as_any_ref().downcast_ref::<OvfCreateDescriptorParams>()?),
StructType::OvfCreateDescriptorResult => Some(from.as_any_ref().downcast_ref::<OvfCreateDescriptorResult>()?),
StructType::OvfCreateImportSpecResult => Some(from.as_any_ref().downcast_ref::<OvfCreateImportSpecResult>()?),
StructType::OvfDatastoreMapping => Some(from.as_any_ref().downcast_ref::<OvfDatastoreMapping>()?),
StructType::OvfDeploymentOption => Some(from.as_any_ref().downcast_ref::<OvfDeploymentOption>()?),
StructType::OvfFileItem => Some(from.as_any_ref().downcast_ref::<OvfFileItem>()?),
StructType::OvfNetworkInfo => Some(from.as_any_ref().downcast_ref::<OvfNetworkInfo>()?),
StructType::OvfNetworkMapping => Some(from.as_any_ref().downcast_ref::<OvfNetworkMapping>()?),
StructType::OvfFile => Some(from.as_any_ref().downcast_ref::<OvfFile>()?),
StructType::OvfOptionInfo => Some(from.as_any_ref().downcast_ref::<OvfOptionInfo>()?),
StructType::OvfParseDescriptorResult => Some(from.as_any_ref().downcast_ref::<OvfParseDescriptorResult>()?),
StructType::OvfResourceMap => Some(from.as_any_ref().downcast_ref::<OvfResourceMap>()?),
StructType::OvfStorageProfileMapping => Some(from.as_any_ref().downcast_ref::<OvfStorageProfileMapping>()?),
StructType::OvfValidateHostResult => Some(from.as_any_ref().downcast_ref::<OvfValidateHostResult>()?),
StructType::PasswordField => Some(from.as_any_ref().downcast_ref::<PasswordField>()?),
StructType::PerformanceDescription => Some(from.as_any_ref().downcast_ref::<PerformanceDescription>()?),
StructType::PerfCompositeMetric => Some(from.as_any_ref().downcast_ref::<PerfCompositeMetric>()?),
StructType::PerfCounterInfo => Some(from.as_any_ref().downcast_ref::<PerfCounterInfo>()?),
StructType::PerformanceManagerCounterLevelMapping => Some(from.as_any_ref().downcast_ref::<PerformanceManagerCounterLevelMapping>()?),
StructType::PerfEntityMetricBase => Some(from.as_any_ref().downcast_ref::<PerfEntityMetricBase>()?),
StructType::PerfEntityMetric => Some(from.as_any_ref().downcast_ref::<PerfEntityMetric>()?),
StructType::PerfEntityMetricCsv => Some(from.as_any_ref().downcast_ref::<PerfEntityMetricCsv>()?),
StructType::PerfMetricId => Some(from.as_any_ref().downcast_ref::<PerfMetricId>()?),
StructType::PerfMetricSeries => Some(from.as_any_ref().downcast_ref::<PerfMetricSeries>()?),
StructType::PerfMetricIntSeries => Some(from.as_any_ref().downcast_ref::<PerfMetricIntSeries>()?),
StructType::PerfMetricSeriesCsv => Some(from.as_any_ref().downcast_ref::<PerfMetricSeriesCsv>()?),
StructType::PerfProviderSummary => Some(from.as_any_ref().downcast_ref::<PerfProviderSummary>()?),
StructType::PerfQuerySpec => Some(from.as_any_ref().downcast_ref::<PerfQuerySpec>()?),
StructType::PerfSampleInfo => Some(from.as_any_ref().downcast_ref::<PerfSampleInfo>()?),
StructType::PrivilegePolicyDef => Some(from.as_any_ref().downcast_ref::<PrivilegePolicyDef>()?),
StructType::ResourceAllocationInfo => Some(from.as_any_ref().downcast_ref::<ResourceAllocationInfo>()?),
StructType::ResourceAllocationOption => Some(from.as_any_ref().downcast_ref::<ResourceAllocationOption>()?),
StructType::ResourceConfigOption => Some(from.as_any_ref().downcast_ref::<ResourceConfigOption>()?),
StructType::ResourceConfigSpec => Some(from.as_any_ref().downcast_ref::<ResourceConfigSpec>()?),
StructType::DatabaseSizeEstimate => Some(from.as_any_ref().downcast_ref::<DatabaseSizeEstimate>()?),
StructType::DatabaseSizeParam => Some(from.as_any_ref().downcast_ref::<DatabaseSizeParam>()?),
StructType::InventoryDescription => Some(from.as_any_ref().downcast_ref::<InventoryDescription>()?),
StructType::PerformanceStatisticsDescription => Some(from.as_any_ref().downcast_ref::<PerformanceStatisticsDescription>()?),
StructType::ResourcePoolResourceUsage => Some(from.as_any_ref().downcast_ref::<ResourcePoolResourceUsage>()?),
StructType::ResourcePoolRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ResourcePoolRuntimeInfo>()?),
StructType::ResourcePoolSummary => Some(from.as_any_ref().downcast_ref::<ResourcePoolSummary>()?),
StructType::VirtualAppSummary => Some(from.as_any_ref().downcast_ref::<VirtualAppSummary>()?),
StructType::ResourcePoolQuickStats => Some(from.as_any_ref().downcast_ref::<ResourcePoolQuickStats>()?),
StructType::SddcBase => Some(from.as_any_ref().downcast_ref::<SddcBase>()?),
StructType::VimVsanReconfigSpec => Some(from.as_any_ref().downcast_ref::<VimVsanReconfigSpec>()?),
StructType::SelectionSet => Some(from.as_any_ref().downcast_ref::<SelectionSet>()?),
StructType::DvPortgroupSelection => Some(from.as_any_ref().downcast_ref::<DvPortgroupSelection>()?),
StructType::DvsSelection => Some(from.as_any_ref().downcast_ref::<DvsSelection>()?),
StructType::HostVMotionCompatibility => Some(from.as_any_ref().downcast_ref::<HostVMotionCompatibility>()?),
StructType::ProductComponentInfo => Some(from.as_any_ref().downcast_ref::<ProductComponentInfo>()?),
StructType::ServiceContent => Some(from.as_any_ref().downcast_ref::<ServiceContent>()?),
StructType::ServiceLocator => Some(from.as_any_ref().downcast_ref::<ServiceLocator>()?),
StructType::ServiceLocatorCredential => Some(from.as_any_ref().downcast_ref::<ServiceLocatorCredential>()?),
StructType::ServiceLocatorNamePassword => Some(from.as_any_ref().downcast_ref::<ServiceLocatorNamePassword>()?),
StructType::ServiceLocatorSamlCredential => Some(from.as_any_ref().downcast_ref::<ServiceLocatorSamlCredential>()?),
StructType::ServiceManagerServiceInfo => Some(from.as_any_ref().downcast_ref::<ServiceManagerServiceInfo>()?),
StructType::SessionManagerGenericServiceTicket => Some(from.as_any_ref().downcast_ref::<SessionManagerGenericServiceTicket>()?),
StructType::SessionManagerLocalTicket => Some(from.as_any_ref().downcast_ref::<SessionManagerLocalTicket>()?),
StructType::SessionManagerServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerServiceRequestSpec>()?),
StructType::SessionManagerHttpServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerHttpServiceRequestSpec>()?),
StructType::SessionManagerVmomiServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerVmomiServiceRequestSpec>()?),
StructType::SharesInfo => Some(from.as_any_ref().downcast_ref::<SharesInfo>()?),
StructType::SharesOption => Some(from.as_any_ref().downcast_ref::<SharesOption>()?),
StructType::SiteInfo => Some(from.as_any_ref().downcast_ref::<SiteInfo>()?),
StructType::StoragePodSummary => Some(from.as_any_ref().downcast_ref::<StoragePodSummary>()?),
StructType::StorageIoAllocationInfo => Some(from.as_any_ref().downcast_ref::<StorageIoAllocationInfo>()?),
StructType::StorageIoAllocationOption => Some(from.as_any_ref().downcast_ref::<StorageIoAllocationOption>()?),
StructType::StorageIormInfo => Some(from.as_any_ref().downcast_ref::<StorageIormInfo>()?),
StructType::StorageIormConfigOption => Some(from.as_any_ref().downcast_ref::<StorageIormConfigOption>()?),
StructType::StorageIormConfigSpec => Some(from.as_any_ref().downcast_ref::<StorageIormConfigSpec>()?),
StructType::PodStorageDrsEntry => Some(from.as_any_ref().downcast_ref::<PodStorageDrsEntry>()?),
StructType::StoragePerformanceSummary => Some(from.as_any_ref().downcast_ref::<StoragePerformanceSummary>()?),
StructType::StorageResourceManagerStorageProfileStatistics => Some(from.as_any_ref().downcast_ref::<StorageResourceManagerStorageProfileStatistics>()?),
StructType::Tag => Some(from.as_any_ref().downcast_ref::<Tag>()?),
StructType::TaskDescription => Some(from.as_any_ref().downcast_ref::<TaskDescription>()?),
StructType::TaskFilterSpec => Some(from.as_any_ref().downcast_ref::<TaskFilterSpec>()?),
StructType::TaskFilterSpecByEntity => Some(from.as_any_ref().downcast_ref::<TaskFilterSpecByEntity>()?),
StructType::TaskFilterSpecByTime => Some(from.as_any_ref().downcast_ref::<TaskFilterSpecByTime>()?),
StructType::TaskFilterSpecByUsername => Some(from.as_any_ref().downcast_ref::<TaskFilterSpecByUsername>()?),
StructType::TaskInfo => Some(from.as_any_ref().downcast_ref::<TaskInfo>()?),
StructType::TaskInfoFilterSpec => Some(from.as_any_ref().downcast_ref::<TaskInfoFilterSpec>()?),
StructType::TaskInfoFilterSpecFilterTaskResults => Some(from.as_any_ref().downcast_ref::<TaskInfoFilterSpecFilterTaskResults>()?),
StructType::TaskManagerTaskViewSpec => Some(from.as_any_ref().downcast_ref::<TaskManagerTaskViewSpec>()?),
StructType::TaskManagerViewByStartId => Some(from.as_any_ref().downcast_ref::<TaskManagerViewByStartId>()?),
StructType::TaskReason => Some(from.as_any_ref().downcast_ref::<TaskReason>()?),
StructType::TaskReasonAlarm => Some(from.as_any_ref().downcast_ref::<TaskReasonAlarm>()?),
StructType::TaskReasonSchedule => Some(from.as_any_ref().downcast_ref::<TaskReasonSchedule>()?),
StructType::TaskReasonSystem => Some(from.as_any_ref().downcast_ref::<TaskReasonSystem>()?),
StructType::TaskReasonUser => Some(from.as_any_ref().downcast_ref::<TaskReasonUser>()?),
StructType::UpdateVirtualMachineFilesResult => Some(from.as_any_ref().downcast_ref::<UpdateVirtualMachineFilesResult>()?),
StructType::UpdateVirtualMachineFilesResultFailedVmFileInfo => Some(from.as_any_ref().downcast_ref::<UpdateVirtualMachineFilesResultFailedVmFileInfo>()?),
StructType::UserSearchResult => Some(from.as_any_ref().downcast_ref::<UserSearchResult>()?),
StructType::PosixUserSearchResult => Some(from.as_any_ref().downcast_ref::<PosixUserSearchResult>()?),
StructType::UserSession => Some(from.as_any_ref().downcast_ref::<UserSession>()?),
StructType::VVolVmConfigFileUpdateResult => Some(from.as_any_ref().downcast_ref::<VVolVmConfigFileUpdateResult>()?),
StructType::VVolVmConfigFileUpdateResultFailedVmConfigFileInfo => Some(from.as_any_ref().downcast_ref::<VVolVmConfigFileUpdateResultFailedVmConfigFileInfo>()?),
StructType::VasaStorageArray => Some(from.as_any_ref().downcast_ref::<VasaStorageArray>()?),
StructType::VasaStorageArrayDiscoveryFcTransport => Some(from.as_any_ref().downcast_ref::<VasaStorageArrayDiscoveryFcTransport>()?),
StructType::VasaStorageArrayDiscoveryIpTransport => Some(from.as_any_ref().downcast_ref::<VasaStorageArrayDiscoveryIpTransport>()?),
StructType::VasaStorageArrayDiscoverySvcInfo => Some(from.as_any_ref().downcast_ref::<VasaStorageArrayDiscoverySvcInfo>()?),
StructType::VasaProviderContainerSpec => Some(from.as_any_ref().downcast_ref::<VasaProviderContainerSpec>()?),
StructType::VimVasaProvider => Some(from.as_any_ref().downcast_ref::<VimVasaProvider>()?),
StructType::VimVasaProviderStatePerArray => Some(from.as_any_ref().downcast_ref::<VimVasaProviderStatePerArray>()?),
StructType::VimVasaProviderVirtualHostConfig => Some(from.as_any_ref().downcast_ref::<VimVasaProviderVirtualHostConfig>()?),
StructType::VimVasaProviderInfo => Some(from.as_any_ref().downcast_ref::<VimVasaProviderInfo>()?),
StructType::VirtualAppLinkInfo => Some(from.as_any_ref().downcast_ref::<VirtualAppLinkInfo>()?),
StructType::VirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskSpec>()?),
StructType::DeviceBackedVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<DeviceBackedVirtualDiskSpec>()?),
StructType::FileBackedVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<SeSparseVirtualDiskSpec>()?),
StructType::VirtualMachineConnection => Some(from.as_any_ref().downcast_ref::<VirtualMachineConnection>()?),
StructType::VirtualMachineMksConnection => Some(from.as_any_ref().downcast_ref::<VirtualMachineMksConnection>()?),
StructType::DiskChangeInfo => Some(from.as_any_ref().downcast_ref::<DiskChangeInfo>()?),
StructType::DiskChangeExtent => Some(from.as_any_ref().downcast_ref::<DiskChangeExtent>()?),
StructType::VirtualMachineDisplayTopology => Some(from.as_any_ref().downcast_ref::<VirtualMachineDisplayTopology>()?),
StructType::VirtualMachineMksTicket => Some(from.as_any_ref().downcast_ref::<VirtualMachineMksTicket>()?),
StructType::StorageRequirement => Some(from.as_any_ref().downcast_ref::<StorageRequirement>()?),
StructType::VirtualMachineTicket => Some(from.as_any_ref().downcast_ref::<VirtualMachineTicket>()?),
StructType::VirtualMachineWipeResult => Some(from.as_any_ref().downcast_ref::<VirtualMachineWipeResult>()?),
StructType::VsanComparator => Some(from.as_any_ref().downcast_ref::<VsanComparator>()?),
StructType::VsanJsonComparator => Some(from.as_any_ref().downcast_ref::<VsanJsonComparator>()?),
StructType::VsanNestJsonComparator => Some(from.as_any_ref().downcast_ref::<VsanNestJsonComparator>()?),
StructType::VsanDataObfuscationRule => Some(from.as_any_ref().downcast_ref::<VsanDataObfuscationRule>()?),
StructType::VsanJsonFilterRule => Some(from.as_any_ref().downcast_ref::<VsanJsonFilterRule>()?),
StructType::VsanMassCollectorPropertyParams => Some(from.as_any_ref().downcast_ref::<VsanMassCollectorPropertyParams>()?),
StructType::VsanMassCollectorSpec => Some(from.as_any_ref().downcast_ref::<VsanMassCollectorSpec>()?),
StructType::VsanObjectTypeRule => Some(from.as_any_ref().downcast_ref::<VsanObjectTypeRule>()?),
StructType::VsanRegexBasedRule => Some(from.as_any_ref().downcast_ref::<VsanRegexBasedRule>()?),
StructType::VsanResourceConstraint => Some(from.as_any_ref().downcast_ref::<VsanResourceConstraint>()?),
StructType::VsanCompositeConstraint => Some(from.as_any_ref().downcast_ref::<VsanCompositeConstraint>()?),
StructType::VsanPropertyConstraint => Some(from.as_any_ref().downcast_ref::<VsanPropertyConstraint>()?),
StructType::VsanUpgradeSystemNetworkPartitionInfo => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemNetworkPartitionInfo>()?),
StructType::VsanUpgradeSystemPreflightCheckIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemPreflightCheckIssue>()?),
StructType::VsanUpgradeSystemApiBrokenIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemApiBrokenIssue>()?),
StructType::VsanUpgradeSystemAutoClaimEnabledOnHostsIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemAutoClaimEnabledOnHostsIssue>()?),
StructType::VsanUpgradeSystemHostsDisconnectedIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemHostsDisconnectedIssue>()?),
StructType::VsanUpgradeSystemMissingHostsInClusterIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemMissingHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemNetworkPartitionIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemNetworkPartitionIssue>()?),
StructType::VsanUpgradeSystemNotEnoughFreeCapacityIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemNotEnoughFreeCapacityIssue>()?),
StructType::VsanUpgradeSystemRogueHostsInClusterIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemRogueHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanUpgradeSystemWrongEsxVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemWrongEsxVersionIssue>()?),
StructType::VsanBrokenDiskChainIssue => Some(from.as_any_ref().downcast_ref::<VsanBrokenDiskChainIssue>()?),
StructType::VsanDisallowDataMovementIssue => Some(from.as_any_ref().downcast_ref::<VsanDisallowDataMovementIssue>()?),
StructType::VsanDisallowEvacuateDataIssue => Some(from.as_any_ref().downcast_ref::<VsanDisallowEvacuateDataIssue>()?),
StructType::VsanDiskUnhealthIssue => Some(from.as_any_ref().downcast_ref::<VsanDiskUnhealthIssue>()?),
StructType::VsanHigherObjectsPresentDuringDowngradeIssue => Some(from.as_any_ref().downcast_ref::<VsanHigherObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanHostPropertyRetrieveIssue => Some(from.as_any_ref().downcast_ref::<VsanHostPropertyRetrieveIssue>()?),
StructType::VsanHostWithHybridDiskgroupIssue => Some(from.as_any_ref().downcast_ref::<VsanHostWithHybridDiskgroupIssue>()?),
StructType::VsanHostsCompressionOnlyNotSupported => Some(from.as_any_ref().downcast_ref::<VsanHostsCompressionOnlyNotSupported>()?),
StructType::VsanMixedEsxVersionInClientIssue => Some(from.as_any_ref().downcast_ref::<VsanMixedEsxVersionInClientIssue>()?),
StructType::VsanMixedEsxVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanMixedEsxVersionIssue>()?),
StructType::VsanObjectInaccessibleIssue => Some(from.as_any_ref().downcast_ref::<VsanObjectInaccessibleIssue>()?),
StructType::VsanObjectPolicyIssue => Some(from.as_any_ref().downcast_ref::<VsanObjectPolicyIssue>()?),
StructType::VsanRemoteClusterNotCompatible => Some(from.as_any_ref().downcast_ref::<VsanRemoteClusterNotCompatible>()?),
StructType::VsanUnknownScanIssue => Some(from.as_any_ref().downcast_ref::<VsanUnknownScanIssue>()?),
StructType::VsanUnsupportedHighDiskVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanUnsupportedHighDiskVersionIssue>()?),
StructType::VsanUpgradeSystemPreflightCheckResult => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemPreflightCheckResult>()?),
StructType::VsanDiskFormatConversionCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskFormatConversionCheckResult>()?),
StructType::VsanUpgradeSystemUpgradeHistoryItem => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryItem>()?),
StructType::VsanUpgradeSystemUpgradeHistoryDiskGroupOp => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryDiskGroupOp>()?),
StructType::VsanUpgradeSystemUpgradeHistoryPreflightFail => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryPreflightFail>()?),
StructType::VsanUpgradeSystemUpgradeHistoryStoragePoolOp => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryStoragePoolOp>()?),
StructType::VsanUpgradeSystemUpgradeStatus => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeStatus>()?),
StructType::VsanUpgradeStatusEx => Some(from.as_any_ref().downcast_ref::<VsanUpgradeStatusEx>()?),
StructType::Action => Some(from.as_any_ref().downcast_ref::<Action>()?),
StructType::CreateTaskAction => Some(from.as_any_ref().downcast_ref::<CreateTaskAction>()?),
StructType::MethodAction => Some(from.as_any_ref().downcast_ref::<MethodAction>()?),
StructType::RunScriptAction => Some(from.as_any_ref().downcast_ref::<RunScriptAction>()?),
StructType::SendEmailAction => Some(from.as_any_ref().downcast_ref::<SendEmailAction>()?),
StructType::SendSnmpAction => Some(from.as_any_ref().downcast_ref::<SendSnmpAction>()?),
StructType::MethodActionArgument => Some(from.as_any_ref().downcast_ref::<MethodActionArgument>()?),
StructType::AlarmAction => Some(from.as_any_ref().downcast_ref::<AlarmAction>()?),
StructType::AlarmTriggeringAction => Some(from.as_any_ref().downcast_ref::<AlarmTriggeringAction>()?),
StructType::GroupAlarmAction => Some(from.as_any_ref().downcast_ref::<GroupAlarmAction>()?),
StructType::AlarmDescription => Some(from.as_any_ref().downcast_ref::<AlarmDescription>()?),
StructType::AlarmExpression => Some(from.as_any_ref().downcast_ref::<AlarmExpression>()?),
StructType::AndAlarmExpression => Some(from.as_any_ref().downcast_ref::<AndAlarmExpression>()?),
StructType::EventAlarmExpression => Some(from.as_any_ref().downcast_ref::<EventAlarmExpression>()?),
StructType::MetricAlarmExpression => Some(from.as_any_ref().downcast_ref::<MetricAlarmExpression>()?),
StructType::OrAlarmExpression => Some(from.as_any_ref().downcast_ref::<OrAlarmExpression>()?),
StructType::StateAlarmExpression => Some(from.as_any_ref().downcast_ref::<StateAlarmExpression>()?),
StructType::AlarmFilterSpec => Some(from.as_any_ref().downcast_ref::<AlarmFilterSpec>()?),
StructType::AlarmSetting => Some(from.as_any_ref().downcast_ref::<AlarmSetting>()?),
StructType::AlarmSpec => Some(from.as_any_ref().downcast_ref::<AlarmSpec>()?),
StructType::AlarmInfo => Some(from.as_any_ref().downcast_ref::<AlarmInfo>()?),
StructType::AlarmState => Some(from.as_any_ref().downcast_ref::<AlarmState>()?),
StructType::AlarmTriggeringActionTransitionSpec => Some(from.as_any_ref().downcast_ref::<AlarmTriggeringActionTransitionSpec>()?),
StructType::EventAlarmExpressionComparison => Some(from.as_any_ref().downcast_ref::<EventAlarmExpressionComparison>()?),
StructType::ClusterAction => Some(from.as_any_ref().downcast_ref::<ClusterAction>()?),
StructType::ClusterClusterInitialPlacementAction => Some(from.as_any_ref().downcast_ref::<ClusterClusterInitialPlacementAction>()?),
StructType::ClusterHostInfraUpdateHaModeAction => Some(from.as_any_ref().downcast_ref::<ClusterHostInfraUpdateHaModeAction>()?),
StructType::ClusterHostPowerAction => Some(from.as_any_ref().downcast_ref::<ClusterHostPowerAction>()?),
StructType::ClusterInitialPlacementAction => Some(from.as_any_ref().downcast_ref::<ClusterInitialPlacementAction>()?),
StructType::ClusterMigrationAction => Some(from.as_any_ref().downcast_ref::<ClusterMigrationAction>()?),
StructType::PlacementAction => Some(from.as_any_ref().downcast_ref::<PlacementAction>()?),
StructType::HbrDiskMigrationAction => Some(from.as_any_ref().downcast_ref::<HbrDiskMigrationAction>()?),
StructType::StorageMigrationAction => Some(from.as_any_ref().downcast_ref::<StorageMigrationAction>()?),
StructType::StoragePlacementAction => Some(from.as_any_ref().downcast_ref::<StoragePlacementAction>()?),
StructType::ClusterActionHistory => Some(from.as_any_ref().downcast_ref::<ClusterActionHistory>()?),
StructType::ClusterAttemptedVmInfo => Some(from.as_any_ref().downcast_ref::<ClusterAttemptedVmInfo>()?),
StructType::ClusterPowerContext => Some(from.as_any_ref().downcast_ref::<ClusterPowerContext>()?),
StructType::ClusterConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterConfigInfo>()?),
StructType::ClusterConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterConfigSpec>()?),
StructType::ClusterCryptoConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterCryptoConfigInfo>()?),
StructType::ClusterDasAamNodeState => Some(from.as_any_ref().downcast_ref::<ClusterDasAamNodeState>()?),
StructType::ClusterDasAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAdmissionControlInfo>()?),
StructType::ClusterFailoverHostAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverHostAdmissionControlInfo>()?),
StructType::ClusterFailoverLevelAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverLevelAdmissionControlInfo>()?),
StructType::ClusterFailoverResourcesAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverResourcesAdmissionControlInfo>()?),
StructType::ClusterDasAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterDasAdmissionControlPolicy>()?),
StructType::ClusterFailoverHostAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverHostAdmissionControlPolicy>()?),
StructType::ClusterFailoverLevelAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverLevelAdmissionControlPolicy>()?),
StructType::ClusterFailoverResourcesAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverResourcesAdmissionControlPolicy>()?),
StructType::ClusterDasAdvancedRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAdvancedRuntimeInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasFailoverLevelAdvancedRuntimeInfo>()?),
StructType::DasHeartbeatDatastoreInfo => Some(from.as_any_ref().downcast_ref::<DasHeartbeatDatastoreInfo>()?),
StructType::ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo>()?),
StructType::ClusterDasConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasConfigInfo>()?),
StructType::ClusterDasData => Some(from.as_any_ref().downcast_ref::<ClusterDasData>()?),
StructType::ClusterDasDataSummary => Some(from.as_any_ref().downcast_ref::<ClusterDasDataSummary>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots => Some(from.as_any_ref().downcast_ref::<ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots => Some(from.as_any_ref().downcast_ref::<ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots>()?),
StructType::ClusterDasFdmHostState => Some(from.as_any_ref().downcast_ref::<ClusterDasFdmHostState>()?),
StructType::ClusterDasHostInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasHostInfo>()?),
StructType::ClusterDasAamHostInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAamHostInfo>()?),
StructType::ClusterDasHostRecommendation => Some(from.as_any_ref().downcast_ref::<ClusterDasHostRecommendation>()?),
StructType::ClusterDasVmConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasVmConfigInfo>()?),
StructType::ClusterDasVmSettings => Some(from.as_any_ref().downcast_ref::<ClusterDasVmSettings>()?),
StructType::ClusterDpmConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDpmConfigInfo>()?),
StructType::ClusterDpmHostConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDpmHostConfigInfo>()?),
StructType::ClusterDrsConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDrsConfigInfo>()?),
StructType::ClusterDrsFaults => Some(from.as_any_ref().downcast_ref::<ClusterDrsFaults>()?),
StructType::ClusterDrsFaultsFaultsByVm => Some(from.as_any_ref().downcast_ref::<ClusterDrsFaultsFaultsByVm>()?),
StructType::ClusterDrsFaultsFaultsByVirtualDisk => Some(from.as_any_ref().downcast_ref::<ClusterDrsFaultsFaultsByVirtualDisk>()?),
StructType::ClusterDrsMigration => Some(from.as_any_ref().downcast_ref::<ClusterDrsMigration>()?),
StructType::ClusterDrsRecommendation => Some(from.as_any_ref().downcast_ref::<ClusterDrsRecommendation>()?),
StructType::ClusterDrsVmConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterDrsVmConfigInfo>()?),
StructType::ClusterEvcManagerCheckResult => Some(from.as_any_ref().downcast_ref::<ClusterEvcManagerCheckResult>()?),
StructType::ClusterEvcManagerEvcState => Some(from.as_any_ref().downcast_ref::<ClusterEvcManagerEvcState>()?),
StructType::ClusterEnterMaintenanceResult => Some(from.as_any_ref().downcast_ref::<ClusterEnterMaintenanceResult>()?),
StructType::ClusterFailoverHostAdmissionControlInfoHostStatus => Some(from.as_any_ref().downcast_ref::<ClusterFailoverHostAdmissionControlInfoHostStatus>()?),
StructType::ClusterGroupInfo => Some(from.as_any_ref().downcast_ref::<ClusterGroupInfo>()?),
StructType::ClusterHostGroup => Some(from.as_any_ref().downcast_ref::<ClusterHostGroup>()?),
StructType::ClusterVmGroup => Some(from.as_any_ref().downcast_ref::<ClusterVmGroup>()?),
StructType::ClusterHostRecommendation => Some(from.as_any_ref().downcast_ref::<ClusterHostRecommendation>()?),
StructType::ClusterInfraUpdateHaConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterInfraUpdateHaConfigInfo>()?),
StructType::ClusterNotAttemptedVmInfo => Some(from.as_any_ref().downcast_ref::<ClusterNotAttemptedVmInfo>()?),
StructType::ClusterOrchestrationInfo => Some(from.as_any_ref().downcast_ref::<ClusterOrchestrationInfo>()?),
StructType::PerformClusterPowerActionSpec => Some(from.as_any_ref().downcast_ref::<PerformClusterPowerActionSpec>()?),
StructType::PlacementResult => Some(from.as_any_ref().downcast_ref::<PlacementResult>()?),
StructType::PlacementSpec => Some(from.as_any_ref().downcast_ref::<PlacementSpec>()?),
StructType::ClusterPowerOnVmResult => Some(from.as_any_ref().downcast_ref::<ClusterPowerOnVmResult>()?),
StructType::ClusterPreemptibleVmPairInfo => Some(from.as_any_ref().downcast_ref::<ClusterPreemptibleVmPairInfo>()?),
StructType::ClusterProactiveDrsConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterProactiveDrsConfigInfo>()?),
StructType::QueryVsanManagedStorageSpaceUsageSpec => Some(from.as_any_ref().downcast_ref::<QueryVsanManagedStorageSpaceUsageSpec>()?),
StructType::ClusterRecommendation => Some(from.as_any_ref().downcast_ref::<ClusterRecommendation>()?),
StructType::ClusterResourceUsageSummary => Some(from.as_any_ref().downcast_ref::<ClusterResourceUsageSummary>()?),
StructType::ClusterRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterRuleInfo>()?),
StructType::ClusterAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterAffinityRuleSpec>()?),
StructType::ClusterAntiAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterAntiAffinityRuleSpec>()?),
StructType::ClusterDependencyRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterDependencyRuleInfo>()?),
StructType::ClusterFtVmHostRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterFtVmHostRuleInfo>()?),
StructType::ClusterVmHostRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterVmHostRuleInfo>()?),
StructType::VirtualDiskAntiAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskAntiAffinityRuleSpec>()?),
StructType::VirtualDiskRuleSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskRuleSpec>()?),
StructType::VsanSiteFaultDomain => Some(from.as_any_ref().downcast_ref::<VsanSiteFaultDomain>()?),
StructType::VsanSiteFaultDomainConfig => Some(from.as_any_ref().downcast_ref::<VsanSiteFaultDomainConfig>()?),
StructType::ClusterSlotPolicy => Some(from.as_any_ref().downcast_ref::<ClusterSlotPolicy>()?),
StructType::ClusterFixedSizeSlotPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFixedSizeSlotPolicy>()?),
StructType::VsanStorageComplianceResult => Some(from.as_any_ref().downcast_ref::<VsanStorageComplianceResult>()?),
StructType::VsanStorageOperationalStatus => Some(from.as_any_ref().downcast_ref::<VsanStorageOperationalStatus>()?),
StructType::VsanStoragePolicyStatus => Some(from.as_any_ref().downcast_ref::<VsanStoragePolicyStatus>()?),
StructType::ClusterSystemVMsConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterSystemVMsConfigInfo>()?),
StructType::ClusterSystemVMsConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterSystemVMsConfigSpec>()?),
StructType::ClusterUsageSummary => Some(from.as_any_ref().downcast_ref::<ClusterUsageSummary>()?),
StructType::VimClusterVsanPreferredFaultDomainInfo => Some(from.as_any_ref().downcast_ref::<VimClusterVsanPreferredFaultDomainInfo>()?),
StructType::VimClusterVsanStretchedClusterCapability => Some(from.as_any_ref().downcast_ref::<VimClusterVsanStretchedClusterCapability>()?),
StructType::VimClusterVsanStretchedClusterFaultDomainConfig => Some(from.as_any_ref().downcast_ref::<VimClusterVsanStretchedClusterFaultDomainConfig>()?),
StructType::VsanStretchedClusterHostVirtualApplianceStatus => Some(from.as_any_ref().downcast_ref::<VsanStretchedClusterHostVirtualApplianceStatus>()?),
StructType::VimClusterVsanWitnessHostInfo => Some(from.as_any_ref().downcast_ref::<VimClusterVsanWitnessHostInfo>()?),
StructType::ClusterVmComponentProtectionSettings => Some(from.as_any_ref().downcast_ref::<ClusterVmComponentProtectionSettings>()?),
StructType::ClusterVmOrchestrationInfo => Some(from.as_any_ref().downcast_ref::<ClusterVmOrchestrationInfo>()?),
StructType::ClusterVmReadiness => Some(from.as_any_ref().downcast_ref::<ClusterVmReadiness>()?),
StructType::ClusterVmToolsMonitoringSettings => Some(from.as_any_ref().downcast_ref::<ClusterVmToolsMonitoringSettings>()?),
StructType::VsanAttachToSrOperation => Some(from.as_any_ref().downcast_ref::<VsanAttachToSrOperation>()?),
StructType::VsanCapability => Some(from.as_any_ref().downcast_ref::<VsanCapability>()?),
StructType::VsanClusterAdvCfgSyncHostResult => Some(from.as_any_ref().downcast_ref::<VsanClusterAdvCfgSyncHostResult>()?),
StructType::VsanClusterAdvCfgSyncResult => Some(from.as_any_ref().downcast_ref::<VsanClusterAdvCfgSyncResult>()?),
StructType::VsanClusterBalancePerDiskInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterBalancePerDiskInfo>()?),
StructType::VsanClusterBalanceSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterBalanceSummary>()?),
StructType::VsanClusterClomdLivenessResult => Some(from.as_any_ref().downcast_ref::<VsanClusterClomdLivenessResult>()?),
StructType::VsanClusterConfig => Some(from.as_any_ref().downcast_ref::<VsanClusterConfig>()?),
StructType::VsanClusterCreateVmHealthTestResult => Some(from.as_any_ref().downcast_ref::<VsanClusterCreateVmHealthTestResult>()?),
StructType::VsanClusterDitEncryptionHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterDitEncryptionHealthSummary>()?),
StructType::VsanClusterEncryptionHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterEncryptionHealthSummary>()?),
StructType::VsanClusterFileServiceHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterFileServiceHealthSummary>()?),
StructType::VsanClusterGlobalDedupHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterGlobalDedupHealthSummary>()?),
StructType::VsanClusterHclInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterHclInfo>()?),
StructType::VsanClusterHealthAction => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthAction>()?),
StructType::VsanClusterHealthCheckInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthCheckInfo>()?),
StructType::VsanClusterHealthConfigs => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthConfigs>()?),
StructType::VsanClusterHealthGroup => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthGroup>()?),
StructType::VsanClusterHealthLinkBase => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthLinkBase>()?),
StructType::VsanClusterHealthLink => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthLink>()?),
StructType::VsanClusterHealthQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthQuerySpec>()?),
StructType::VsanClusterHealthResultBase => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultBase>()?),
StructType::VsanClusterHealthResultTable => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultTable>()?),
StructType::VsanClusterHealthResultWithRemediation => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultWithRemediation>()?),
StructType::VsanClusterHealthResultColumnInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultColumnInfo>()?),
StructType::VsanClusterHealthResultKeyValuePair => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultKeyValuePair>()?),
StructType::VsanClusterHealthResultRow => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultRow>()?),
StructType::VsanClusterHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthSummary>()?),
StructType::VsanClusterHealthSystemObjectsRepairResult => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthSystemObjectsRepairResult>()?),
StructType::VsanClusterHealthSystemStatusResult => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthSystemStatusResult>()?),
StructType::VsanClusterHealthSystemVersionResult => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthSystemVersionResult>()?),
StructType::VsanClusterHealthTest => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthTest>()?),
StructType::VsanClusterHostVmknicMapping => Some(from.as_any_ref().downcast_ref::<VsanClusterHostVmknicMapping>()?),
StructType::VsanClusterLimitHealthResult => Some(from.as_any_ref().downcast_ref::<VsanClusterLimitHealthResult>()?),
StructType::VsanClusterNetworkHealthResult => Some(from.as_any_ref().downcast_ref::<VsanClusterNetworkHealthResult>()?),
StructType::VsanClusterNetworkLoadTestResult => Some(from.as_any_ref().downcast_ref::<VsanClusterNetworkLoadTestResult>()?),
StructType::VsanClusterNetworkPartitionInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterNetworkPartitionInfo>()?),
StructType::VsanClusterNetworkPerfTaskSpec => Some(from.as_any_ref().downcast_ref::<VsanClusterNetworkPerfTaskSpec>()?),
StructType::VsanClusterProactiveTestResult => Some(from.as_any_ref().downcast_ref::<VsanClusterProactiveTestResult>()?),
StructType::VsanClusterTelemetryProxyConfig => Some(from.as_any_ref().downcast_ref::<VsanClusterTelemetryProxyConfig>()?),
StructType::VsanClusterVMsHealthOverallResult => Some(from.as_any_ref().downcast_ref::<VsanClusterVMsHealthOverallResult>()?),
StructType::VsanClusterVMsHealthSummaryResult => Some(from.as_any_ref().downcast_ref::<VsanClusterVMsHealthSummaryResult>()?),
StructType::VsanClusterVmdkLoadTestResult => Some(from.as_any_ref().downcast_ref::<VsanClusterVmdkLoadTestResult>()?),
StructType::VsanClusterWhatifHostFailuresResult => Some(from.as_any_ref().downcast_ref::<VsanClusterWhatifHostFailuresResult>()?),
StructType::VsanConfigGeneration => Some(from.as_any_ref().downcast_ref::<VsanConfigGeneration>()?),
StructType::VsanDataDrivenApiAction => Some(from.as_any_ref().downcast_ref::<VsanDataDrivenApiAction>()?),
StructType::VsanDiagnosticsThreshold => Some(from.as_any_ref().downcast_ref::<VsanDiagnosticsThreshold>()?),
StructType::VsanDiskFormatConversionSpec => Some(from.as_any_ref().downcast_ref::<VsanDiskFormatConversionSpec>()?),
StructType::VimClusterVsanDiskMappingsConfigSpec => Some(from.as_any_ref().downcast_ref::<VimClusterVsanDiskMappingsConfigSpec>()?),
StructType::VsanEntitySpaceUsage => Some(from.as_any_ref().downcast_ref::<VsanEntitySpaceUsage>()?),
StructType::VimClusterVsanFaultDomainSpec => Some(from.as_any_ref().downcast_ref::<VimClusterVsanFaultDomainSpec>()?),
StructType::VsanFaultDomainDestroySpec => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainDestroySpec>()?),
StructType::VsanFaultDomainUpdateSpec => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainUpdateSpec>()?),
StructType::VimClusterVsanFaultDomainsConfigSpec => Some(from.as_any_ref().downcast_ref::<VimClusterVsanFaultDomainsConfigSpec>()?),
StructType::VsanHealthActionBase => Some(from.as_any_ref().downcast_ref::<VsanHealthActionBase>()?),
StructType::VsanHealthActionSteps => Some(from.as_any_ref().downcast_ref::<VsanHealthActionSteps>()?),
StructType::VsanHealthApiBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthApiBasedAction>()?),
StructType::VsanHealthCmdBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthCmdBasedAction>()?),
StructType::VsanHealthDataDrivenAction => Some(from.as_any_ref().downcast_ref::<VsanHealthDataDrivenAction>()?),
StructType::VsanHealthTxtBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthTxtBasedAction>()?),
StructType::VsanHealthConfirmationDialog => Some(from.as_any_ref().downcast_ref::<VsanHealthConfirmationDialog>()?),
StructType::VsanHealthCorrelation => Some(from.as_any_ref().downcast_ref::<VsanHealthCorrelation>()?),
StructType::VsanHealthExtMgmtPreCheckResult => Some(from.as_any_ref().downcast_ref::<VsanHealthExtMgmtPreCheckResult>()?),
StructType::VsanHealthTroubleshooting => Some(from.as_any_ref().downcast_ref::<VsanHealthTroubleshooting>()?),
StructType::VsanHistoricalHealthQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanHistoricalHealthQuerySpec>()?),
StructType::VsanHistoricalHealthTest => Some(from.as_any_ref().downcast_ref::<VsanHistoricalHealthTest>()?),
StructType::VsanHostClomdLivenessResult => Some(from.as_any_ref().downcast_ref::<VsanHostClomdLivenessResult>()?),
StructType::VsanHostCreateVmHealthTestResult => Some(from.as_any_ref().downcast_ref::<VsanHostCreateVmHealthTestResult>()?),
StructType::VimClusterVsanHostDiskMapping => Some(from.as_any_ref().downcast_ref::<VimClusterVsanHostDiskMapping>()?),
StructType::VsanHostHealthSystemVersionResult => Some(from.as_any_ref().downcast_ref::<VsanHostHealthSystemVersionResult>()?),
StructType::VsanIoInsightInstance => Some(from.as_any_ref().downcast_ref::<VsanIoInsightInstance>()?),
StructType::VsanIoInsightInstanceQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanIoInsightInstanceQuerySpec>()?),
StructType::VsanIscsiHomeObjectSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiHomeObjectSpec>()?),
StructType::VsanIscsiInitiatorGroup => Some(from.as_any_ref().downcast_ref::<VsanIscsiInitiatorGroup>()?),
StructType::VsanIscsiLunCommonInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiLunCommonInfo>()?),
StructType::VsanIscsiLun => Some(from.as_any_ref().downcast_ref::<VsanIscsiLun>()?),
StructType::VsanIscsiLunSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiLunSpec>()?),
StructType::VsanIscsiTargetAuthSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetAuthSpec>()?),
StructType::VsanIscsiTargetBasicInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetBasicInfo>()?),
StructType::VsanIscsiTargetCommonInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Some(from.as_any_ref().downcast_ref::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetSpec>()?),
StructType::VsanIscsiTargetServiceConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetServiceConfig>()?),
StructType::VsanIscsiTargetServiceSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetServiceSpec>()?),
StructType::VsanIscsiTargetServiceDefaultConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetServiceDefaultConfigSpec>()?),
StructType::VsanNetworkDiagnostics => Some(from.as_any_ref().downcast_ref::<VsanNetworkDiagnostics>()?),
StructType::VsanObjIdentityQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanObjIdentityQuerySpec>()?),
StructType::VsanClusterObjectExtAttrs => Some(from.as_any_ref().downcast_ref::<VsanClusterObjectExtAttrs>()?),
StructType::VsanObjectExtraAttributes => Some(from.as_any_ref().downcast_ref::<VsanObjectExtraAttributes>()?),
StructType::VsanObjectIdentity => Some(from.as_any_ref().downcast_ref::<VsanObjectIdentity>()?),
StructType::VsanObjectIdentityAndHealth => Some(from.as_any_ref().downcast_ref::<VsanObjectIdentityAndHealth>()?),
StructType::VsanObjectInformation => Some(from.as_any_ref().downcast_ref::<VsanObjectInformation>()?),
StructType::VsanObjectQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanObjectQuerySpec>()?),
StructType::VsanObjectSpaceSummary => Some(from.as_any_ref().downcast_ref::<VsanObjectSpaceSummary>()?),
StructType::VsanPerfDiagnoseQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanPerfDiagnoseQuerySpec>()?),
StructType::VsanPerfDiagnosticException => Some(from.as_any_ref().downcast_ref::<VsanPerfDiagnosticException>()?),
StructType::VsanPerfDiagnosticResult => Some(from.as_any_ref().downcast_ref::<VsanPerfDiagnosticResult>()?),
StructType::VsanPerfEntityMetricCsv => Some(from.as_any_ref().downcast_ref::<VsanPerfEntityMetricCsv>()?),
StructType::VsanPerfEntityType => Some(from.as_any_ref().downcast_ref::<VsanPerfEntityType>()?),
StructType::VsanPerfGraph => Some(from.as_any_ref().downcast_ref::<VsanPerfGraph>()?),
StructType::VsanPerfHotspotEntitiesMetrics => Some(from.as_any_ref().downcast_ref::<VsanPerfHotspotEntitiesMetrics>()?),
StructType::VsanPerfHotspotQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanPerfHotspotQuerySpec>()?),
StructType::VsanPerfMasterInformation => Some(from.as_any_ref().downcast_ref::<VsanPerfMasterInformation>()?),
StructType::VsanPerfMemberInfo => Some(from.as_any_ref().downcast_ref::<VsanPerfMemberInfo>()?),
StructType::VsanPerfMetricId => Some(from.as_any_ref().downcast_ref::<VsanPerfMetricId>()?),
StructType::VsanPerfMetricSeriesCsv => Some(from.as_any_ref().downcast_ref::<VsanPerfMetricSeriesCsv>()?),
StructType::VsanPerfNodeInformation => Some(from.as_any_ref().downcast_ref::<VsanPerfNodeInformation>()?),
StructType::VsanPerfQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanPerfQuerySpec>()?),
StructType::VsanPerfThreshold => Some(from.as_any_ref().downcast_ref::<VsanPerfThreshold>()?),
StructType::VsanPerfTimeRange => Some(from.as_any_ref().downcast_ref::<VsanPerfTimeRange>()?),
StructType::VsanPerfTimeRangeQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanPerfTimeRangeQuerySpec>()?),
StructType::VsanPerfTopEntities => Some(from.as_any_ref().downcast_ref::<VsanPerfTopEntities>()?),
StructType::VsanPerfTopEntity => Some(from.as_any_ref().downcast_ref::<VsanPerfTopEntity>()?),
StructType::VsanPerfTopQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanPerfTopQuerySpec>()?),
StructType::VsanPerfsvcConfig => Some(from.as_any_ref().downcast_ref::<VsanPerfsvcConfig>()?),
StructType::VsanRemoteClusterQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanRemoteClusterQuerySpec>()?),
StructType::VsanSpaceQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanSpaceQuerySpec>()?),
StructType::VsanSpaceUsage => Some(from.as_any_ref().downcast_ref::<VsanSpaceUsage>()?),
StructType::VsanSpaceUsageDetailResult => Some(from.as_any_ref().downcast_ref::<VsanSpaceUsageDetailResult>()?),
StructType::VsanSpaceUsageWithDatastoreType => Some(from.as_any_ref().downcast_ref::<VsanSpaceUsageWithDatastoreType>()?),
StructType::VsanStorageWorkloadType => Some(from.as_any_ref().downcast_ref::<VsanStorageWorkloadType>()?),
StructType::VsanStretchedClusterConfig => Some(from.as_any_ref().downcast_ref::<VsanStretchedClusterConfig>()?),
StructType::VsanSyncingObjectFilter => Some(from.as_any_ref().downcast_ref::<VsanSyncingObjectFilter>()?),
StructType::VsanUnicastAddressInfo => Some(from.as_any_ref().downcast_ref::<VsanUnicastAddressInfo>()?),
StructType::VsanVcKmipServersHealth => Some(from.as_any_ref().downcast_ref::<VsanVcKmipServersHealth>()?),
StructType::VsanVcLifecycleCheckResult => Some(from.as_any_ref().downcast_ref::<VsanVcLifecycleCheckResult>()?),
StructType::VsanVcLifecycleCheckSpec => Some(from.as_any_ref().downcast_ref::<VsanVcLifecycleCheckSpec>()?),
StructType::VsanVsanClusterPcapGroup => Some(from.as_any_ref().downcast_ref::<VsanVsanClusterPcapGroup>()?),
StructType::VsanVsanClusterPcapResult => Some(from.as_any_ref().downcast_ref::<VsanVsanClusterPcapResult>()?),
StructType::VsanVumSystemConfig => Some(from.as_any_ref().downcast_ref::<VsanVumSystemConfig>()?),
StructType::VsanWhatifCapacity => Some(from.as_any_ref().downcast_ref::<VsanWhatifCapacity>()?),
StructType::VimClusterVsanWitnessSpec => Some(from.as_any_ref().downcast_ref::<VimClusterVsanWitnessSpec>()?),
StructType::CnsAccessControlSpec => Some(from.as_any_ref().downcast_ref::<CnsAccessControlSpec>()?),
StructType::CnsNfsAccessControlSpec => Some(from.as_any_ref().downcast_ref::<CnsNfsAccessControlSpec>()?),
StructType::CnsBackingObjectDetails => Some(from.as_any_ref().downcast_ref::<CnsBackingObjectDetails>()?),
StructType::CnsBlockBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsBlockBackingDetails>()?),
StructType::CnsFileBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsVsanFileShareBackingDetails>()?),
StructType::CnsBaseCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsBaseCreateSpec>()?),
StructType::CnsFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsVsanFileCreateSpec>()?),
StructType::CnsContainerCluster => Some(from.as_any_ref().downcast_ref::<CnsContainerCluster>()?),
StructType::CnsCursor => Some(from.as_any_ref().downcast_ref::<CnsCursor>()?),
StructType::CnsEntityMetadata => Some(from.as_any_ref().downcast_ref::<CnsEntityMetadata>()?),
StructType::CnsKubernetesEntityMetadata => Some(from.as_any_ref().downcast_ref::<CnsKubernetesEntityMetadata>()?),
StructType::CnsKubernetesEntityReference => Some(from.as_any_ref().downcast_ref::<CnsKubernetesEntityReference>()?),
StructType::CnsPlacementResult => Some(from.as_any_ref().downcast_ref::<CnsPlacementResult>()?),
StructType::CnsQueryFilter => Some(from.as_any_ref().downcast_ref::<CnsQueryFilter>()?),
StructType::CnsKubernetesQueryFilter => Some(from.as_any_ref().downcast_ref::<CnsKubernetesQueryFilter>()?),
StructType::CnsQueryResult => Some(from.as_any_ref().downcast_ref::<CnsQueryResult>()?),
StructType::CnsQuerySelection => Some(from.as_any_ref().downcast_ref::<CnsQuerySelection>()?),
StructType::CnsSnapshotCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsSnapshotCreateSpec>()?),
StructType::CnsSnapshotDeleteSpec => Some(from.as_any_ref().downcast_ref::<CnsSnapshotDeleteSpec>()?),
StructType::CnsSnapshotId => Some(from.as_any_ref().downcast_ref::<CnsSnapshotId>()?),
StructType::CnsVolume => Some(from.as_any_ref().downcast_ref::<CnsVolume>()?),
StructType::CnsVolumeAclConfigureSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeAclConfigureSpec>()?),
StructType::CnsVolumeAttachDetachSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeAttachDetachSpec>()?),
StructType::CnsVolumeCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeCreateSpec>()?),
StructType::CnsVolumeExtendSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeExtendSpec>()?),
StructType::CnsVolumeId => Some(from.as_any_ref().downcast_ref::<CnsVolumeId>()?),
StructType::CnsVolumeMetadata => Some(from.as_any_ref().downcast_ref::<CnsVolumeMetadata>()?),
StructType::CnsVolumeMetadataUpdateSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeMetadataUpdateSpec>()?),
StructType::CnsVolumeOperationBatchResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeOperationBatchResult>()?),
StructType::CnsVolumeOperationResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeOperationResult>()?),
StructType::CnsAsyncQueryResult => Some(from.as_any_ref().downcast_ref::<CnsAsyncQueryResult>()?),
StructType::CnsVolumeAttachResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeAttachResult>()?),
StructType::CnsVolumeCreateResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeCreateResult>()?),
StructType::CnsVolumePolicyReconfigSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumePolicyReconfigSpec>()?),
StructType::CnsVolumeRelocateSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeRelocateSpec>()?),
StructType::CnsBlockVolumeRelocateSpec => Some(from.as_any_ref().downcast_ref::<CnsBlockVolumeRelocateSpec>()?),
StructType::CnsVolumeSource => Some(from.as_any_ref().downcast_ref::<CnsVolumeSource>()?),
StructType::CnsSnapshotVolumeSource => Some(from.as_any_ref().downcast_ref::<CnsSnapshotVolumeSource>()?),
StructType::DistributedVirtualPort => Some(from.as_any_ref().downcast_ref::<DistributedVirtualPort>()?),
StructType::DvPortConfigInfo => Some(from.as_any_ref().downcast_ref::<DvPortConfigInfo>()?),
StructType::DvPortConfigSpec => Some(from.as_any_ref().downcast_ref::<DvPortConfigSpec>()?),
StructType::DvsFilterParameter => Some(from.as_any_ref().downcast_ref::<DvsFilterParameter>()?),
StructType::DvsHostLocalPortInfo => Some(from.as_any_ref().downcast_ref::<DvsHostLocalPortInfo>()?),
StructType::DvPortStatus => Some(from.as_any_ref().downcast_ref::<DvPortStatus>()?),
StructType::DvPortSetting => Some(from.as_any_ref().downcast_ref::<DvPortSetting>()?),
StructType::VMwareDvsPortSetting => Some(from.as_any_ref().downcast_ref::<VMwareDvsPortSetting>()?),
StructType::DvPortState => Some(from.as_any_ref().downcast_ref::<DvPortState>()?),
StructType::DvPortgroupConfigInfo => Some(from.as_any_ref().downcast_ref::<DvPortgroupConfigInfo>()?),
StructType::DvPortgroupConfigSpec => Some(from.as_any_ref().downcast_ref::<DvPortgroupConfigSpec>()?),
StructType::DistributedVirtualPortgroupNsxPortgroupOperationResult => Some(from.as_any_ref().downcast_ref::<DistributedVirtualPortgroupNsxPortgroupOperationResult>()?),
StructType::DvPortgroupPolicy => Some(from.as_any_ref().downcast_ref::<DvPortgroupPolicy>()?),
StructType::VMwareDvsPortgroupPolicy => Some(from.as_any_ref().downcast_ref::<VMwareDvsPortgroupPolicy>()?),
StructType::DistributedVirtualPortgroupProblem => Some(from.as_any_ref().downcast_ref::<DistributedVirtualPortgroupProblem>()?),
StructType::DistributedVirtualPortgroupInfo => Some(from.as_any_ref().downcast_ref::<DistributedVirtualPortgroupInfo>()?),
StructType::DistributedVirtualSwitchInfo => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchInfo>()?),
StructType::DistributedVirtualSwitchManagerCompatibilityResult => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerCompatibilityResult>()?),
StructType::DvsManagerDvsConfigTarget => Some(from.as_any_ref().downcast_ref::<DvsManagerDvsConfigTarget>()?),
StructType::DistributedVirtualSwitchManagerDvsProductSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerDvsProductSpec>()?),
StructType::DistributedVirtualSwitchManagerHostContainer => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostContainer>()?),
StructType::DistributedVirtualSwitchManagerHostDvsFilterSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostDvsFilterSpec>()?),
StructType::DistributedVirtualSwitchManagerHostArrayFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostArrayFilter>()?),
StructType::DistributedVirtualSwitchManagerHostContainerFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostContainerFilter>()?),
StructType::DistributedVirtualSwitchManagerHostDvsMembershipFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostDvsMembershipFilter>()?),
StructType::DistributedVirtualSwitchManagerImportResult => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerImportResult>()?),
StructType::DvsManagerPhysicalNicsList => Some(from.as_any_ref().downcast_ref::<DvsManagerPhysicalNicsList>()?),
StructType::EntityBackup => Some(from.as_any_ref().downcast_ref::<EntityBackup>()?),
StructType::EntityBackupConfig => Some(from.as_any_ref().downcast_ref::<EntityBackupConfig>()?),
StructType::DvsFilterSpecConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecConnecteeSpec>()?),
StructType::DvsFilterSpecPnicConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecPnicConnecteeSpec>()?),
StructType::DvsFilterSpecVmConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVmConnecteeSpec>()?),
StructType::DvsFilterSpecVmknicConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVmknicConnecteeSpec>()?),
StructType::DvsFilterSpecVlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVlanSpec>()?),
StructType::DvsFilterSpecPvlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecPvlanSpec>()?),
StructType::DvsFilterSpecTrunkVlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecTrunkVlanSpec>()?),
StructType::DvsFilterSpecVlanIdSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVlanIdSpec>()?),
StructType::DistributedVirtualSwitchHostMember => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMember>()?),
StructType::DistributedVirtualSwitchHostMemberBacking => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberBacking>()?),
StructType::DistributedVirtualSwitchHostMemberPnicBacking => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberPnicBacking>()?),
StructType::DistributedVirtualSwitchHostMemberConfigInfo => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberConfigInfo>()?),
StructType::DistributedVirtualSwitchHostMemberConfigSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberConfigSpec>()?),
StructType::HostMemberHealthCheckResult => Some(from.as_any_ref().downcast_ref::<HostMemberHealthCheckResult>()?),
StructType::HostMemberUplinkHealthCheckResult => Some(from.as_any_ref().downcast_ref::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanHealthCheckResult>()?),
StructType::VMwareDvsTeamingHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsTeamingHealthCheckResult>()?),
StructType::DistributedVirtualSwitchHostMemberHostUplinkState => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberHostUplinkState>()?),
StructType::DistributedVirtualSwitchHostMemberPnicSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberPnicSpec>()?),
StructType::HostMemberRuntimeInfo => Some(from.as_any_ref().downcast_ref::<HostMemberRuntimeInfo>()?),
StructType::DistributedVirtualSwitchHostMemberRuntimeState => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberRuntimeState>()?),
StructType::DistributedVirtualSwitchHostMemberTransportZoneInfo => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberTransportZoneInfo>()?),
StructType::DistributedVirtualSwitchHostProductSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostProductSpec>()?),
StructType::DistributedVirtualSwitchKeyedOpaqueBlob => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchKeyedOpaqueBlob>()?),
StructType::DistributedVirtualSwitchNetworkOffloadSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchNetworkOffloadSpec>()?),
StructType::DvsNetworkResourcePool => Some(from.as_any_ref().downcast_ref::<DvsNetworkResourcePool>()?),
StructType::DvsNetworkResourcePoolAllocationInfo => Some(from.as_any_ref().downcast_ref::<DvsNetworkResourcePoolAllocationInfo>()?),
StructType::DvsNetworkResourcePoolConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsNetworkResourcePoolConfigSpec>()?),
StructType::DistributedVirtualSwitchPortConnectee => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchPortConnectee>()?),
StructType::DistributedVirtualSwitchPortConnection => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchPortConnection>()?),
StructType::DistributedVirtualSwitchPortCriteria => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchPortCriteria>()?),
StructType::DistributedVirtualSwitchPortStatistics => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchPortStatistics>()?),
StructType::DistributedVirtualSwitchProductSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchProductSpec>()?),
StructType::DvsTrafficRule => Some(from.as_any_ref().downcast_ref::<DvsTrafficRule>()?),
StructType::DvsNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsNetworkRuleAction>()?),
StructType::DvsAcceptNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsAcceptNetworkRuleAction>()?),
StructType::DvsCopyNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsCopyNetworkRuleAction>()?),
StructType::DvsDropNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsDropNetworkRuleAction>()?),
StructType::DvsGreEncapNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsGreEncapNetworkRuleAction>()?),
StructType::DvsLogNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsLogNetworkRuleAction>()?),
StructType::DvsMacRewriteNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsMacRewriteNetworkRuleAction>()?),
StructType::DvsPuntNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsPuntNetworkRuleAction>()?),
StructType::DvsRateLimitNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsRateLimitNetworkRuleAction>()?),
StructType::DvsUpdateTagNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsUpdateTagNetworkRuleAction>()?),
StructType::DvsNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsNetworkRuleQualifier>()?),
StructType::DvsIpNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsIpNetworkRuleQualifier>()?),
StructType::DvsMacNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsMacNetworkRuleQualifier>()?),
StructType::DvsSystemTrafficNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsSystemTrafficNetworkRuleQualifier>()?),
StructType::DvsTrafficRuleset => Some(from.as_any_ref().downcast_ref::<DvsTrafficRuleset>()?),
StructType::DvsVmVnicNetworkResourcePool => Some(from.as_any_ref().downcast_ref::<DvsVmVnicNetworkResourcePool>()?),
StructType::DvsVmVnicResourcePoolConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsVmVnicResourcePoolConfigSpec>()?),
StructType::DvsVmVnicResourceAllocation => Some(from.as_any_ref().downcast_ref::<DvsVmVnicResourceAllocation>()?),
StructType::DvsVmVnicNetworkResourcePoolRuntimeInfo => Some(from.as_any_ref().downcast_ref::<DvsVmVnicNetworkResourcePoolRuntimeInfo>()?),
StructType::DvsVnicAllocatedResource => Some(from.as_any_ref().downcast_ref::<DvsVnicAllocatedResource>()?),
StructType::VmwareDistributedVirtualSwitchDpuFailoverPolicy => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchDpuFailoverPolicy>()?),
StructType::VMwareDvsDpuCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsDpuCapability>()?),
StructType::VMwareIpfixConfig => Some(from.as_any_ref().downcast_ref::<VMwareIpfixConfig>()?),
StructType::VMwareDvsIpfixCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsIpfixCapability>()?),
StructType::VMwareDvsLacpCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsLacpCapability>()?),
StructType::VMwareDvsLacpGroupConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsLacpGroupConfig>()?),
StructType::VMwareDvsLacpGroupSpec => Some(from.as_any_ref().downcast_ref::<VMwareDvsLacpGroupSpec>()?),
StructType::VMwareDvsLagIpfixConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsLagIpfixConfig>()?),
StructType::VMwareDvsLagVlanConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsLagVlanConfig>()?),
StructType::VMwareDvsMtuCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsMtuCapability>()?),
StructType::VmwareDistributedVirtualSwitchNetworkOffloadConfig => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchNetworkOffloadConfig>()?),
StructType::VMwareDvsPvlanConfigSpec => Some(from.as_any_ref().downcast_ref::<VMwareDvsPvlanConfigSpec>()?),
StructType::VMwareDvsPvlanMapEntry => Some(from.as_any_ref().downcast_ref::<VMwareDvsPvlanMapEntry>()?),
StructType::VmwareDistributedVirtualSwitchRealTimeConfig => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchRealTimeConfig>()?),
StructType::VmwareDistributedVirtualSwitchRealTimeLanAnnotation => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchRealTimeLanAnnotation>()?),
StructType::VMwareDvsVspanConfigSpec => Some(from.as_any_ref().downcast_ref::<VMwareDvsVspanConfigSpec>()?),
StructType::VMwareDvsVspanCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsVspanCapability>()?),
StructType::VMwareVspanPort => Some(from.as_any_ref().downcast_ref::<VMwareVspanPort>()?),
StructType::VMwareVspanSession => Some(from.as_any_ref().downcast_ref::<VMwareVspanSession>()?),
StructType::CryptoKeyId => Some(from.as_any_ref().downcast_ref::<CryptoKeyId>()?),
StructType::CryptoKeyPlain => Some(from.as_any_ref().downcast_ref::<CryptoKeyPlain>()?),
StructType::CryptoKeyResult => Some(from.as_any_ref().downcast_ref::<CryptoKeyResult>()?),
StructType::CryptoManagerHostKeyStatus => Some(from.as_any_ref().downcast_ref::<CryptoManagerHostKeyStatus>()?),
StructType::CryptoManagerKmipCertSignRequest => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCertSignRequest>()?),
StructType::CryptoManagerKmipCertificateInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCertificateInfo>()?),
StructType::CryptoManagerKmipClusterStatus => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipClusterStatus>()?),
StructType::CryptoManagerKmipCryptoKeyStatus => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatus>()?),
StructType::CryptoManagerKmipCryptoKeyStatusKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo>()?),
StructType::CryptoManagerKmipCustomAttributeSpec => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCustomAttributeSpec>()?),
StructType::CryptoManagerKmipGenerateKeySpec => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipGenerateKeySpec>()?),
StructType::CryptoManagerKmipServerCertInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipServerCertInfo>()?),
StructType::CryptoManagerKmipServerStatus => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipServerStatus>()?),
StructType::CryptoSpec => Some(from.as_any_ref().downcast_ref::<CryptoSpec>()?),
StructType::CryptoSpecDecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecDecrypt>()?),
StructType::CryptoSpecDeepRecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecDeepRecrypt>()?),
StructType::CryptoSpecEncrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecEncrypt>()?),
StructType::CryptoSpecNoOp => Some(from.as_any_ref().downcast_ref::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Some(from.as_any_ref().downcast_ref::<CryptoSpecRegister>()?),
StructType::CryptoSpecShallowRecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecShallowRecrypt>()?),
StructType::KeyProviderId => Some(from.as_any_ref().downcast_ref::<KeyProviderId>()?),
StructType::KmipClusterInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfo>()?),
StructType::KmipClusterInfoKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoKeyInfo>()?),
StructType::KmipClusterInfoWrappingKeyIdKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoWrappingKeyIdKeyInfo>()?),
StructType::KmipClusterInfoWrappingRotationIntervalKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoWrappingRotationIntervalKeyInfo>()?),
StructType::KmipServerInfo => Some(from.as_any_ref().downcast_ref::<KmipServerInfo>()?),
StructType::KmipServerSpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpec>()?),
StructType::KmipServerSpecKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecKeySpec>()?),
StructType::KmipServerSpecWrappingKeyIdKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecWrappingKeyIdKeySpec>()?),
StructType::KmipServerSpecWrappingRotationIntervalKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecWrappingRotationIntervalKeySpec>()?),
StructType::KmipServerStatus => Some(from.as_any_ref().downcast_ref::<KmipServerStatus>()?),
StructType::ChangesInfoEventArgument => Some(from.as_any_ref().downcast_ref::<ChangesInfoEventArgument>()?),
StructType::DvsOutOfSyncHostArgument => Some(from.as_any_ref().downcast_ref::<DvsOutOfSyncHostArgument>()?),
StructType::Event => Some(from.as_any_ref().downcast_ref::<Event>()?),
StructType::EventArgument => Some(from.as_any_ref().downcast_ref::<EventArgument>()?),
StructType::EntityEventArgument => Some(from.as_any_ref().downcast_ref::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Some(from.as_any_ref().downcast_ref::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Some(from.as_any_ref().downcast_ref::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Some(from.as_any_ref().downcast_ref::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Some(from.as_any_ref().downcast_ref::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Some(from.as_any_ref().downcast_ref::<DvsEventArgument>()?),
StructType::FolderEventArgument => Some(from.as_any_ref().downcast_ref::<FolderEventArgument>()?),
StructType::HostEventArgument => Some(from.as_any_ref().downcast_ref::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Some(from.as_any_ref().downcast_ref::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Some(from.as_any_ref().downcast_ref::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Some(from.as_any_ref().downcast_ref::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Some(from.as_any_ref().downcast_ref::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Some(from.as_any_ref().downcast_ref::<VmEventArgument>()?),
StructType::ProfileEventArgument => Some(from.as_any_ref().downcast_ref::<ProfileEventArgument>()?),
StructType::RoleEventArgument => Some(from.as_any_ref().downcast_ref::<RoleEventArgument>()?),
StructType::EventDescription => Some(from.as_any_ref().downcast_ref::<EventDescription>()?),
StructType::EventArgDesc => Some(from.as_any_ref().downcast_ref::<EventArgDesc>()?),
StructType::EventDescriptionEventDetail => Some(from.as_any_ref().downcast_ref::<EventDescriptionEventDetail>()?),
StructType::EventFilterSpec => Some(from.as_any_ref().downcast_ref::<EventFilterSpec>()?),
StructType::EventFilterSpecByEntity => Some(from.as_any_ref().downcast_ref::<EventFilterSpecByEntity>()?),
StructType::EventFilterSpecByTime => Some(from.as_any_ref().downcast_ref::<EventFilterSpecByTime>()?),
StructType::EventFilterSpecByUsername => Some(from.as_any_ref().downcast_ref::<EventFilterSpecByUsername>()?),
StructType::EventManagerEventViewSpec => Some(from.as_any_ref().downcast_ref::<EventManagerEventViewSpec>()?),
StructType::EventManagerViewByStartId => Some(from.as_any_ref().downcast_ref::<EventManagerViewByStartId>()?),
StructType::ExtendedEventPair => Some(from.as_any_ref().downcast_ref::<ExtendedEventPair>()?),
StructType::VnicPortArgument => Some(from.as_any_ref().downcast_ref::<VnicPortArgument>()?),
StructType::ExtExtendedProductInfo => Some(from.as_any_ref().downcast_ref::<ExtExtendedProductInfo>()?),
StructType::ManagedByInfo => Some(from.as_any_ref().downcast_ref::<ManagedByInfo>()?),
StructType::ExtManagedEntityInfo => Some(from.as_any_ref().downcast_ref::<ExtManagedEntityInfo>()?),
StructType::ExtSolutionManagerInfo => Some(from.as_any_ref().downcast_ref::<ExtSolutionManagerInfo>()?),
StructType::ExtSolutionManagerInfoTabInfo => Some(from.as_any_ref().downcast_ref::<ExtSolutionManagerInfoTabInfo>()?),
StructType::AnswerFileUpdateFailure => Some(from.as_any_ref().downcast_ref::<AnswerFileUpdateFailure>()?),
StructType::ConflictingConfigurationConfig => Some(from.as_any_ref().downcast_ref::<ConflictingConfigurationConfig>()?),
StructType::DatacenterMismatchArgument => Some(from.as_any_ref().downcast_ref::<DatacenterMismatchArgument>()?),
StructType::DvsApplyOperationFaultFaultOnObject => Some(from.as_any_ref().downcast_ref::<DvsApplyOperationFaultFaultOnObject>()?),
StructType::DvsOperationBulkFaultFaultOnHost => Some(from.as_any_ref().downcast_ref::<DvsOperationBulkFaultFaultOnHost>()?),
StructType::ImportOperationBulkFaultFaultOnImport => Some(from.as_any_ref().downcast_ref::<ImportOperationBulkFaultFaultOnImport>()?),
StructType::MultipleCertificatesVerifyFaultThumbprintData => Some(from.as_any_ref().downcast_ref::<MultipleCertificatesVerifyFaultThumbprintData>()?),
StructType::NoPermissionEntityPrivileges => Some(from.as_any_ref().downcast_ref::<NoPermissionEntityPrivileges>()?),
StructType::ProfileUpdateFailedUpdateFailure => Some(from.as_any_ref().downcast_ref::<ProfileUpdateFailedUpdateFailure>()?),
StructType::HostActiveDirectory => Some(from.as_any_ref().downcast_ref::<HostActiveDirectory>()?),
StructType::HostActiveDirectorySpec => Some(from.as_any_ref().downcast_ref::<HostActiveDirectorySpec>()?),
StructType::HostAssignableHardwareBinding => Some(from.as_any_ref().downcast_ref::<HostAssignableHardwareBinding>()?),
StructType::HostAssignableHardwareConfig => Some(from.as_any_ref().downcast_ref::<HostAssignableHardwareConfig>()?),
StructType::HostAssignableHardwareConfigAttributeOverride => Some(from.as_any_ref().downcast_ref::<HostAssignableHardwareConfigAttributeOverride>()?),
StructType::HostAuthenticationInfo => Some(from.as_any_ref().downcast_ref::<HostAuthenticationInfo>()?),
StructType::HostAuthenticationManagerInfo => Some(from.as_any_ref().downcast_ref::<HostAuthenticationManagerInfo>()?),
StructType::HostAuthenticationStoreInfo => Some(from.as_any_ref().downcast_ref::<HostAuthenticationStoreInfo>()?),
StructType::HostDirectoryStoreInfo => Some(from.as_any_ref().downcast_ref::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Some(from.as_any_ref().downcast_ref::<HostActiveDirectoryInfo>()?),
StructType::HostLocalAuthenticationInfo => Some(from.as_any_ref().downcast_ref::<HostLocalAuthenticationInfo>()?),
StructType::AutoStartPowerInfo => Some(from.as_any_ref().downcast_ref::<AutoStartPowerInfo>()?),
StructType::HostAutoStartManagerConfig => Some(from.as_any_ref().downcast_ref::<HostAutoStartManagerConfig>()?),
StructType::AutoStartDefaults => Some(from.as_any_ref().downcast_ref::<AutoStartDefaults>()?),
StructType::HostBiosInfo => Some(from.as_any_ref().downcast_ref::<HostBiosInfo>()?),
StructType::HostBootDeviceInfo => Some(from.as_any_ref().downcast_ref::<HostBootDeviceInfo>()?),
StructType::HostBootDevice => Some(from.as_any_ref().downcast_ref::<HostBootDevice>()?),
StructType::HostCacheConfigurationInfo => Some(from.as_any_ref().downcast_ref::<HostCacheConfigurationInfo>()?),
StructType::HostCacheConfigurationSpec => Some(from.as_any_ref().downcast_ref::<HostCacheConfigurationSpec>()?),
StructType::HostCapability => Some(from.as_any_ref().downcast_ref::<HostCapability>()?),
StructType::HostCertificateManagerCertificateInfo => Some(from.as_any_ref().downcast_ref::<HostCertificateManagerCertificateInfo>()?),
StructType::HostCertificateManagerCertificateSpec => Some(from.as_any_ref().downcast_ref::<HostCertificateManagerCertificateSpec>()?),
StructType::HostConfigChange => Some(from.as_any_ref().downcast_ref::<HostConfigChange>()?),
StructType::HostConfigInfo => Some(from.as_any_ref().downcast_ref::<HostConfigInfo>()?),
StructType::HostConfigManager => Some(from.as_any_ref().downcast_ref::<HostConfigManager>()?),
StructType::HostConfigSpec => Some(from.as_any_ref().downcast_ref::<HostConfigSpec>()?),
StructType::HostConnectInfo => Some(from.as_any_ref().downcast_ref::<HostConnectInfo>()?),
StructType::HostDatastoreConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreConnectInfo>()?),
StructType::HostDatastoreExistsConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreExistsConnectInfo>()?),
StructType::HostDatastoreNameConflictConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreNameConflictConnectInfo>()?),
StructType::HostLicenseConnectInfo => Some(from.as_any_ref().downcast_ref::<HostLicenseConnectInfo>()?),
StructType::HostConnectInfoNetworkInfo => Some(from.as_any_ref().downcast_ref::<HostConnectInfoNetworkInfo>()?),
StructType::HostNewNetworkConnectInfo => Some(from.as_any_ref().downcast_ref::<HostNewNetworkConnectInfo>()?),
StructType::HostConnectSpec => Some(from.as_any_ref().downcast_ref::<HostConnectSpec>()?),
StructType::HostCpuIdInfo => Some(from.as_any_ref().downcast_ref::<HostCpuIdInfo>()?),
StructType::HostCpuInfo => Some(from.as_any_ref().downcast_ref::<HostCpuInfo>()?),
StructType::HostCpuPackage => Some(from.as_any_ref().downcast_ref::<HostCpuPackage>()?),
StructType::HostCpuPowerManagementInfo => Some(from.as_any_ref().downcast_ref::<HostCpuPowerManagementInfo>()?),
StructType::HostCpuSchedulerInfo => Some(from.as_any_ref().downcast_ref::<HostCpuSchedulerInfo>()?),
StructType::HostHyperThreadScheduleInfo => Some(from.as_any_ref().downcast_ref::<HostHyperThreadScheduleInfo>()?),
StructType::HostDataTransportConnectionInfo => Some(from.as_any_ref().downcast_ref::<HostDataTransportConnectionInfo>()?),
StructType::HostNfcConnectionInfo => Some(from.as_any_ref().downcast_ref::<HostNfcConnectionInfo>()?),
StructType::FileInfo => Some(from.as_any_ref().downcast_ref::<FileInfo>()?),
StructType::FloppyImageFileInfo => Some(from.as_any_ref().downcast_ref::<FloppyImageFileInfo>()?),
StructType::FolderFileInfo => Some(from.as_any_ref().downcast_ref::<FolderFileInfo>()?),
StructType::IsoImageFileInfo => Some(from.as_any_ref().downcast_ref::<IsoImageFileInfo>()?),
StructType::VmConfigFileInfo => Some(from.as_any_ref().downcast_ref::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileInfo>()?),
StructType::VmDiskFileInfo => Some(from.as_any_ref().downcast_ref::<VmDiskFileInfo>()?),
StructType::VmLogFileInfo => Some(from.as_any_ref().downcast_ref::<VmLogFileInfo>()?),
StructType::VmNvramFileInfo => Some(from.as_any_ref().downcast_ref::<VmNvramFileInfo>()?),
StructType::VmSnapshotFileInfo => Some(from.as_any_ref().downcast_ref::<VmSnapshotFileInfo>()?),
StructType::FileQueryFlags => Some(from.as_any_ref().downcast_ref::<FileQueryFlags>()?),
StructType::FileQuery => Some(from.as_any_ref().downcast_ref::<FileQuery>()?),
StructType::FloppyImageFileQuery => Some(from.as_any_ref().downcast_ref::<FloppyImageFileQuery>()?),
StructType::FolderFileQuery => Some(from.as_any_ref().downcast_ref::<FolderFileQuery>()?),
StructType::IsoImageFileQuery => Some(from.as_any_ref().downcast_ref::<IsoImageFileQuery>()?),
StructType::VmConfigFileQuery => Some(from.as_any_ref().downcast_ref::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileQuery>()?),
StructType::VmDiskFileQuery => Some(from.as_any_ref().downcast_ref::<VmDiskFileQuery>()?),
StructType::VmLogFileQuery => Some(from.as_any_ref().downcast_ref::<VmLogFileQuery>()?),
StructType::VmNvramFileQuery => Some(from.as_any_ref().downcast_ref::<VmNvramFileQuery>()?),
StructType::VmSnapshotFileQuery => Some(from.as_any_ref().downcast_ref::<VmSnapshotFileQuery>()?),
StructType::HostDatastoreBrowserSearchResults => Some(from.as_any_ref().downcast_ref::<HostDatastoreBrowserSearchResults>()?),
StructType::HostDatastoreBrowserSearchSpec => Some(from.as_any_ref().downcast_ref::<HostDatastoreBrowserSearchSpec>()?),
StructType::VmConfigFileEncryptionInfo => Some(from.as_any_ref().downcast_ref::<VmConfigFileEncryptionInfo>()?),
StructType::VmConfigFileQueryFlags => Some(from.as_any_ref().downcast_ref::<VmConfigFileQueryFlags>()?),
StructType::VmConfigFileQueryFilter => Some(from.as_any_ref().downcast_ref::<VmConfigFileQueryFilter>()?),
StructType::VmDiskFileEncryptionInfo => Some(from.as_any_ref().downcast_ref::<VmDiskFileEncryptionInfo>()?),
StructType::VmDiskFileQueryFlags => Some(from.as_any_ref().downcast_ref::<VmDiskFileQueryFlags>()?),
StructType::VmDiskFileQueryFilter => Some(from.as_any_ref().downcast_ref::<VmDiskFileQueryFilter>()?),
StructType::HostDatastoreSystemCapabilities => Some(from.as_any_ref().downcast_ref::<HostDatastoreSystemCapabilities>()?),
StructType::HostDatastoreSystemDatastoreResult => Some(from.as_any_ref().downcast_ref::<HostDatastoreSystemDatastoreResult>()?),
StructType::HostDatastoreSystemVvolDatastoreSpec => Some(from.as_any_ref().downcast_ref::<HostDatastoreSystemVvolDatastoreSpec>()?),
StructType::HostDateTimeConfig => Some(from.as_any_ref().downcast_ref::<HostDateTimeConfig>()?),
StructType::HostDateTimeInfo => Some(from.as_any_ref().downcast_ref::<HostDateTimeInfo>()?),
StructType::HostDateTimeSystemServiceTestResult => Some(from.as_any_ref().downcast_ref::<HostDateTimeSystemServiceTestResult>()?),
StructType::HostDateTimeSystemTimeZone => Some(from.as_any_ref().downcast_ref::<HostDateTimeSystemTimeZone>()?),
StructType::HostDeploymentInfo => Some(from.as_any_ref().downcast_ref::<HostDeploymentInfo>()?),
StructType::HostDevice => Some(from.as_any_ref().downcast_ref::<HostDevice>()?),
StructType::ScsiLun => Some(from.as_any_ref().downcast_ref::<ScsiLun>()?),
StructType::HostScsiDisk => Some(from.as_any_ref().downcast_ref::<HostScsiDisk>()?),
StructType::DevicePciId => Some(from.as_any_ref().downcast_ref::<DevicePciId>()?),
StructType::HostDhcpService => Some(from.as_any_ref().downcast_ref::<HostDhcpService>()?),
StructType::HostDhcpServiceConfig => Some(from.as_any_ref().downcast_ref::<HostDhcpServiceConfig>()?),
StructType::HostDhcpServiceSpec => Some(from.as_any_ref().downcast_ref::<HostDhcpServiceSpec>()?),
StructType::HostDiagnosticPartition => Some(from.as_any_ref().downcast_ref::<HostDiagnosticPartition>()?),
StructType::HostDiagnosticPartitionCreateDescription => Some(from.as_any_ref().downcast_ref::<HostDiagnosticPartitionCreateDescription>()?),
StructType::HostDiagnosticPartitionCreateOption => Some(from.as_any_ref().downcast_ref::<HostDiagnosticPartitionCreateOption>()?),
StructType::HostDiagnosticPartitionCreateSpec => Some(from.as_any_ref().downcast_ref::<HostDiagnosticPartitionCreateSpec>()?),
StructType::HostDigestInfo => Some(from.as_any_ref().downcast_ref::<HostDigestInfo>()?),
StructType::HostTpmDigestInfo => Some(from.as_any_ref().downcast_ref::<HostTpmDigestInfo>()?),
StructType::HostDiskConfigurationResult => Some(from.as_any_ref().downcast_ref::<HostDiskConfigurationResult>()?),
StructType::HostDiskDimensions => Some(from.as_any_ref().downcast_ref::<HostDiskDimensions>()?),
StructType::HostDiskDimensionsChs => Some(from.as_any_ref().downcast_ref::<HostDiskDimensionsChs>()?),
StructType::HostDiskDimensionsLba => Some(from.as_any_ref().downcast_ref::<HostDiskDimensionsLba>()?),
StructType::HostDiskPartitionInfo => Some(from.as_any_ref().downcast_ref::<HostDiskPartitionInfo>()?),
StructType::HostDiskPartitionBlockRange => Some(from.as_any_ref().downcast_ref::<HostDiskPartitionBlockRange>()?),
StructType::HostDiskPartitionLayout => Some(from.as_any_ref().downcast_ref::<HostDiskPartitionLayout>()?),
StructType::HostDiskPartitionAttributes => Some(from.as_any_ref().downcast_ref::<HostDiskPartitionAttributes>()?),
StructType::HostDiskPartitionSpec => Some(from.as_any_ref().downcast_ref::<HostDiskPartitionSpec>()?),
StructType::HostDnsConfig => Some(from.as_any_ref().downcast_ref::<HostDnsConfig>()?),
StructType::HostDnsConfigSpec => Some(from.as_any_ref().downcast_ref::<HostDnsConfigSpec>()?),
StructType::HostDvxClass => Some(from.as_any_ref().downcast_ref::<HostDvxClass>()?),
StructType::HostEnterMaintenanceResult => Some(from.as_any_ref().downcast_ref::<HostEnterMaintenanceResult>()?),
StructType::HostEsxAgentHostManagerConfigInfo => Some(from.as_any_ref().downcast_ref::<HostEsxAgentHostManagerConfigInfo>()?),
StructType::HostFaultToleranceManagerComponentHealthInfo => Some(from.as_any_ref().downcast_ref::<HostFaultToleranceManagerComponentHealthInfo>()?),
StructType::FcoeConfig => Some(from.as_any_ref().downcast_ref::<FcoeConfig>()?),
StructType::FcoeConfigFcoeCapabilities => Some(from.as_any_ref().downcast_ref::<FcoeConfigFcoeCapabilities>()?),
StructType::FcoeConfigFcoeSpecification => Some(from.as_any_ref().downcast_ref::<FcoeConfigFcoeSpecification>()?),
StructType::FcoeConfigVlanRange => Some(from.as_any_ref().downcast_ref::<FcoeConfigVlanRange>()?),
StructType::HostFeatureCapability => Some(from.as_any_ref().downcast_ref::<HostFeatureCapability>()?),
StructType::HostFeatureMask => Some(from.as_any_ref().downcast_ref::<HostFeatureMask>()?),
StructType::HostFeatureVersionInfo => Some(from.as_any_ref().downcast_ref::<HostFeatureVersionInfo>()?),
StructType::HostFibreChannelOverEthernetHbaLinkInfo => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetHbaLinkInfo>()?),
StructType::HostFileAccess => Some(from.as_any_ref().downcast_ref::<HostFileAccess>()?),
StructType::ModeInfo => Some(from.as_any_ref().downcast_ref::<ModeInfo>()?),
StructType::HostFileSystemMountInfo => Some(from.as_any_ref().downcast_ref::<HostFileSystemMountInfo>()?),
StructType::HostFileSystemVolume => Some(from.as_any_ref().downcast_ref::<HostFileSystemVolume>()?),
StructType::HostLocalFileSystemVolume => Some(from.as_any_ref().downcast_ref::<HostLocalFileSystemVolume>()?),
StructType::HostNasVolume => Some(from.as_any_ref().downcast_ref::<HostNasVolume>()?),
StructType::HostPMemVolume => Some(from.as_any_ref().downcast_ref::<HostPMemVolume>()?),
StructType::HostVfatVolume => Some(from.as_any_ref().downcast_ref::<HostVfatVolume>()?),
StructType::HostVffsVolume => Some(from.as_any_ref().downcast_ref::<HostVffsVolume>()?),
StructType::HostVmfsVolume => Some(from.as_any_ref().downcast_ref::<HostVmfsVolume>()?),
StructType::HostVvolVolume => Some(from.as_any_ref().downcast_ref::<HostVvolVolume>()?),
StructType::HostFileSystemVolumeInfo => Some(from.as_any_ref().downcast_ref::<HostFileSystemVolumeInfo>()?),
StructType::HostFirewallConfig => Some(from.as_any_ref().downcast_ref::<HostFirewallConfig>()?),
StructType::HostFirewallConfigRuleSetConfig => Some(from.as_any_ref().downcast_ref::<HostFirewallConfigRuleSetConfig>()?),
StructType::HostFirewallInfo => Some(from.as_any_ref().downcast_ref::<HostFirewallInfo>()?),
StructType::HostFirewallDefaultPolicy => Some(from.as_any_ref().downcast_ref::<HostFirewallDefaultPolicy>()?),
StructType::HostFlagInfo => Some(from.as_any_ref().downcast_ref::<HostFlagInfo>()?),
StructType::HostForceMountedInfo => Some(from.as_any_ref().downcast_ref::<HostForceMountedInfo>()?),
StructType::HostFru => Some(from.as_any_ref().downcast_ref::<HostFru>()?),
StructType::HostGatewaySpec => Some(from.as_any_ref().downcast_ref::<HostGatewaySpec>()?),
StructType::HostGraphicsConfig => Some(from.as_any_ref().downcast_ref::<HostGraphicsConfig>()?),
StructType::HostGraphicsConfigDeviceType => Some(from.as_any_ref().downcast_ref::<HostGraphicsConfigDeviceType>()?),
StructType::HostGraphicsInfo => Some(from.as_any_ref().downcast_ref::<HostGraphicsInfo>()?),
StructType::HostHardwareInfo => Some(from.as_any_ref().downcast_ref::<HostHardwareInfo>()?),
StructType::HostHardwareStatusInfo => Some(from.as_any_ref().downcast_ref::<HostHardwareStatusInfo>()?),
StructType::DpuStatusInfoOperationalInfo => Some(from.as_any_ref().downcast_ref::<DpuStatusInfoOperationalInfo>()?),
StructType::HostHardwareElementInfo => Some(from.as_any_ref().downcast_ref::<HostHardwareElementInfo>()?),
StructType::DpuStatusInfo => Some(from.as_any_ref().downcast_ref::<DpuStatusInfo>()?),
StructType::HostStorageElementInfo => Some(from.as_any_ref().downcast_ref::<HostStorageElementInfo>()?),
StructType::HostStorageOperationalInfo => Some(from.as_any_ref().downcast_ref::<HostStorageOperationalInfo>()?),
StructType::HostHbaCreateSpec => Some(from.as_any_ref().downcast_ref::<HostHbaCreateSpec>()?),
StructType::HostTcpHbaCreateSpec => Some(from.as_any_ref().downcast_ref::<HostTcpHbaCreateSpec>()?),
StructType::HealthSystemRuntime => Some(from.as_any_ref().downcast_ref::<HealthSystemRuntime>()?),
StructType::HostAccessControlEntry => Some(from.as_any_ref().downcast_ref::<HostAccessControlEntry>()?),
StructType::HostHostBusAdapter => Some(from.as_any_ref().downcast_ref::<HostHostBusAdapter>()?),
StructType::HostBlockHba => Some(from.as_any_ref().downcast_ref::<HostBlockHba>()?),
StructType::HostFibreChannelHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetHba>()?),
StructType::HostInternetScsiHba => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHba>()?),
StructType::HostParallelScsiHba => Some(from.as_any_ref().downcast_ref::<HostParallelScsiHba>()?),
StructType::HostPcieHba => Some(from.as_any_ref().downcast_ref::<HostPcieHba>()?),
StructType::HostRdmaHba => Some(from.as_any_ref().downcast_ref::<HostRdmaHba>()?),
StructType::HostSerialAttachedHba => Some(from.as_any_ref().downcast_ref::<HostSerialAttachedHba>()?),
StructType::HostTcpHba => Some(from.as_any_ref().downcast_ref::<HostTcpHba>()?),
StructType::HostProxySwitch => Some(from.as_any_ref().downcast_ref::<HostProxySwitch>()?),
StructType::HostProxySwitchConfig => Some(from.as_any_ref().downcast_ref::<HostProxySwitchConfig>()?),
StructType::HostProxySwitchEnsInfo => Some(from.as_any_ref().downcast_ref::<HostProxySwitchEnsInfo>()?),
StructType::HostProxySwitchHostLagConfig => Some(from.as_any_ref().downcast_ref::<HostProxySwitchHostLagConfig>()?),
StructType::HostProxySwitchSpec => Some(from.as_any_ref().downcast_ref::<HostProxySwitchSpec>()?),
StructType::HostSpbmDatastoreInfo => Some(from.as_any_ref().downcast_ref::<HostSpbmDatastoreInfo>()?),
StructType::HostSpbmHashInfo => Some(from.as_any_ref().downcast_ref::<HostSpbmHashInfo>()?),
StructType::HostSpbmPolicyBlobInfo => Some(from.as_any_ref().downcast_ref::<HostSpbmPolicyBlobInfo>()?),
StructType::HostSpbmPolicyInfo => Some(from.as_any_ref().downcast_ref::<HostSpbmPolicyInfo>()?),
StructType::HostImageProfileSummary => Some(from.as_any_ref().downcast_ref::<HostImageProfileSummary>()?),
StructType::HostInternetScsiHbaAuthenticationCapabilities => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaAuthenticationCapabilities>()?),
StructType::HostInternetScsiHbaAuthenticationProperties => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaAuthenticationProperties>()?),
StructType::HostInternetScsiHbaDigestCapabilities => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaDigestCapabilities>()?),
StructType::HostInternetScsiHbaDigestProperties => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaDigestProperties>()?),
StructType::HostInternetScsiHbaDiscoveryCapabilities => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaDiscoveryCapabilities>()?),
StructType::HostInternetScsiHbaDiscoveryProperties => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaDiscoveryProperties>()?),
StructType::HostInternetScsiHbaIpCapabilities => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaIpCapabilities>()?),
StructType::HostInternetScsiHbaIpProperties => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaIpProperties>()?),
StructType::HostInternetScsiHbaIPv6Properties => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaIPv6Properties>()?),
StructType::HostInternetScsiHbaIscsiIpv6Address => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaIscsiIpv6Address>()?),
StructType::HostInternetScsiHbaSendTarget => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaSendTarget>()?),
StructType::HostInternetScsiHbaStaticTarget => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaStaticTarget>()?),
StructType::HostInternetScsiHbaTargetSet => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaTargetSet>()?),
StructType::HostIpConfig => Some(from.as_any_ref().downcast_ref::<HostIpConfig>()?),
StructType::VsanFileServiceIpConfig => Some(from.as_any_ref().downcast_ref::<VsanFileServiceIpConfig>()?),
StructType::HostIpConfigIpV6Address => Some(from.as_any_ref().downcast_ref::<HostIpConfigIpV6Address>()?),
StructType::HostIpConfigIpV6AddressConfiguration => Some(from.as_any_ref().downcast_ref::<HostIpConfigIpV6AddressConfiguration>()?),
StructType::HostIpRouteConfig => Some(from.as_any_ref().downcast_ref::<HostIpRouteConfig>()?),
StructType::HostIpRouteConfigSpec => Some(from.as_any_ref().downcast_ref::<HostIpRouteConfigSpec>()?),
StructType::HostIpRouteEntry => Some(from.as_any_ref().downcast_ref::<HostIpRouteEntry>()?),
StructType::HostIpRouteOp => Some(from.as_any_ref().downcast_ref::<HostIpRouteOp>()?),
StructType::HostIpRouteTableConfig => Some(from.as_any_ref().downcast_ref::<HostIpRouteTableConfig>()?),
StructType::HostIpRouteTableInfo => Some(from.as_any_ref().downcast_ref::<HostIpRouteTableInfo>()?),
StructType::HostIpmiInfo => Some(from.as_any_ref().downcast_ref::<HostIpmiInfo>()?),
StructType::IscsiDependencyEntity => Some(from.as_any_ref().downcast_ref::<IscsiDependencyEntity>()?),
StructType::IscsiMigrationDependency => Some(from.as_any_ref().downcast_ref::<IscsiMigrationDependency>()?),
StructType::IscsiPortInfo => Some(from.as_any_ref().downcast_ref::<IscsiPortInfo>()?),
StructType::IscsiStatus => Some(from.as_any_ref().downcast_ref::<IscsiStatus>()?),
StructType::KernelModuleInfo => Some(from.as_any_ref().downcast_ref::<KernelModuleInfo>()?),
StructType::KernelModuleSectionInfo => Some(from.as_any_ref().downcast_ref::<KernelModuleSectionInfo>()?),
StructType::LacpInfo => Some(from.as_any_ref().downcast_ref::<LacpInfo>()?),
StructType::LagInfo => Some(from.as_any_ref().downcast_ref::<LagInfo>()?),
StructType::LagUplinkInfo => Some(from.as_any_ref().downcast_ref::<LagUplinkInfo>()?),
StructType::HostLicenseSpec => Some(from.as_any_ref().downcast_ref::<HostLicenseSpec>()?),
StructType::LinkDiscoveryProtocolConfig => Some(from.as_any_ref().downcast_ref::<LinkDiscoveryProtocolConfig>()?),
StructType::HostAccountSpec => Some(from.as_any_ref().downcast_ref::<HostAccountSpec>()?),
StructType::HostPosixAccountSpec => Some(from.as_any_ref().downcast_ref::<HostPosixAccountSpec>()?),
StructType::HostLocalFileSystemVolumeSpec => Some(from.as_any_ref().downcast_ref::<HostLocalFileSystemVolumeSpec>()?),
StructType::HostLowLevelProvisioningManagerDiskLayoutSpec => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerDiskLayoutSpec>()?),
StructType::HostLowLevelProvisioningManagerFileDeleteResult => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerFileDeleteResult>()?),
StructType::HostLowLevelProvisioningManagerFileDeleteSpec => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerFileDeleteSpec>()?),
StructType::HostLowLevelProvisioningManagerFileReserveResult => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerFileReserveResult>()?),
StructType::HostLowLevelProvisioningManagerFileReserveSpec => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerFileReserveSpec>()?),
StructType::HostLowLevelProvisioningManagerSnapshotLayoutSpec => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerSnapshotLayoutSpec>()?),
StructType::HostLowLevelProvisioningManagerVmMigrationStatus => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerVmMigrationStatus>()?),
StructType::HostLowLevelProvisioningManagerVmRecoveryInfo => Some(from.as_any_ref().downcast_ref::<HostLowLevelProvisioningManagerVmRecoveryInfo>()?),
StructType::HostMaintenanceSpec => Some(from.as_any_ref().downcast_ref::<HostMaintenanceSpec>()?),
StructType::ServiceConsoleReservationInfo => Some(from.as_any_ref().downcast_ref::<ServiceConsoleReservationInfo>()?),
StructType::VirtualMachineMemoryReservationInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineMemoryReservationInfo>()?),
StructType::VirtualMachineMemoryReservationSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineMemoryReservationSpec>()?),
StructType::HostMemorySpec => Some(from.as_any_ref().downcast_ref::<HostMemorySpec>()?),
StructType::HostMemoryTierInfo => Some(from.as_any_ref().downcast_ref::<HostMemoryTierInfo>()?),
StructType::HostMountInfo => Some(from.as_any_ref().downcast_ref::<HostMountInfo>()?),
StructType::HostMultipathInfo => Some(from.as_any_ref().downcast_ref::<HostMultipathInfo>()?),
StructType::HostMultipathInfoLogicalUnit => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoLogicalUnit>()?),
StructType::HostMultipathInfoLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoLogicalUnitPolicy>()?),
StructType::HostMultipathInfoFixedLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoFixedLogicalUnitPolicy>()?),
StructType::HostMultipathInfoHppLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoHppLogicalUnitPolicy>()?),
StructType::HostMultipathInfoLogicalUnitStorageArrayTypePolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoLogicalUnitStorageArrayTypePolicy>()?),
StructType::HostMultipathInfoPath => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoPath>()?),
StructType::HostMultipathStateInfo => Some(from.as_any_ref().downcast_ref::<HostMultipathStateInfo>()?),
StructType::HostMultipathStateInfoPath => Some(from.as_any_ref().downcast_ref::<HostMultipathStateInfoPath>()?),
StructType::HostNasVolumeConfig => Some(from.as_any_ref().downcast_ref::<HostNasVolumeConfig>()?),
StructType::HostNasVolumeSpec => Some(from.as_any_ref().downcast_ref::<HostNasVolumeSpec>()?),
StructType::HostNasVolumeUserInfo => Some(from.as_any_ref().downcast_ref::<HostNasVolumeUserInfo>()?),
StructType::HostNatService => Some(from.as_any_ref().downcast_ref::<HostNatService>()?),
StructType::HostNatServiceConfig => Some(from.as_any_ref().downcast_ref::<HostNatServiceConfig>()?),
StructType::HostNatServiceNameServiceSpec => Some(from.as_any_ref().downcast_ref::<HostNatServiceNameServiceSpec>()?),
StructType::HostNatServicePortForwardSpec => Some(from.as_any_ref().downcast_ref::<HostNatServicePortForwardSpec>()?),
StructType::HostNatServiceSpec => Some(from.as_any_ref().downcast_ref::<HostNatServiceSpec>()?),
StructType::HostNetCapabilities => Some(from.as_any_ref().downcast_ref::<HostNetCapabilities>()?),
StructType::HostNetOffloadCapabilities => Some(from.as_any_ref().downcast_ref::<HostNetOffloadCapabilities>()?),
StructType::HostNetStackInstance => Some(from.as_any_ref().downcast_ref::<HostNetStackInstance>()?),
StructType::HostNetworkConfig => Some(from.as_any_ref().downcast_ref::<HostNetworkConfig>()?),
StructType::HostNetworkConfigNetStackSpec => Some(from.as_any_ref().downcast_ref::<HostNetworkConfigNetStackSpec>()?),
StructType::HostNetworkConfigResult => Some(from.as_any_ref().downcast_ref::<HostNetworkConfigResult>()?),
StructType::HostNetworkInfo => Some(from.as_any_ref().downcast_ref::<HostNetworkInfo>()?),
StructType::HostNetworkPolicy => Some(from.as_any_ref().downcast_ref::<HostNetworkPolicy>()?),
StructType::HostNicFailureCriteria => Some(from.as_any_ref().downcast_ref::<HostNicFailureCriteria>()?),
StructType::HostNicOrderPolicy => Some(from.as_any_ref().downcast_ref::<HostNicOrderPolicy>()?),
StructType::HostNicTeamingPolicy => Some(from.as_any_ref().downcast_ref::<HostNicTeamingPolicy>()?),
StructType::HostNetworkSecurityPolicy => Some(from.as_any_ref().downcast_ref::<HostNetworkSecurityPolicy>()?),
StructType::HostNetworkTrafficShapingPolicy => Some(from.as_any_ref().downcast_ref::<HostNetworkTrafficShapingPolicy>()?),
StructType::HostNtpConfig => Some(from.as_any_ref().downcast_ref::<HostNtpConfig>()?),
StructType::HostNumaInfo => Some(from.as_any_ref().downcast_ref::<HostNumaInfo>()?),
StructType::HostNumaNode => Some(from.as_any_ref().downcast_ref::<HostNumaNode>()?),
StructType::HostNumericSensorInfo => Some(from.as_any_ref().downcast_ref::<HostNumericSensorInfo>()?),
StructType::NvdimmDimmInfo => Some(from.as_any_ref().downcast_ref::<NvdimmDimmInfo>()?),
StructType::NvdimmGuid => Some(from.as_any_ref().downcast_ref::<NvdimmGuid>()?),
StructType::NvdimmHealthInfo => Some(from.as_any_ref().downcast_ref::<NvdimmHealthInfo>()?),
StructType::NvdimmInterleaveSetInfo => Some(from.as_any_ref().downcast_ref::<NvdimmInterleaveSetInfo>()?),
StructType::NvdimmNamespaceCreateSpec => Some(from.as_any_ref().downcast_ref::<NvdimmNamespaceCreateSpec>()?),
StructType::NvdimmNamespaceDeleteSpec => Some(from.as_any_ref().downcast_ref::<NvdimmNamespaceDeleteSpec>()?),
StructType::NvdimmNamespaceDetails => Some(from.as_any_ref().downcast_ref::<NvdimmNamespaceDetails>()?),
StructType::NvdimmNamespaceInfo => Some(from.as_any_ref().downcast_ref::<NvdimmNamespaceInfo>()?),
StructType::NvdimmSystemInfo => Some(from.as_any_ref().downcast_ref::<NvdimmSystemInfo>()?),
StructType::NvdimmPMemNamespaceCreateSpec => Some(from.as_any_ref().downcast_ref::<NvdimmPMemNamespaceCreateSpec>()?),
StructType::NvdimmRegionInfo => Some(from.as_any_ref().downcast_ref::<NvdimmRegionInfo>()?),
StructType::NvdimmSummary => Some(from.as_any_ref().downcast_ref::<NvdimmSummary>()?),
StructType::HostNvmeController => Some(from.as_any_ref().downcast_ref::<HostNvmeController>()?),
StructType::HostNvmeDisconnectSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeDisconnectSpec>()?),
StructType::HostNvmeDiscoveryLog => Some(from.as_any_ref().downcast_ref::<HostNvmeDiscoveryLog>()?),
StructType::HostNvmeDiscoveryLogEntry => Some(from.as_any_ref().downcast_ref::<HostNvmeDiscoveryLogEntry>()?),
StructType::HostNvmeNamespace => Some(from.as_any_ref().downcast_ref::<HostNvmeNamespace>()?),
StructType::HostNvmeSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeSpec>()?),
StructType::HostNvmeConnectSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeConnectSpec>()?),
StructType::HostNvmeDiscoverSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeDiscoverSpec>()?),
StructType::HostNvmeTopology => Some(from.as_any_ref().downcast_ref::<HostNvmeTopology>()?),
StructType::HostNvmeTopologyInterface => Some(from.as_any_ref().downcast_ref::<HostNvmeTopologyInterface>()?),
StructType::HostNvmeTransportParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeTransportParameters>()?),
StructType::HostNvmeOpaqueTransportParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOpaqueTransportParameters>()?),
StructType::HostNvmeOverFibreChannelParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverFibreChannelParameters>()?),
StructType::HostNvmeOverRdmaParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverRdmaParameters>()?),
StructType::HostNvmeOverTcpParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverTcpParameters>()?),
StructType::HostOpaqueNetworkInfo => Some(from.as_any_ref().downcast_ref::<HostOpaqueNetworkInfo>()?),
StructType::HostOpaqueSwitch => Some(from.as_any_ref().downcast_ref::<HostOpaqueSwitch>()?),
StructType::HostOpaqueSwitchPhysicalNicZone => Some(from.as_any_ref().downcast_ref::<HostOpaqueSwitchPhysicalNicZone>()?),
StructType::HostPartialMaintenanceModeRuntimeInfo => Some(from.as_any_ref().downcast_ref::<HostPartialMaintenanceModeRuntimeInfo>()?),
StructType::HostPatchManagerLocator => Some(from.as_any_ref().downcast_ref::<HostPatchManagerLocator>()?),
StructType::HostPatchManagerPatchManagerOperationSpec => Some(from.as_any_ref().downcast_ref::<HostPatchManagerPatchManagerOperationSpec>()?),
StructType::HostPatchManagerResult => Some(from.as_any_ref().downcast_ref::<HostPatchManagerResult>()?),
StructType::HostPatchManagerStatus => Some(from.as_any_ref().downcast_ref::<HostPatchManagerStatus>()?),
StructType::HostPatchManagerStatusPrerequisitePatch => Some(from.as_any_ref().downcast_ref::<HostPatchManagerStatusPrerequisitePatch>()?),
StructType::HostPathSelectionPolicyOption => Some(from.as_any_ref().downcast_ref::<HostPathSelectionPolicyOption>()?),
StructType::HostPciDevice => Some(from.as_any_ref().downcast_ref::<HostPciDevice>()?),
StructType::HostPciPassthruConfig => Some(from.as_any_ref().downcast_ref::<HostPciPassthruConfig>()?),
StructType::HostSriovConfig => Some(from.as_any_ref().downcast_ref::<HostSriovConfig>()?),
StructType::HostPciPassthruInfo => Some(from.as_any_ref().downcast_ref::<HostPciPassthruInfo>()?),
StructType::HostSriovInfo => Some(from.as_any_ref().downcast_ref::<HostSriovInfo>()?),
StructType::HostPersistentMemoryInfo => Some(from.as_any_ref().downcast_ref::<HostPersistentMemoryInfo>()?),
StructType::PhysicalNic => Some(from.as_any_ref().downcast_ref::<PhysicalNic>()?),
StructType::PhysicalNicCdpDeviceCapability => Some(from.as_any_ref().downcast_ref::<PhysicalNicCdpDeviceCapability>()?),
StructType::PhysicalNicCdpInfo => Some(from.as_any_ref().downcast_ref::<PhysicalNicCdpInfo>()?),
StructType::PhysicalNicConfig => Some(from.as_any_ref().downcast_ref::<PhysicalNicConfig>()?),
StructType::PhysicalNicLinkInfo => Some(from.as_any_ref().downcast_ref::<PhysicalNicLinkInfo>()?),
StructType::LinkLayerDiscoveryProtocolInfo => Some(from.as_any_ref().downcast_ref::<LinkLayerDiscoveryProtocolInfo>()?),
StructType::PhysicalNicHintInfo => Some(from.as_any_ref().downcast_ref::<PhysicalNicHintInfo>()?),
StructType::PhysicalNicHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicHint>()?),
StructType::PhysicalNicIpHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicIpHint>()?),
StructType::PhysicalNicNameHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicNameHint>()?),
StructType::PhysicalNicSpec => Some(from.as_any_ref().downcast_ref::<PhysicalNicSpec>()?),
StructType::HostPlugStoreTopology => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopology>()?),
StructType::HostPlugStoreTopologyAdapter => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopologyAdapter>()?),
StructType::HostPlugStoreTopologyDevice => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopologyDevice>()?),
StructType::HostPlugStoreTopologyPath => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopologyPath>()?),
StructType::HostPlugStoreTopologyPlugin => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopologyPlugin>()?),
StructType::HostPlugStoreTopologyTarget => Some(from.as_any_ref().downcast_ref::<HostPlugStoreTopologyTarget>()?),
StructType::PnicTsoInfo => Some(from.as_any_ref().downcast_ref::<PnicTsoInfo>()?),
StructType::HostPortGroup => Some(from.as_any_ref().downcast_ref::<HostPortGroup>()?),
StructType::HostPortGroupConfig => Some(from.as_any_ref().downcast_ref::<HostPortGroupConfig>()?),
StructType::HostPortGroupPort => Some(from.as_any_ref().downcast_ref::<HostPortGroupPort>()?),
StructType::HostPortGroupSpec => Some(from.as_any_ref().downcast_ref::<HostPortGroupSpec>()?),
StructType::PowerSystemCapability => Some(from.as_any_ref().downcast_ref::<PowerSystemCapability>()?),
StructType::PowerSystemInfo => Some(from.as_any_ref().downcast_ref::<PowerSystemInfo>()?),
StructType::HostPowerPolicy => Some(from.as_any_ref().downcast_ref::<HostPowerPolicy>()?),
StructType::HostProtocolEndpoint => Some(from.as_any_ref().downcast_ref::<HostProtocolEndpoint>()?),
StructType::HostPtpConfig => Some(from.as_any_ref().downcast_ref::<HostPtpConfig>()?),
StructType::HostPtpConfigPtpPort => Some(from.as_any_ref().downcast_ref::<HostPtpConfigPtpPort>()?),
StructType::HostQualifiedName => Some(from.as_any_ref().downcast_ref::<HostQualifiedName>()?),
StructType::HostRdmaDevice => Some(from.as_any_ref().downcast_ref::<HostRdmaDevice>()?),
StructType::HostRdmaDeviceBacking => Some(from.as_any_ref().downcast_ref::<HostRdmaDeviceBacking>()?),
StructType::HostRdmaDevicePnicBacking => Some(from.as_any_ref().downcast_ref::<HostRdmaDevicePnicBacking>()?),
StructType::HostRdmaDeviceCapability => Some(from.as_any_ref().downcast_ref::<HostRdmaDeviceCapability>()?),
StructType::HostRdmaDeviceConnectionInfo => Some(from.as_any_ref().downcast_ref::<HostRdmaDeviceConnectionInfo>()?),
StructType::HostReliableMemoryInfo => Some(from.as_any_ref().downcast_ref::<HostReliableMemoryInfo>()?),
StructType::HostResignatureRescanResult => Some(from.as_any_ref().downcast_ref::<HostResignatureRescanResult>()?),
StructType::HostFirewallRuleset => Some(from.as_any_ref().downcast_ref::<HostFirewallRuleset>()?),
StructType::HostFirewallRulesetIpList => Some(from.as_any_ref().downcast_ref::<HostFirewallRulesetIpList>()?),
StructType::HostFirewallRulesetIpNetwork => Some(from.as_any_ref().downcast_ref::<HostFirewallRulesetIpNetwork>()?),
StructType::HostFirewallRule => Some(from.as_any_ref().downcast_ref::<HostFirewallRule>()?),
StructType::HostFirewallRulesetRulesetSpec => Some(from.as_any_ref().downcast_ref::<HostFirewallRulesetRulesetSpec>()?),
StructType::HostRuntimeInfo => Some(from.as_any_ref().downcast_ref::<HostRuntimeInfo>()?),
StructType::HostRuntimeInfoNetStackInstanceRuntimeInfo => Some(from.as_any_ref().downcast_ref::<HostRuntimeInfoNetStackInstanceRuntimeInfo>()?),
StructType::HostNetworkResourceRuntime => Some(from.as_any_ref().downcast_ref::<HostNetworkResourceRuntime>()?),
StructType::HostRuntimeInfoNetworkRuntimeInfo => Some(from.as_any_ref().downcast_ref::<HostRuntimeInfoNetworkRuntimeInfo>()?),
StructType::HostPlacedVirtualNicIdentifier => Some(from.as_any_ref().downcast_ref::<HostPlacedVirtualNicIdentifier>()?),
StructType::HostPnicNetworkResourceInfo => Some(from.as_any_ref().downcast_ref::<HostPnicNetworkResourceInfo>()?),
StructType::HostRuntimeInfoStateEncryptionInfo => Some(from.as_any_ref().downcast_ref::<HostRuntimeInfoStateEncryptionInfo>()?),
StructType::HostScsiDiskPartition => Some(from.as_any_ref().downcast_ref::<HostScsiDiskPartition>()?),
StructType::ScsiLunCapabilities => Some(from.as_any_ref().downcast_ref::<ScsiLunCapabilities>()?),
StructType::ScsiLunDescriptor => Some(from.as_any_ref().downcast_ref::<ScsiLunDescriptor>()?),
StructType::ScsiLunDurableName => Some(from.as_any_ref().downcast_ref::<ScsiLunDurableName>()?),
StructType::HostScsiTopology => Some(from.as_any_ref().downcast_ref::<HostScsiTopology>()?),
StructType::HostScsiTopologyInterface => Some(from.as_any_ref().downcast_ref::<HostScsiTopologyInterface>()?),
StructType::HostScsiTopologyLun => Some(from.as_any_ref().downcast_ref::<HostScsiTopologyLun>()?),
StructType::HostScsiTopologyTarget => Some(from.as_any_ref().downcast_ref::<HostScsiTopologyTarget>()?),
StructType::HostSecuritySpec => Some(from.as_any_ref().downcast_ref::<HostSecuritySpec>()?),
StructType::HostService => Some(from.as_any_ref().downcast_ref::<HostService>()?),
StructType::HostServiceSourcePackage => Some(from.as_any_ref().downcast_ref::<HostServiceSourcePackage>()?),
StructType::HostServiceConfig => Some(from.as_any_ref().downcast_ref::<HostServiceConfig>()?),
StructType::HostServiceInfo => Some(from.as_any_ref().downcast_ref::<HostServiceInfo>()?),
StructType::HostSevInfo => Some(from.as_any_ref().downcast_ref::<HostSevInfo>()?),
StructType::HostSgxInfo => Some(from.as_any_ref().downcast_ref::<HostSgxInfo>()?),
StructType::HostSgxRegistrationInfo => Some(from.as_any_ref().downcast_ref::<HostSgxRegistrationInfo>()?),
StructType::HostSharedGpuCapabilities => Some(from.as_any_ref().downcast_ref::<HostSharedGpuCapabilities>()?),
StructType::HostSnmpSystemAgentLimits => Some(from.as_any_ref().downcast_ref::<HostSnmpSystemAgentLimits>()?),
StructType::HostSnmpConfigSpec => Some(from.as_any_ref().downcast_ref::<HostSnmpConfigSpec>()?),
StructType::HostSnmpDestination => Some(from.as_any_ref().downcast_ref::<HostSnmpDestination>()?),
StructType::SoftwarePackage => Some(from.as_any_ref().downcast_ref::<SoftwarePackage>()?),
StructType::SoftwarePackageCapability => Some(from.as_any_ref().downcast_ref::<SoftwarePackageCapability>()?),
StructType::Relation => Some(from.as_any_ref().downcast_ref::<Relation>()?),
StructType::HostSriovDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<HostSriovDevicePoolInfo>()?),
StructType::HostSriovNetworkDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<HostSriovNetworkDevicePoolInfo>()?),
StructType::HostSslThumbprintInfo => Some(from.as_any_ref().downcast_ref::<HostSslThumbprintInfo>()?),
StructType::HostStorageArrayTypePolicyOption => Some(from.as_any_ref().downcast_ref::<HostStorageArrayTypePolicyOption>()?),
StructType::HostStorageDeviceInfo => Some(from.as_any_ref().downcast_ref::<HostStorageDeviceInfo>()?),
StructType::HostStorageSystemDiskLocatorLedResult => Some(from.as_any_ref().downcast_ref::<HostStorageSystemDiskLocatorLedResult>()?),
StructType::HostStorageSystemScsiLunResult => Some(from.as_any_ref().downcast_ref::<HostStorageSystemScsiLunResult>()?),
StructType::HostStorageSystemVmfsVolumeResult => Some(from.as_any_ref().downcast_ref::<HostStorageSystemVmfsVolumeResult>()?),
StructType::HostListSummary => Some(from.as_any_ref().downcast_ref::<HostListSummary>()?),
StructType::HostConfigSummary => Some(from.as_any_ref().downcast_ref::<HostConfigSummary>()?),
StructType::HostListSummaryGatewaySummary => Some(from.as_any_ref().downcast_ref::<HostListSummaryGatewaySummary>()?),
StructType::HostHardwareSummary => Some(from.as_any_ref().downcast_ref::<HostHardwareSummary>()?),
StructType::HostListSummaryQuickStats => Some(from.as_any_ref().downcast_ref::<HostListSummaryQuickStats>()?),
StructType::SystemEventInfo => Some(from.as_any_ref().downcast_ref::<SystemEventInfo>()?),
StructType::HostSystemHealthInfo => Some(from.as_any_ref().downcast_ref::<HostSystemHealthInfo>()?),
StructType::HostSystemIdentificationInfo => Some(from.as_any_ref().downcast_ref::<HostSystemIdentificationInfo>()?),
StructType::HostSystemInfo => Some(from.as_any_ref().downcast_ref::<HostSystemInfo>()?),
StructType::HostSystemResourceInfo => Some(from.as_any_ref().downcast_ref::<HostSystemResourceInfo>()?),
StructType::HostSystemSwapConfiguration => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfiguration>()?),
StructType::HostSystemSwapConfigurationSystemSwapOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationSystemSwapOption>()?),
StructType::HostSystemSwapConfigurationDatastoreOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationDatastoreOption>()?),
StructType::HostSystemSwapConfigurationDisabledOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationDisabledOption>()?),
StructType::HostSystemSwapConfigurationHostCacheOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationHostCacheOption>()?),
StructType::HostSystemSwapConfigurationHostLocalSwapOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationHostLocalSwapOption>()?),
StructType::HostTargetTransport => Some(from.as_any_ref().downcast_ref::<HostTargetTransport>()?),
StructType::HostBlockAdapterTargetTransport => Some(from.as_any_ref().downcast_ref::<HostBlockAdapterTargetTransport>()?),
StructType::HostFibreChannelTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetTargetTransport>()?),
StructType::HostInternetScsiTargetTransport => Some(from.as_any_ref().downcast_ref::<HostInternetScsiTargetTransport>()?),
StructType::HostParallelScsiTargetTransport => Some(from.as_any_ref().downcast_ref::<HostParallelScsiTargetTransport>()?),
StructType::HostPcieTargetTransport => Some(from.as_any_ref().downcast_ref::<HostPcieTargetTransport>()?),
StructType::HostRdmaTargetTransport => Some(from.as_any_ref().downcast_ref::<HostRdmaTargetTransport>()?),
StructType::HostSerialAttachedTargetTransport => Some(from.as_any_ref().downcast_ref::<HostSerialAttachedTargetTransport>()?),
StructType::HostTcpTargetTransport => Some(from.as_any_ref().downcast_ref::<HostTcpTargetTransport>()?),
StructType::HostTdxInfo => Some(from.as_any_ref().downcast_ref::<HostTdxInfo>()?),
StructType::HostTpmAttestationInfo => Some(from.as_any_ref().downcast_ref::<HostTpmAttestationInfo>()?),
StructType::HostTpmAttestationReport => Some(from.as_any_ref().downcast_ref::<HostTpmAttestationReport>()?),
StructType::HostTpmEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmEventDetails>()?),
StructType::HostTpmBootCompleteEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmBootCompleteEventDetails>()?),
StructType::HostTpmBootSecurityOptionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmSignerEventDetails>()?),
StructType::HostTpmCommandEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmCommandEventDetails>()?),
StructType::HostTpmOptionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmOptionEventDetails>()?),
StructType::HostTpmSoftwareComponentEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmSoftwareComponentEventDetails>()?),
StructType::HostTpmVersionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmVersionEventDetails>()?),
StructType::HostTpmEventLogEntry => Some(from.as_any_ref().downcast_ref::<HostTpmEventLogEntry>()?),
StructType::HostTrustAuthorityAttestationInfo => Some(from.as_any_ref().downcast_ref::<HostTrustAuthorityAttestationInfo>()?),
StructType::HostUnresolvedVmfsExtent => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsExtent>()?),
StructType::HostUnresolvedVmfsResignatureSpec => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsResignatureSpec>()?),
StructType::HostUnresolvedVmfsResolutionResult => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsResolutionResult>()?),
StructType::HostUnresolvedVmfsResolutionSpec => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsResolutionSpec>()?),
StructType::HostUnresolvedVmfsVolume => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsVolume>()?),
StructType::HostUnresolvedVmfsVolumeResolveStatus => Some(from.as_any_ref().downcast_ref::<HostUnresolvedVmfsVolumeResolveStatus>()?),
StructType::HostVFlashManagerVFlashCacheConfigInfo => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashCacheConfigInfo>()?),
StructType::HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption>()?),
StructType::HostVFlashManagerVFlashCacheConfigSpec => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashCacheConfigSpec>()?),
StructType::HostVFlashManagerVFlashConfigInfo => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashConfigInfo>()?),
StructType::HostVFlashManagerVFlashResourceConfigInfo => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashResourceConfigInfo>()?),
StructType::HostVFlashManagerVFlashResourceConfigSpec => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashResourceConfigSpec>()?),
StructType::HostVFlashManagerVFlashResourceRunTimeInfo => Some(from.as_any_ref().downcast_ref::<HostVFlashManagerVFlashResourceRunTimeInfo>()?),
StructType::HostVFlashResourceConfigurationResult => Some(from.as_any_ref().downcast_ref::<HostVFlashResourceConfigurationResult>()?),
StructType::HostVMotionConfig => Some(from.as_any_ref().downcast_ref::<HostVMotionConfig>()?),
StructType::HostVMotionInfo => Some(from.as_any_ref().downcast_ref::<HostVMotionInfo>()?),
StructType::HostVMotionManagerDstInstantCloneResult => Some(from.as_any_ref().downcast_ref::<HostVMotionManagerDstInstantCloneResult>()?),
StructType::HostVMotionManagerSrcInstantCloneResult => Some(from.as_any_ref().downcast_ref::<HostVMotionManagerSrcInstantCloneResult>()?),
StructType::HostVMotionNetConfig => Some(from.as_any_ref().downcast_ref::<HostVMotionNetConfig>()?),
StructType::VimHostVsanStretchedClusterHostCapability => Some(from.as_any_ref().downcast_ref::<VimHostVsanStretchedClusterHostCapability>()?),
StructType::HostVffsSpec => Some(from.as_any_ref().downcast_ref::<HostVffsSpec>()?),
StructType::HostVirtualNic => Some(from.as_any_ref().downcast_ref::<HostVirtualNic>()?),
StructType::HostVirtualNicConfig => Some(from.as_any_ref().downcast_ref::<HostVirtualNicConfig>()?),
StructType::HostVirtualNicIpRouteSpec => Some(from.as_any_ref().downcast_ref::<HostVirtualNicIpRouteSpec>()?),
StructType::HostVirtualNicOpaqueNetworkSpec => Some(from.as_any_ref().downcast_ref::<HostVirtualNicOpaqueNetworkSpec>()?),
StructType::HostVirtualNicSpec => Some(from.as_any_ref().downcast_ref::<HostVirtualNicSpec>()?),
StructType::HostVirtualNicConnection => Some(from.as_any_ref().downcast_ref::<HostVirtualNicConnection>()?),
StructType::VirtualNicManagerNetConfig => Some(from.as_any_ref().downcast_ref::<VirtualNicManagerNetConfig>()?),
StructType::HostVirtualNicManagerNicTypeSelection => Some(from.as_any_ref().downcast_ref::<HostVirtualNicManagerNicTypeSelection>()?),
StructType::HostVirtualNicManagerInfo => Some(from.as_any_ref().downcast_ref::<HostVirtualNicManagerInfo>()?),
StructType::HostVirtualSwitch => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitch>()?),
StructType::HostVirtualSwitchBeaconConfig => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchBeaconConfig>()?),
StructType::HostVirtualSwitchBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchBridge>()?),
StructType::HostVirtualSwitchAutoBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchAutoBridge>()?),
StructType::HostVirtualSwitchBondBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchBondBridge>()?),
StructType::HostVirtualSwitchSimpleBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchSimpleBridge>()?),
StructType::HostVirtualSwitchConfig => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchConfig>()?),
StructType::HostVirtualSwitchSpec => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchSpec>()?),
StructType::HostVmciAccessManagerAccessSpec => Some(from.as_any_ref().downcast_ref::<HostVmciAccessManagerAccessSpec>()?),
StructType::VmfsDatastoreOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreOption>()?),
StructType::VmfsDatastoreBaseOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreBaseOption>()?),
StructType::VmfsDatastoreMultipleExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreMultipleExtentOption>()?),
StructType::VmfsDatastoreSingleExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreAllExtentOption>()?),
StructType::VmfsDatastoreSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreSpec>()?),
StructType::VmfsDatastoreCreateSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreCreateSpec>()?),
StructType::VmfsDatastoreExpandSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreExpandSpec>()?),
StructType::VmfsDatastoreExtendSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreExtendSpec>()?),
StructType::HostVmfsRescanResult => Some(from.as_any_ref().downcast_ref::<HostVmfsRescanResult>()?),
StructType::VmfsConfigOption => Some(from.as_any_ref().downcast_ref::<VmfsConfigOption>()?),
StructType::HostVmfsSpec => Some(from.as_any_ref().downcast_ref::<HostVmfsSpec>()?),
StructType::VmfsUnmapBandwidthSpec => Some(from.as_any_ref().downcast_ref::<VmfsUnmapBandwidthSpec>()?),
StructType::VsanBasicDeviceInfo => Some(from.as_any_ref().downcast_ref::<VsanBasicDeviceInfo>()?),
StructType::VsanClusterMembershipInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterMembershipInfo>()?),
StructType::VsanDaemonHealth => Some(from.as_any_ref().downcast_ref::<VsanDaemonHealth>()?),
StructType::VsanDiskEncryptionHealth => Some(from.as_any_ref().downcast_ref::<VsanDiskEncryptionHealth>()?),
StructType::VsanDiskRebalanceResult => Some(from.as_any_ref().downcast_ref::<VsanDiskRebalanceResult>()?),
StructType::VsanDitEncryptionHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanDitEncryptionHealthSummary>()?),
StructType::VsanEncryptionHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanEncryptionHealthSummary>()?),
StructType::VsanFailedRepairObjectResult => Some(from.as_any_ref().downcast_ref::<VsanFailedRepairObjectResult>()?),
StructType::VsanFileServerHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanFileServerHealthSummary>()?),
StructType::VsanFileServiceBalanceHealth => Some(from.as_any_ref().downcast_ref::<VsanFileServiceBalanceHealth>()?),
StructType::VsanFileServiceHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanFileServiceHealthSummary>()?),
StructType::VsanFileServiceRootFsHealth => Some(from.as_any_ref().downcast_ref::<VsanFileServiceRootFsHealth>()?),
StructType::VsanFileServiceShareHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanFileServiceShareHealthSummary>()?),
StructType::VsanHclCommonDeviceInfo => Some(from.as_any_ref().downcast_ref::<VsanHclCommonDeviceInfo>()?),
StructType::VsanHclNicInfo => Some(from.as_any_ref().downcast_ref::<VsanHclNicInfo>()?),
StructType::VsanHclComputeResource => Some(from.as_any_ref().downcast_ref::<VsanHclComputeResource>()?),
StructType::VsanHclControllerInfo => Some(from.as_any_ref().downcast_ref::<VsanHclControllerInfo>()?),
StructType::VsanHclDiskInfo => Some(from.as_any_ref().downcast_ref::<VsanHclDiskInfo>()?),
StructType::VsanHclFirmwareFile => Some(from.as_any_ref().downcast_ref::<VsanHclFirmwareFile>()?),
StructType::VsanHclFirmwareUpdateSpec => Some(from.as_any_ref().downcast_ref::<VsanHclFirmwareUpdateSpec>()?),
StructType::VsanHclMemInfo => Some(from.as_any_ref().downcast_ref::<VsanHclMemInfo>()?),
StructType::VsanHealthQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanHealthQuerySpec>()?),
StructType::VsanHostCimProviderInfo => Some(from.as_any_ref().downcast_ref::<VsanHostCimProviderInfo>()?),
StructType::VsanHostEmmSummary => Some(from.as_any_ref().downcast_ref::<VsanHostEmmSummary>()?),
StructType::VsanHostFwComponent => Some(from.as_any_ref().downcast_ref::<VsanHostFwComponent>()?),
StructType::VsanHostGlobalDedupConfigHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanHostGlobalDedupConfigHealthSummary>()?),
StructType::VsanHostHclInfo => Some(from.as_any_ref().downcast_ref::<VsanHostHclInfo>()?),
StructType::VsanHostHealthSystemStatusResult => Some(from.as_any_ref().downcast_ref::<VsanHostHealthSystemStatusResult>()?),
StructType::VsanHostHwDeviceId => Some(from.as_any_ref().downcast_ref::<VsanHostHwDeviceId>()?),
StructType::VsanHostIoInsightInfo => Some(from.as_any_ref().downcast_ref::<VsanHostIoInsightInfo>()?),
StructType::VsanHostQueryCheckLimitsSpec => Some(from.as_any_ref().downcast_ref::<VsanHostQueryCheckLimitsSpec>()?),
StructType::VsanHostReference => Some(from.as_any_ref().downcast_ref::<VsanHostReference>()?),
StructType::VsanHostVirtualApplianceInfo => Some(from.as_any_ref().downcast_ref::<VsanHostVirtualApplianceInfo>()?),
StructType::VsanHostVmdkLoadTestResult => Some(from.as_any_ref().downcast_ref::<VsanHostVmdkLoadTestResult>()?),
StructType::VsanHwToVcgInfoMapping => Some(from.as_any_ref().downcast_ref::<VsanHwToVcgInfoMapping>()?),
StructType::HostVsanInternalSystemCmmdsQuery => Some(from.as_any_ref().downcast_ref::<HostVsanInternalSystemCmmdsQuery>()?),
StructType::HostVsanInternalSystemDeleteVsanObjectsResult => Some(from.as_any_ref().downcast_ref::<HostVsanInternalSystemDeleteVsanObjectsResult>()?),
StructType::VsanNewPolicyBatch => Some(from.as_any_ref().downcast_ref::<VsanNewPolicyBatch>()?),
StructType::VsanPolicyChangeBatch => Some(from.as_any_ref().downcast_ref::<VsanPolicyChangeBatch>()?),
StructType::VsanPolicyCost => Some(from.as_any_ref().downcast_ref::<VsanPolicyCost>()?),
StructType::VsanPolicySatisfiability => Some(from.as_any_ref().downcast_ref::<VsanPolicySatisfiability>()?),
StructType::HostVsanInternalSystemVsanObjectOperationResult => Some(from.as_any_ref().downcast_ref::<HostVsanInternalSystemVsanObjectOperationResult>()?),
StructType::HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult => Some(from.as_any_ref().downcast_ref::<HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult>()?),
StructType::VsanIoInsightInfo => Some(from.as_any_ref().downcast_ref::<VsanIoInsightInfo>()?),
StructType::VsanIperfClientSpec => Some(from.as_any_ref().downcast_ref::<VsanIperfClientSpec>()?),
StructType::VsanKmsHealth => Some(from.as_any_ref().downcast_ref::<VsanKmsHealth>()?),
StructType::VsanLimitHealthResult => Some(from.as_any_ref().downcast_ref::<VsanLimitHealthResult>()?),
StructType::VsanNetworkDiagnosticsHealthInfo => Some(from.as_any_ref().downcast_ref::<VsanNetworkDiagnosticsHealthInfo>()?),
StructType::VsanNetworkHealthResult => Some(from.as_any_ref().downcast_ref::<VsanNetworkHealthResult>()?),
StructType::VsanNetworkLoadTestResult => Some(from.as_any_ref().downcast_ref::<VsanNetworkLoadTestResult>()?),
StructType::VsanNetworkPeerHealthResult => Some(from.as_any_ref().downcast_ref::<VsanNetworkPeerHealthResult>()?),
StructType::VsanNicRdmaInfo => Some(from.as_any_ref().downcast_ref::<VsanNicRdmaInfo>()?),
StructType::VsanObjectHealth => Some(from.as_any_ref().downcast_ref::<VsanObjectHealth>()?),
StructType::VsanObjectOverallHealth => Some(from.as_any_ref().downcast_ref::<VsanObjectOverallHealth>()?),
StructType::VsanPhysicalDiskHealth => Some(from.as_any_ref().downcast_ref::<VsanPhysicalDiskHealth>()?),
StructType::VsanPhysicalDiskHealthSummary => Some(from.as_any_ref().downcast_ref::<VsanPhysicalDiskHealthSummary>()?),
StructType::VsanProactiveRebalanceInfoEx => Some(from.as_any_ref().downcast_ref::<VsanProactiveRebalanceInfoEx>()?),
StructType::VsanQueryResultHostInfo => Some(from.as_any_ref().downcast_ref::<VsanQueryResultHostInfo>()?),
StructType::VsanRepairObjectsResult => Some(from.as_any_ref().downcast_ref::<VsanRepairObjectsResult>()?),
StructType::VsanResourceHealth => Some(from.as_any_ref().downcast_ref::<VsanResourceHealth>()?),
StructType::VsanServerClusterInfo => Some(from.as_any_ref().downcast_ref::<VsanServerClusterInfo>()?),
StructType::VsanSmartDiskStats => Some(from.as_any_ref().downcast_ref::<VsanSmartDiskStats>()?),
StructType::VsanSmartParameter => Some(from.as_any_ref().downcast_ref::<VsanSmartParameter>()?),
StructType::VsanSmartStatsHostSummary => Some(from.as_any_ref().downcast_ref::<VsanSmartStatsHostSummary>()?),
StructType::VsanVcgDeviceInfo => Some(from.as_any_ref().downcast_ref::<VsanVcgDeviceInfo>()?),
StructType::VsanVmdkIoLoadSpec => Some(from.as_any_ref().downcast_ref::<VsanVmdkIoLoadSpec>()?),
StructType::VsanVmdkLoadTestResult => Some(from.as_any_ref().downcast_ref::<VsanVmdkLoadTestResult>()?),
StructType::VsanVmdkLoadTestSpec => Some(from.as_any_ref().downcast_ref::<VsanVmdkLoadTestSpec>()?),
StructType::VsanVsanPcapResult => Some(from.as_any_ref().downcast_ref::<VsanVsanPcapResult>()?),
StructType::HostVvolNqn => Some(from.as_any_ref().downcast_ref::<HostVvolNqn>()?),
StructType::VVolHostPe => Some(from.as_any_ref().downcast_ref::<VVolHostPe>()?),
StructType::HostVvolVolumeHostVvolNqn => Some(from.as_any_ref().downcast_ref::<HostVvolVolumeHostVvolNqn>()?),
StructType::HostVvolVolumeSpecification => Some(from.as_any_ref().downcast_ref::<HostVvolVolumeSpecification>()?),
StructType::NetDhcpConfigInfo => Some(from.as_any_ref().downcast_ref::<NetDhcpConfigInfo>()?),
StructType::NetDhcpConfigInfoDhcpOptions => Some(from.as_any_ref().downcast_ref::<NetDhcpConfigInfoDhcpOptions>()?),
StructType::NetDhcpConfigSpec => Some(from.as_any_ref().downcast_ref::<NetDhcpConfigSpec>()?),
StructType::NetDhcpConfigSpecDhcpOptionsSpec => Some(from.as_any_ref().downcast_ref::<NetDhcpConfigSpecDhcpOptionsSpec>()?),
StructType::NetDnsConfigInfo => Some(from.as_any_ref().downcast_ref::<NetDnsConfigInfo>()?),
StructType::NetDnsConfigSpec => Some(from.as_any_ref().downcast_ref::<NetDnsConfigSpec>()?),
StructType::NetIpConfigInfo => Some(from.as_any_ref().downcast_ref::<NetIpConfigInfo>()?),
StructType::NetIpConfigInfoIpAddress => Some(from.as_any_ref().downcast_ref::<NetIpConfigInfoIpAddress>()?),
StructType::NetIpConfigSpec => Some(from.as_any_ref().downcast_ref::<NetIpConfigSpec>()?),
StructType::NetIpConfigSpecIpAddressSpec => Some(from.as_any_ref().downcast_ref::<NetIpConfigSpecIpAddressSpec>()?),
StructType::NetIpRouteConfigInfo => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigInfo>()?),
StructType::NetIpRouteConfigInfoGateway => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigInfoGateway>()?),
StructType::NetIpRouteConfigInfoIpRoute => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigInfoIpRoute>()?),
StructType::NetIpRouteConfigSpec => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigSpec>()?),
StructType::NetIpRouteConfigSpecGatewaySpec => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigSpecGatewaySpec>()?),
StructType::NetIpRouteConfigSpecIpRouteSpec => Some(from.as_any_ref().downcast_ref::<NetIpRouteConfigSpecIpRouteSpec>()?),
StructType::NetIpStackInfo => Some(from.as_any_ref().downcast_ref::<NetIpStackInfo>()?),
StructType::NetIpStackInfoDefaultRouter => Some(from.as_any_ref().downcast_ref::<NetIpStackInfoDefaultRouter>()?),
StructType::NetIpStackInfoNetToMedia => Some(from.as_any_ref().downcast_ref::<NetIpStackInfoNetToMedia>()?),
StructType::NetBiosConfigInfo => Some(from.as_any_ref().downcast_ref::<NetBiosConfigInfo>()?),
StructType::WinNetBiosConfigInfo => Some(from.as_any_ref().downcast_ref::<WinNetBiosConfigInfo>()?),
StructType::ArrayUpdateSpec => Some(from.as_any_ref().downcast_ref::<ArrayUpdateSpec>()?),
StructType::ClusterDasVmConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDasVmConfigSpec>()?),
StructType::ClusterDatastoreUpdateSpec => Some(from.as_any_ref().downcast_ref::<ClusterDatastoreUpdateSpec>()?),
StructType::ClusterDpmHostConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDpmHostConfigSpec>()?),
StructType::ClusterDrsVmConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDrsVmConfigSpec>()?),
StructType::ClusterGroupSpec => Some(from.as_any_ref().downcast_ref::<ClusterGroupSpec>()?),
StructType::ClusterPreemptibleVmPairSpec => Some(from.as_any_ref().downcast_ref::<ClusterPreemptibleVmPairSpec>()?),
StructType::ClusterRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterRuleSpec>()?),
StructType::ClusterTagCategoryUpdateSpec => Some(from.as_any_ref().downcast_ref::<ClusterTagCategoryUpdateSpec>()?),
StructType::ClusterVmOrchestrationSpec => Some(from.as_any_ref().downcast_ref::<ClusterVmOrchestrationSpec>()?),
StructType::StorageDrsOptionSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsOptionSpec>()?),
StructType::StorageDrsVmConfigSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsVmConfigSpec>()?),
StructType::VAppOvfSectionSpec => Some(from.as_any_ref().downcast_ref::<VAppOvfSectionSpec>()?),
StructType::VAppProductSpec => Some(from.as_any_ref().downcast_ref::<VAppProductSpec>()?),
StructType::VAppPropertySpec => Some(from.as_any_ref().downcast_ref::<VAppPropertySpec>()?),
StructType::VirtualMachineCpuIdInfoSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineCpuIdInfoSpec>()?),
StructType::OptionType => Some(from.as_any_ref().downcast_ref::<OptionType>()?),
StructType::BoolOption => Some(from.as_any_ref().downcast_ref::<BoolOption>()?),
StructType::ChoiceOption => Some(from.as_any_ref().downcast_ref::<ChoiceOption>()?),
StructType::FloatOption => Some(from.as_any_ref().downcast_ref::<FloatOption>()?),
StructType::IntOption => Some(from.as_any_ref().downcast_ref::<IntOption>()?),
StructType::LongOption => Some(from.as_any_ref().downcast_ref::<LongOption>()?),
StructType::StringOption => Some(from.as_any_ref().downcast_ref::<StringOption>()?),
StructType::OptionValue => Some(from.as_any_ref().downcast_ref::<OptionValue>()?),
StructType::HostInternetScsiHbaParamValue => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaParamValue>()?),
StructType::ApplyProfile => Some(from.as_any_ref().downcast_ref::<ApplyProfile>()?),
StructType::ProfileApplyProfileElement => Some(from.as_any_ref().downcast_ref::<ProfileApplyProfileElement>()?),
StructType::ActiveDirectoryProfile => Some(from.as_any_ref().downcast_ref::<ActiveDirectoryProfile>()?),
StructType::AuthenticationProfile => Some(from.as_any_ref().downcast_ref::<AuthenticationProfile>()?),
StructType::DateTimeProfile => Some(from.as_any_ref().downcast_ref::<DateTimeProfile>()?),
StructType::DvsProfile => Some(from.as_any_ref().downcast_ref::<DvsProfile>()?),
StructType::DvsVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsServiceConsoleVNicProfile>()?),
StructType::FirewallProfile => Some(from.as_any_ref().downcast_ref::<FirewallProfile>()?),
StructType::FirewallProfileRulesetProfile => Some(from.as_any_ref().downcast_ref::<FirewallProfileRulesetProfile>()?),
StructType::HostApplyProfile => Some(from.as_any_ref().downcast_ref::<HostApplyProfile>()?),
StructType::HostMemoryProfile => Some(from.as_any_ref().downcast_ref::<HostMemoryProfile>()?),
StructType::IpAddressProfile => Some(from.as_any_ref().downcast_ref::<IpAddressProfile>()?),
StructType::IpRouteProfile => Some(from.as_any_ref().downcast_ref::<IpRouteProfile>()?),
StructType::NasStorageProfile => Some(from.as_any_ref().downcast_ref::<NasStorageProfile>()?),
StructType::NetStackInstanceProfile => Some(from.as_any_ref().downcast_ref::<NetStackInstanceProfile>()?),
StructType::NetworkPolicyProfile => Some(from.as_any_ref().downcast_ref::<NetworkPolicyProfile>()?),
StructType::NetworkProfile => Some(from.as_any_ref().downcast_ref::<NetworkProfile>()?),
StructType::NetworkProfileDnsConfigProfile => Some(from.as_any_ref().downcast_ref::<NetworkProfileDnsConfigProfile>()?),
StructType::NsxHostVNicProfile => Some(from.as_any_ref().downcast_ref::<NsxHostVNicProfile>()?),
StructType::OpaqueSwitchProfile => Some(from.as_any_ref().downcast_ref::<OpaqueSwitchProfile>()?),
StructType::OptionProfile => Some(from.as_any_ref().downcast_ref::<OptionProfile>()?),
StructType::PermissionProfile => Some(from.as_any_ref().downcast_ref::<PermissionProfile>()?),
StructType::PhysicalNicProfile => Some(from.as_any_ref().downcast_ref::<PhysicalNicProfile>()?),
StructType::PnicUplinkProfile => Some(from.as_any_ref().downcast_ref::<PnicUplinkProfile>()?),
StructType::PortGroupProfile => Some(from.as_any_ref().downcast_ref::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Some(from.as_any_ref().downcast_ref::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Some(from.as_any_ref().downcast_ref::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Some(from.as_any_ref().downcast_ref::<VmPortGroupProfile>()?),
StructType::VirtualSwitchSelectionProfile => Some(from.as_any_ref().downcast_ref::<VirtualSwitchSelectionProfile>()?),
StructType::VlanProfile => Some(from.as_any_ref().downcast_ref::<VlanProfile>()?),
StructType::SecurityProfile => Some(from.as_any_ref().downcast_ref::<SecurityProfile>()?),
StructType::ServiceProfile => Some(from.as_any_ref().downcast_ref::<ServiceProfile>()?),
StructType::StaticRouteProfile => Some(from.as_any_ref().downcast_ref::<StaticRouteProfile>()?),
StructType::StorageProfile => Some(from.as_any_ref().downcast_ref::<StorageProfile>()?),
StructType::UserGroupProfile => Some(from.as_any_ref().downcast_ref::<UserGroupProfile>()?),
StructType::UserProfile => Some(from.as_any_ref().downcast_ref::<UserProfile>()?),
StructType::VirtualSwitchProfile => Some(from.as_any_ref().downcast_ref::<VirtualSwitchProfile>()?),
StructType::LinkProfile => Some(from.as_any_ref().downcast_ref::<LinkProfile>()?),
StructType::NumPortsProfile => Some(from.as_any_ref().downcast_ref::<NumPortsProfile>()?),
StructType::ProfileApplyProfileProperty => Some(from.as_any_ref().downcast_ref::<ProfileApplyProfileProperty>()?),
StructType::ComplianceLocator => Some(from.as_any_ref().downcast_ref::<ComplianceLocator>()?),
StructType::ComplianceProfile => Some(from.as_any_ref().downcast_ref::<ComplianceProfile>()?),
StructType::ComplianceResult => Some(from.as_any_ref().downcast_ref::<ComplianceResult>()?),
StructType::ComplianceFailure => Some(from.as_any_ref().downcast_ref::<ComplianceFailure>()?),
StructType::ComplianceFailureComplianceFailureValues => Some(from.as_any_ref().downcast_ref::<ComplianceFailureComplianceFailureValues>()?),
StructType::ProfileDeferredPolicyOptionParameter => Some(from.as_any_ref().downcast_ref::<ProfileDeferredPolicyOptionParameter>()?),
StructType::ProfileExpression => Some(from.as_any_ref().downcast_ref::<ProfileExpression>()?),
StructType::ProfileCompositeExpression => Some(from.as_any_ref().downcast_ref::<ProfileCompositeExpression>()?),
StructType::ProfileSimpleExpression => Some(from.as_any_ref().downcast_ref::<ProfileSimpleExpression>()?),
StructType::ProfileExpressionMetadata => Some(from.as_any_ref().downcast_ref::<ProfileExpressionMetadata>()?),
StructType::ProfileParameterMetadata => Some(from.as_any_ref().downcast_ref::<ProfileParameterMetadata>()?),
StructType::ProfileParameterMetadataParameterRelationMetadata => Some(from.as_any_ref().downcast_ref::<ProfileParameterMetadataParameterRelationMetadata>()?),
StructType::ProfilePolicy => Some(from.as_any_ref().downcast_ref::<ProfilePolicy>()?),
StructType::ProfilePolicyMetadata => Some(from.as_any_ref().downcast_ref::<ProfilePolicyMetadata>()?),
StructType::PolicyOption => Some(from.as_any_ref().downcast_ref::<PolicyOption>()?),
StructType::CompositePolicyOption => Some(from.as_any_ref().downcast_ref::<CompositePolicyOption>()?),
StructType::ProfilePolicyOptionMetadata => Some(from.as_any_ref().downcast_ref::<ProfilePolicyOptionMetadata>()?),
StructType::ProfileCompositePolicyOptionMetadata => Some(from.as_any_ref().downcast_ref::<ProfileCompositePolicyOptionMetadata>()?),
StructType::UserInputRequiredParameterMetadata => Some(from.as_any_ref().downcast_ref::<UserInputRequiredParameterMetadata>()?),
StructType::ProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<ProfileConfigInfo>()?),
StructType::ClusterProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigInfo>()?),
StructType::HostProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<HostProfileConfigInfo>()?),
StructType::ProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<ProfileCreateSpec>()?),
StructType::ProfileSerializedCreateSpec => Some(from.as_any_ref().downcast_ref::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Some(from.as_any_ref().downcast_ref::<HostProfileSerializedHostProfileSpec>()?),
StructType::ClusterProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigServiceCreateSpec>()?),
StructType::HostProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileHostBasedConfigSpec>()?),
StructType::ProfileDescription => Some(from.as_any_ref().downcast_ref::<ProfileDescription>()?),
StructType::ProfileDescriptionSection => Some(from.as_any_ref().downcast_ref::<ProfileDescriptionSection>()?),
StructType::ProfileMetadata => Some(from.as_any_ref().downcast_ref::<ProfileMetadata>()?),
StructType::ProfileMetadataProfileOperationMessage => Some(from.as_any_ref().downcast_ref::<ProfileMetadataProfileOperationMessage>()?),
StructType::ProfileMetadataProfileSortSpec => Some(from.as_any_ref().downcast_ref::<ProfileMetadataProfileSortSpec>()?),
StructType::ProfilePropertyPath => Some(from.as_any_ref().downcast_ref::<ProfilePropertyPath>()?),
StructType::ProfileProfileStructure => Some(from.as_any_ref().downcast_ref::<ProfileProfileStructure>()?),
StructType::ProfileProfileStructureProperty => Some(from.as_any_ref().downcast_ref::<ProfileProfileStructureProperty>()?),
StructType::AnswerFile => Some(from.as_any_ref().downcast_ref::<AnswerFile>()?),
StructType::AnswerFileStatusResult => Some(from.as_any_ref().downcast_ref::<AnswerFileStatusResult>()?),
StructType::AnswerFileStatusError => Some(from.as_any_ref().downcast_ref::<AnswerFileStatusError>()?),
StructType::ProfileExecuteResult => Some(from.as_any_ref().downcast_ref::<ProfileExecuteResult>()?),
StructType::ApplyHostProfileConfigurationSpec => Some(from.as_any_ref().downcast_ref::<ApplyHostProfileConfigurationSpec>()?),
StructType::ProfileExecuteError => Some(from.as_any_ref().downcast_ref::<ProfileExecuteError>()?),
StructType::HostProfileValidationFailureInfo => Some(from.as_any_ref().downcast_ref::<HostProfileValidationFailureInfo>()?),
StructType::HostSpecification => Some(from.as_any_ref().downcast_ref::<HostSpecification>()?),
StructType::HostSubSpecification => Some(from.as_any_ref().downcast_ref::<HostSubSpecification>()?),
StructType::AnswerFileCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileCreateSpec>()?),
StructType::AnswerFileOptionsCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileOptionsCreateSpec>()?),
StructType::AnswerFileSerializedCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileSerializedCreateSpec>()?),
StructType::ApplyHostProfileConfigurationResult => Some(from.as_any_ref().downcast_ref::<ApplyHostProfileConfigurationResult>()?),
StructType::HostProfileManagerCompositionResult => Some(from.as_any_ref().downcast_ref::<HostProfileManagerCompositionResult>()?),
StructType::HostProfileManagerCompositionResultResultElement => Some(from.as_any_ref().downcast_ref::<HostProfileManagerCompositionResultResultElement>()?),
StructType::HostProfileManagerCompositionValidationResult => Some(from.as_any_ref().downcast_ref::<HostProfileManagerCompositionValidationResult>()?),
StructType::HostProfileManagerCompositionValidationResultResultElement => Some(from.as_any_ref().downcast_ref::<HostProfileManagerCompositionValidationResultResultElement>()?),
StructType::HostProfileManagerConfigTaskList => Some(from.as_any_ref().downcast_ref::<HostProfileManagerConfigTaskList>()?),
StructType::HostProfilesEntityCustomizations => Some(from.as_any_ref().downcast_ref::<HostProfilesEntityCustomizations>()?),
StructType::StructuredCustomizations => Some(from.as_any_ref().downcast_ref::<StructuredCustomizations>()?),
StructType::HostProfileManagerHostToConfigSpecMap => Some(from.as_any_ref().downcast_ref::<HostProfileManagerHostToConfigSpecMap>()?),
StructType::ScheduledTaskDescription => Some(from.as_any_ref().downcast_ref::<ScheduledTaskDescription>()?),
StructType::ScheduledTaskSpec => Some(from.as_any_ref().downcast_ref::<ScheduledTaskSpec>()?),
StructType::ScheduledTaskInfo => Some(from.as_any_ref().downcast_ref::<ScheduledTaskInfo>()?),
StructType::TaskScheduler => Some(from.as_any_ref().downcast_ref::<TaskScheduler>()?),
StructType::AfterStartupTaskScheduler => Some(from.as_any_ref().downcast_ref::<AfterStartupTaskScheduler>()?),
StructType::OnceTaskScheduler => Some(from.as_any_ref().downcast_ref::<OnceTaskScheduler>()?),
StructType::RecurrentTaskScheduler => Some(from.as_any_ref().downcast_ref::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Some(from.as_any_ref().downcast_ref::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Some(from.as_any_ref().downcast_ref::<WeeklyTaskScheduler>()?),
StructType::ApplyStorageRecommendationResult => Some(from.as_any_ref().downcast_ref::<ApplyStorageRecommendationResult>()?),
StructType::StorageDrsAutomationConfig => Some(from.as_any_ref().downcast_ref::<StorageDrsAutomationConfig>()?),
StructType::StorageDrsConfigInfo => Some(from.as_any_ref().downcast_ref::<StorageDrsConfigInfo>()?),
StructType::StorageDrsConfigSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsConfigSpec>()?),
StructType::StorageDrsIoLoadBalanceConfig => Some(from.as_any_ref().downcast_ref::<StorageDrsIoLoadBalanceConfig>()?),
StructType::PlacementAffinityRule => Some(from.as_any_ref().downcast_ref::<PlacementAffinityRule>()?),
StructType::PlacementRankResult => Some(from.as_any_ref().downcast_ref::<PlacementRankResult>()?),
StructType::PlacementRankSpec => Some(from.as_any_ref().downcast_ref::<PlacementRankSpec>()?),
StructType::StorageDrsPlacementRankVmSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsPlacementRankVmSpec>()?),
StructType::StorageDrsPodConfigInfo => Some(from.as_any_ref().downcast_ref::<StorageDrsPodConfigInfo>()?),
StructType::StorageDrsPodConfigSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsPodConfigSpec>()?),
StructType::StorageDrsPodSelectionSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsPodSelectionSpec>()?),
StructType::PodDiskLocator => Some(from.as_any_ref().downcast_ref::<PodDiskLocator>()?),
StructType::VmPodConfigForPlacement => Some(from.as_any_ref().downcast_ref::<VmPodConfigForPlacement>()?),
StructType::StorageDrsSpaceLoadBalanceConfig => Some(from.as_any_ref().downcast_ref::<StorageDrsSpaceLoadBalanceConfig>()?),
StructType::StoragePlacementResult => Some(from.as_any_ref().downcast_ref::<StoragePlacementResult>()?),
StructType::StoragePlacementSpec => Some(from.as_any_ref().downcast_ref::<StoragePlacementSpec>()?),
StructType::StorageDrsVmConfigInfo => Some(from.as_any_ref().downcast_ref::<StorageDrsVmConfigInfo>()?),
StructType::VAppCloneSpec => Some(from.as_any_ref().downcast_ref::<VAppCloneSpec>()?),
StructType::VAppCloneSpecNetworkMappingPair => Some(from.as_any_ref().downcast_ref::<VAppCloneSpecNetworkMappingPair>()?),
StructType::VAppCloneSpecResourceMap => Some(from.as_any_ref().downcast_ref::<VAppCloneSpecResourceMap>()?),
StructType::VAppEntityConfigInfo => Some(from.as_any_ref().downcast_ref::<VAppEntityConfigInfo>()?),
StructType::VAppIpAssignmentInfo => Some(from.as_any_ref().downcast_ref::<VAppIpAssignmentInfo>()?),
StructType::IpPool => Some(from.as_any_ref().downcast_ref::<IpPool>()?),
StructType::IpPoolAssociation => Some(from.as_any_ref().downcast_ref::<IpPoolAssociation>()?),
StructType::IpPoolIpPoolConfigInfo => Some(from.as_any_ref().downcast_ref::<IpPoolIpPoolConfigInfo>()?),
StructType::VAppOvfSectionInfo => Some(from.as_any_ref().downcast_ref::<VAppOvfSectionInfo>()?),
StructType::VAppProductInfo => Some(from.as_any_ref().downcast_ref::<VAppProductInfo>()?),
StructType::VAppPropertyInfo => Some(from.as_any_ref().downcast_ref::<VAppPropertyInfo>()?),
StructType::VmConfigInfo => Some(from.as_any_ref().downcast_ref::<VmConfigInfo>()?),
StructType::VAppConfigInfo => Some(from.as_any_ref().downcast_ref::<VAppConfigInfo>()?),
StructType::VmConfigSpec => Some(from.as_any_ref().downcast_ref::<VmConfigSpec>()?),
StructType::VAppConfigSpec => Some(from.as_any_ref().downcast_ref::<VAppConfigSpec>()?),
StructType::ClusterNetworkConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterNetworkConfigSpec>()?),
StructType::FailoverNodeInfo => Some(from.as_any_ref().downcast_ref::<FailoverNodeInfo>()?),
StructType::NodeDeploymentSpec => Some(from.as_any_ref().downcast_ref::<NodeDeploymentSpec>()?),
StructType::PassiveNodeDeploymentSpec => Some(from.as_any_ref().downcast_ref::<PassiveNodeDeploymentSpec>()?),
StructType::NodeNetworkSpec => Some(from.as_any_ref().downcast_ref::<NodeNetworkSpec>()?),
StructType::PassiveNodeNetworkSpec => Some(from.as_any_ref().downcast_ref::<PassiveNodeNetworkSpec>()?),
StructType::SourceNodeSpec => Some(from.as_any_ref().downcast_ref::<SourceNodeSpec>()?),
StructType::VchaClusterConfigInfo => Some(from.as_any_ref().downcast_ref::<VchaClusterConfigInfo>()?),
StructType::VchaClusterConfigSpec => Some(from.as_any_ref().downcast_ref::<VchaClusterConfigSpec>()?),
StructType::VchaClusterDeploymentSpec => Some(from.as_any_ref().downcast_ref::<VchaClusterDeploymentSpec>()?),
StructType::VchaClusterNetworkSpec => Some(from.as_any_ref().downcast_ref::<VchaClusterNetworkSpec>()?),
StructType::WitnessNodeInfo => Some(from.as_any_ref().downcast_ref::<WitnessNodeInfo>()?),
StructType::VchaClusterHealth => Some(from.as_any_ref().downcast_ref::<VchaClusterHealth>()?),
StructType::VchaClusterRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VchaClusterRuntimeInfo>()?),
StructType::VchaNodeRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VchaNodeRuntimeInfo>()?),
StructType::VirtualMachineAffinityInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineAffinityInfo>()?),
StructType::VirtualMachineBaseIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineBaseIndependentFilterSpec>()?),
StructType::VirtualMachineEmptyIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineEmptyIndependentFilterSpec>()?),
StructType::VirtualMachineIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineIndependentFilterSpec>()?),
StructType::VirtualMachineBootOptions => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptions>()?),
StructType::VirtualMachineBootOptionsBootableDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableDevice>()?),
StructType::VirtualMachineBootOptionsBootableCdromDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableCdromDevice>()?),
StructType::VirtualMachineBootOptionsBootableDiskDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableDiskDevice>()?),
StructType::VirtualMachineBootOptionsBootableEthernetDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableEthernetDevice>()?),
StructType::VirtualMachineBootOptionsBootableFloppyDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableFloppyDevice>()?),
StructType::VirtualMachineCapability => Some(from.as_any_ref().downcast_ref::<VirtualMachineCapability>()?),
StructType::VirtualMachineCertThumbprint => Some(from.as_any_ref().downcast_ref::<VirtualMachineCertThumbprint>()?),
StructType::VirtualMachineCloneSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineCloneSpec>()?),
StructType::VirtualMachineConfigInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigInfo>()?),
StructType::VirtualMachineConfigInfoDatastoreUrlPair => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigInfoDatastoreUrlPair>()?),
StructType::VirtualMachineConfigInfoOverheadInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigInfoOverheadInfo>()?),
StructType::VirtualMachineConfigOption => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigOption>()?),
StructType::VirtualMachineConfigOptionDescriptor => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigOptionDescriptor>()?),
StructType::VirtualMachineConfigSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigSpec>()?),
StructType::ConfigTarget => Some(from.as_any_ref().downcast_ref::<ConfigTarget>()?),
StructType::VirtualMachineConsolePreferences => Some(from.as_any_ref().downcast_ref::<VirtualMachineConsolePreferences>()?),
StructType::VirtualMachineContentLibraryItemInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineContentLibraryItemInfo>()?),
StructType::DatastoreOption => Some(from.as_any_ref().downcast_ref::<DatastoreOption>()?),
StructType::VirtualMachineDatastoreVolumeOption => Some(from.as_any_ref().downcast_ref::<VirtualMachineDatastoreVolumeOption>()?),
StructType::VirtualMachineDefaultPowerOpInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDefaultPowerOpInfo>()?),
StructType::VirtualMachineDeviceRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDeviceRuntimeInfo>()?),
StructType::VirtualMachineDeviceRuntimeInfoDeviceRuntimeState => Some(from.as_any_ref().downcast_ref::<VirtualMachineDeviceRuntimeInfoDeviceRuntimeState>()?),
StructType::VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState => Some(from.as_any_ref().downcast_ref::<VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState>()?),
StructType::VirtualMachineDvxClassInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDvxClassInfo>()?),
StructType::FaultToleranceConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultToleranceConfigInfo>()?),
StructType::FaultTolerancePrimaryConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultTolerancePrimaryConfigInfo>()?),
StructType::FaultToleranceSecondaryConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultToleranceSecondaryConfigInfo>()?),
StructType::FaultToleranceConfigSpec => Some(from.as_any_ref().downcast_ref::<FaultToleranceConfigSpec>()?),
StructType::FaultToleranceMetaSpec => Some(from.as_any_ref().downcast_ref::<FaultToleranceMetaSpec>()?),
StructType::FaultToleranceSecondaryOpResult => Some(from.as_any_ref().downcast_ref::<FaultToleranceSecondaryOpResult>()?),
StructType::FaultToleranceVmConfigSpec => Some(from.as_any_ref().downcast_ref::<FaultToleranceVmConfigSpec>()?),
StructType::FaultToleranceDiskSpec => Some(from.as_any_ref().downcast_ref::<FaultToleranceDiskSpec>()?),
StructType::VirtualMachineFeatureRequirement => Some(from.as_any_ref().downcast_ref::<VirtualMachineFeatureRequirement>()?),
StructType::VirtualMachineFileInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileInfo>()?),
StructType::VirtualMachineFileLayout => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayout>()?),
StructType::VirtualMachineFileLayoutDiskLayout => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutDiskLayout>()?),
StructType::VirtualMachineFileLayoutSnapshotLayout => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutSnapshotLayout>()?),
StructType::VirtualMachineFileLayoutEx => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutEx>()?),
StructType::VirtualMachineFileLayoutExDiskLayout => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutExDiskLayout>()?),
StructType::VirtualMachineFileLayoutExDiskUnit => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutExDiskUnit>()?),
StructType::VirtualMachineFileLayoutExFileInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutExFileInfo>()?),
StructType::VirtualMachineFileLayoutExSnapshotLayout => Some(from.as_any_ref().downcast_ref::<VirtualMachineFileLayoutExSnapshotLayout>()?),
StructType::VirtualMachineFlagInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineFlagInfo>()?),
StructType::VirtualMachineForkConfigInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineForkConfigInfo>()?),
StructType::GuestInfo => Some(from.as_any_ref().downcast_ref::<GuestInfo>()?),
StructType::GuestInfoCustomizationInfo => Some(from.as_any_ref().downcast_ref::<GuestInfoCustomizationInfo>()?),
StructType::GuestDiskInfo => Some(from.as_any_ref().downcast_ref::<GuestDiskInfo>()?),
StructType::GuestInfoNamespaceGenerationInfo => Some(from.as_any_ref().downcast_ref::<GuestInfoNamespaceGenerationInfo>()?),
StructType::GuestNicInfo => Some(from.as_any_ref().downcast_ref::<GuestNicInfo>()?),
StructType::GuestScreenInfo => Some(from.as_any_ref().downcast_ref::<GuestScreenInfo>()?),
StructType::GuestStackInfo => Some(from.as_any_ref().downcast_ref::<GuestStackInfo>()?),
StructType::GuestInfoVirtualDiskMapping => Some(from.as_any_ref().downcast_ref::<GuestInfoVirtualDiskMapping>()?),
StructType::VirtualMachineGuestIntegrityInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineGuestIntegrityInfo>()?),
StructType::VirtualMachineGuestMonitoringModeInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineGuestMonitoringModeInfo>()?),
StructType::GuestOsDescriptor => Some(from.as_any_ref().downcast_ref::<GuestOsDescriptor>()?),
StructType::VirtualMachineGuestQuiesceSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineGuestQuiesceSpec>()?),
StructType::VirtualMachineWindowsQuiesceSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineWindowsQuiesceSpec>()?),
StructType::VirtualMachineIdeDiskDevicePartitionInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineIdeDiskDevicePartitionInfo>()?),
StructType::VirtualMachineInstantCloneSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineInstantCloneSpec>()?),
StructType::VirtualMachineLegacyNetworkSwitchInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineLegacyNetworkSwitchInfo>()?),
StructType::VirtualMachineMessage => Some(from.as_any_ref().downcast_ref::<VirtualMachineMessage>()?),
StructType::VirtualMachineMetadataManagerVmMetadata => Some(from.as_any_ref().downcast_ref::<VirtualMachineMetadataManagerVmMetadata>()?),
StructType::VirtualMachineMetadataManagerVmMetadataInput => Some(from.as_any_ref().downcast_ref::<VirtualMachineMetadataManagerVmMetadataInput>()?),
StructType::VirtualMachineMetadataManagerVmMetadataOwner => Some(from.as_any_ref().downcast_ref::<VirtualMachineMetadataManagerVmMetadataOwner>()?),
StructType::VirtualMachineMetadataManagerVmMetadataResult => Some(from.as_any_ref().downcast_ref::<VirtualMachineMetadataManagerVmMetadataResult>()?),
StructType::VirtualMachineNetworkShaperInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineNetworkShaperInfo>()?),
StructType::VirtualMachineProfileDetails => Some(from.as_any_ref().downcast_ref::<VirtualMachineProfileDetails>()?),
StructType::VirtualMachineProfileDetailsDiskProfileDetails => Some(from.as_any_ref().downcast_ref::<VirtualMachineProfileDetailsDiskProfileDetails>()?),
StructType::VirtualMachineProfileRawData => Some(from.as_any_ref().downcast_ref::<VirtualMachineProfileRawData>()?),
StructType::VirtualMachineProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineProfileSpec>()?),
StructType::VirtualMachineDefaultProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineDefaultProfileSpec>()?),
StructType::VirtualMachineDefinedProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineDefinedProfileSpec>()?),
StructType::VirtualMachineEmptyProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineEmptyProfileSpec>()?),
StructType::VirtualMachinePropertyRelation => Some(from.as_any_ref().downcast_ref::<VirtualMachinePropertyRelation>()?),
StructType::VirtualMachineQuestionInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineQuestionInfo>()?),
StructType::VirtualMachineRelocateSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineRelocateSpec>()?),
StructType::VirtualMachineRelocateSpecDiskLocator => Some(from.as_any_ref().downcast_ref::<VirtualMachineRelocateSpecDiskLocator>()?),
StructType::VirtualMachineRelocateSpecDiskLocatorBackingSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineRelocateSpecDiskLocatorBackingSpec>()?),
StructType::ReplicationConfigSpec => Some(from.as_any_ref().downcast_ref::<ReplicationConfigSpec>()?),
StructType::ReplicationInfoDiskSettings => Some(from.as_any_ref().downcast_ref::<ReplicationInfoDiskSettings>()?),
StructType::VirtualMachineRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineRuntimeInfo>()?),
StructType::VirtualMachineRuntimeInfoDasProtectionState => Some(from.as_any_ref().downcast_ref::<VirtualMachineRuntimeInfoDasProtectionState>()?),
StructType::ScheduledHardwareUpgradeInfo => Some(from.as_any_ref().downcast_ref::<ScheduledHardwareUpgradeInfo>()?),
StructType::VirtualMachineSgxInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSgxInfo>()?),
StructType::VirtualMachineSnapshotInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSnapshotInfo>()?),
StructType::SnapshotSelectionSpec => Some(from.as_any_ref().downcast_ref::<SnapshotSelectionSpec>()?),
StructType::VirtualMachineSnapshotTree => Some(from.as_any_ref().downcast_ref::<VirtualMachineSnapshotTree>()?),
StructType::VirtualMachineSriovDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovDevicePoolInfo>()?),
StructType::VirtualMachineSriovNetworkDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovNetworkDevicePoolInfo>()?),
StructType::VirtualMachineStorageInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineStorageInfo>()?),
StructType::VirtualMachineUsageOnDatastore => Some(from.as_any_ref().downcast_ref::<VirtualMachineUsageOnDatastore>()?),
StructType::SubnetInfoFolderInfo => Some(from.as_any_ref().downcast_ref::<SubnetInfoFolderInfo>()?),
StructType::VirtualMachineSummary => Some(from.as_any_ref().downcast_ref::<VirtualMachineSummary>()?),
StructType::VirtualMachineConfigSummary => Some(from.as_any_ref().downcast_ref::<VirtualMachineConfigSummary>()?),
StructType::VirtualMachineGuestSummary => Some(from.as_any_ref().downcast_ref::<VirtualMachineGuestSummary>()?),
StructType::VirtualMachineQuickStats => Some(from.as_any_ref().downcast_ref::<VirtualMachineQuickStats>()?),
StructType::VirtualMachineQuickStatsMemoryTierStats => Some(from.as_any_ref().downcast_ref::<VirtualMachineQuickStatsMemoryTierStats>()?),
StructType::VirtualMachineStorageSummary => Some(from.as_any_ref().downcast_ref::<VirtualMachineStorageSummary>()?),
StructType::VirtualMachineTargetInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineTargetInfo>()?),
StructType::VirtualMachineCdromInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineCdromInfo>()?),
StructType::VirtualMachineDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDatastoreInfo>()?),
StructType::VirtualMachineDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineScsiDiskDeviceInfo>()?),
StructType::VirtualMachineDynamicPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDynamicPassthroughInfo>()?),
StructType::VirtualMachineFloppyInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineFloppyInfo>()?),
StructType::VirtualMachineNetworkInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineNetworkInfo>()?),
StructType::OpaqueNetworkTargetInfo => Some(from.as_any_ref().downcast_ref::<OpaqueNetworkTargetInfo>()?),
StructType::VirtualMachineParallelInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineParallelInfo>()?),
StructType::VirtualMachinePciPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovInfo>()?),
StructType::VirtualMachinePciSharedGpuPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePciSharedGpuPassthroughInfo>()?),
StructType::VirtualMachinePrecisionClockInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePrecisionClockInfo>()?),
StructType::VirtualMachineScsiPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineScsiPassthroughInfo>()?),
StructType::VirtualMachineSerialInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSerialInfo>()?),
StructType::VirtualMachineSgxTargetInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSgxTargetInfo>()?),
StructType::VirtualMachineSoundInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSoundInfo>()?),
StructType::SubnetInfo => Some(from.as_any_ref().downcast_ref::<SubnetInfo>()?),
StructType::VirtualMachineUsbInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineUsbInfo>()?),
StructType::VirtualMachineVFlashModuleInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVFlashModuleInfo>()?),
StructType::VirtualMachineVMotionStunTimeInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVMotionStunTimeInfo>()?),
StructType::VirtualMachineVendorDeviceGroupInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVendorDeviceGroupInfo>()?),
StructType::VirtualMachineVgpuDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVgpuDeviceInfo>()?),
StructType::VirtualMachineVgpuProfileInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVgpuProfileInfo>()?),
StructType::ToolsConfigInfo => Some(from.as_any_ref().downcast_ref::<ToolsConfigInfo>()?),
StructType::ToolsConfigInfoToolsLastInstallInfo => Some(from.as_any_ref().downcast_ref::<ToolsConfigInfoToolsLastInstallInfo>()?),
StructType::UsbScanCodeSpec => Some(from.as_any_ref().downcast_ref::<UsbScanCodeSpec>()?),
StructType::UsbScanCodeSpecKeyEvent => Some(from.as_any_ref().downcast_ref::<UsbScanCodeSpecKeyEvent>()?),
StructType::UsbScanCodeSpecModifierType => Some(from.as_any_ref().downcast_ref::<UsbScanCodeSpecModifierType>()?),
StructType::VirtualMachineVcpuConfig => Some(from.as_any_ref().downcast_ref::<VirtualMachineVcpuConfig>()?),
StructType::VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo>()?),
StructType::VirtualMachineVirtualDeviceGroups => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceGroups>()?),
StructType::VirtualMachineVirtualDeviceGroupsDeviceGroup => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceGroupsDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceGroupsVendorDeviceGroup => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceGroupsVendorDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceSwap => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceSwap>()?),
StructType::VirtualMachineVirtualDeviceSwapDeviceSwapInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceSwapDeviceSwapInfo>()?),
StructType::VirtualHardware => Some(from.as_any_ref().downcast_ref::<VirtualHardware>()?),
StructType::VirtualHardwareOption => Some(from.as_any_ref().downcast_ref::<VirtualHardwareOption>()?),
StructType::VirtualMachineVirtualNuma => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualNuma>()?),
StructType::VirtualMachineVirtualNumaInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualNumaInfo>()?),
StructType::VirtualMachineVirtualPMem => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualPMem>()?),
StructType::CheckResult => Some(from.as_any_ref().downcast_ref::<CheckResult>()?),
StructType::CustomizationAdapterMapping => Some(from.as_any_ref().downcast_ref::<CustomizationAdapterMapping>()?),
StructType::CustomizationGlobalIpSettings => Some(from.as_any_ref().downcast_ref::<CustomizationGlobalIpSettings>()?),
StructType::CustomizationGuiRunOnce => Some(from.as_any_ref().downcast_ref::<CustomizationGuiRunOnce>()?),
StructType::CustomizationGuiUnattended => Some(from.as_any_ref().downcast_ref::<CustomizationGuiUnattended>()?),
StructType::CustomizationIpSettings => Some(from.as_any_ref().downcast_ref::<CustomizationIpSettings>()?),
StructType::CustomizationIpSettingsIpV6AddressSpec => Some(from.as_any_ref().downcast_ref::<CustomizationIpSettingsIpV6AddressSpec>()?),
StructType::CustomizationIdentification => Some(from.as_any_ref().downcast_ref::<CustomizationIdentification>()?),
StructType::CustomizationIdentitySettings => Some(from.as_any_ref().downcast_ref::<CustomizationIdentitySettings>()?),
StructType::CustomizationCloudinitPrep => Some(from.as_any_ref().downcast_ref::<CustomizationCloudinitPrep>()?),
StructType::CustomizationLinuxPrep => Some(from.as_any_ref().downcast_ref::<CustomizationLinuxPrep>()?),
StructType::CustomizationSysprep => Some(from.as_any_ref().downcast_ref::<CustomizationSysprep>()?),
StructType::CustomizationSysprepText => Some(from.as_any_ref().downcast_ref::<CustomizationSysprepText>()?),
StructType::CustomizationIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationIpGenerator>()?),
StructType::CustomizationCustomIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationCustomIpGenerator>()?),
StructType::CustomizationDhcpIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationDhcpIpGenerator>()?),
StructType::CustomizationFixedIp => Some(from.as_any_ref().downcast_ref::<CustomizationFixedIp>()?),
StructType::CustomizationUnknownIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownIpGenerator>()?),
StructType::CustomizationIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationIpV6Generator>()?),
StructType::CustomizationAutoIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationAutoIpV6Generator>()?),
StructType::CustomizationCustomIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationCustomIpV6Generator>()?),
StructType::CustomizationDhcpIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationDhcpIpV6Generator>()?),
StructType::CustomizationFixedIpV6 => Some(from.as_any_ref().downcast_ref::<CustomizationFixedIpV6>()?),
StructType::CustomizationStatelessIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationStatelessIpV6Generator>()?),
StructType::CustomizationUnknownIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownIpV6Generator>()?),
StructType::CustomizationLicenseFilePrintData => Some(from.as_any_ref().downcast_ref::<CustomizationLicenseFilePrintData>()?),
StructType::CustomizationName => Some(from.as_any_ref().downcast_ref::<CustomizationName>()?),
StructType::CustomizationCustomName => Some(from.as_any_ref().downcast_ref::<CustomizationCustomName>()?),
StructType::CustomizationFixedName => Some(from.as_any_ref().downcast_ref::<CustomizationFixedName>()?),
StructType::CustomizationPrefixName => Some(from.as_any_ref().downcast_ref::<CustomizationPrefixName>()?),
StructType::CustomizationUnknownName => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownName>()?),
StructType::CustomizationVirtualMachineName => Some(from.as_any_ref().downcast_ref::<CustomizationVirtualMachineName>()?),
StructType::CustomizationOptions => Some(from.as_any_ref().downcast_ref::<CustomizationOptions>()?),
StructType::CustomizationLinuxOptions => Some(from.as_any_ref().downcast_ref::<CustomizationLinuxOptions>()?),
StructType::CustomizationWinOptions => Some(from.as_any_ref().downcast_ref::<CustomizationWinOptions>()?),
StructType::CustomizationPassword => Some(from.as_any_ref().downcast_ref::<CustomizationPassword>()?),
StructType::CustomizationSpec => Some(from.as_any_ref().downcast_ref::<CustomizationSpec>()?),
StructType::CustomizationUserData => Some(from.as_any_ref().downcast_ref::<CustomizationUserData>()?),
StructType::HostDiskMappingInfo => Some(from.as_any_ref().downcast_ref::<HostDiskMappingInfo>()?),
StructType::HostDiskMappingPartitionInfo => Some(from.as_any_ref().downcast_ref::<HostDiskMappingPartitionInfo>()?),
StructType::HostDiskMappingOption => Some(from.as_any_ref().downcast_ref::<HostDiskMappingOption>()?),
StructType::HostDiskMappingPartitionOption => Some(from.as_any_ref().downcast_ref::<HostDiskMappingPartitionOption>()?),
StructType::VirtualDevice => Some(from.as_any_ref().downcast_ref::<VirtualDevice>()?),
StructType::VirtualCdrom => Some(from.as_any_ref().downcast_ref::<VirtualCdrom>()?),
StructType::VirtualController => Some(from.as_any_ref().downcast_ref::<VirtualController>()?),
StructType::VirtualIdeController => Some(from.as_any_ref().downcast_ref::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Some(from.as_any_ref().downcast_ref::<VirtualNvmeController>()?),
StructType::VirtualPciController => Some(from.as_any_ref().downcast_ref::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Some(from.as_any_ref().downcast_ref::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Some(from.as_any_ref().downcast_ref::<VirtualSataController>()?),
StructType::VirtualAhciController => Some(from.as_any_ref().downcast_ref::<VirtualAhciController>()?),
StructType::VirtualScsiController => Some(from.as_any_ref().downcast_ref::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Some(from.as_any_ref().downcast_ref::<VirtualSioController>()?),
StructType::VirtualUsbController => Some(from.as_any_ref().downcast_ref::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciController>()?),
StructType::VirtualDisk => Some(from.as_any_ref().downcast_ref::<VirtualDisk>()?),
StructType::VirtualEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Some(from.as_any_ref().downcast_ref::<VirtualE1000>()?),
StructType::VirtualE1000E => Some(from.as_any_ref().downcast_ref::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Vrdma>()?),
StructType::VirtualFloppy => Some(from.as_any_ref().downcast_ref::<VirtualFloppy>()?),
StructType::VirtualKeyboard => Some(from.as_any_ref().downcast_ref::<VirtualKeyboard>()?),
StructType::VirtualNvdimm => Some(from.as_any_ref().downcast_ref::<VirtualNvdimm>()?),
StructType::VirtualPciPassthrough => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthrough>()?),
StructType::VirtualParallelPort => Some(from.as_any_ref().downcast_ref::<VirtualParallelPort>()?),
StructType::VirtualPointingDevice => Some(from.as_any_ref().downcast_ref::<VirtualPointingDevice>()?),
StructType::VirtualPrecisionClock => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClock>()?),
StructType::VirtualScsiPassthrough => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthrough>()?),
StructType::VirtualSerialPort => Some(from.as_any_ref().downcast_ref::<VirtualSerialPort>()?),
StructType::VirtualSoundCard => Some(from.as_any_ref().downcast_ref::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16>()?),
StructType::VirtualTpm => Some(from.as_any_ref().downcast_ref::<VirtualTpm>()?),
StructType::VirtualUsb => Some(from.as_any_ref().downcast_ref::<VirtualUsb>()?),
StructType::VirtualMachineVmciDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDevice>()?),
StructType::VirtualMachineVmirom => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmirom>()?),
StructType::VirtualMachineVideoCard => Some(from.as_any_ref().downcast_ref::<VirtualMachineVideoCard>()?),
StructType::VirtualWdt => Some(from.as_any_ref().downcast_ref::<VirtualWdt>()?),
StructType::VirtualDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBackingInfo>()?),
StructType::VirtualDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingInfo>()?),
StructType::VirtualDeviceFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingInfo>()?),
StructType::VirtualDevicePipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingInfo>()?),
StructType::VirtualDeviceRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingInfo>()?),
StructType::VirtualDeviceUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingInfo>()?),
StructType::VirtualEthernetCardDistributedVirtualPortBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardDistributedVirtualPortBackingInfo>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOpaqueNetworkBackingInfo>()?),
StructType::VirtualPciPassthroughDvxBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDvxBackingInfo>()?),
StructType::VirtualPciPassthroughPluginBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingInfo>()?),
StructType::VirtualPrecisionClockSystemClockBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockSystemClockBackingInfo>()?),
StructType::VirtualSerialPortThinPrintBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortThinPrintBackingInfo>()?),
StructType::VirtualSriovEthernetCardSriovBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardSriovBackingInfo>()?),
StructType::VirtualDeviceBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBusSlotInfo>()?),
StructType::VirtualDevicePciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerPciBusSlotInfo>()?),
StructType::VirtualDeviceConnectInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceConnectInfo>()?),
StructType::VirtualDeviceDeviceGroupInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceGroupInfo>()?),
StructType::VirtualDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceOption>()?),
StructType::VirtualCdromOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromOption>()?),
StructType::VirtualControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciControllerOption>()?),
StructType::VirtualDiskOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskOption>()?),
StructType::VirtualEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Some(from.as_any_ref().downcast_ref::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Some(from.as_any_ref().downcast_ref::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3VrdmaOption>()?),
StructType::VirtualFloppyOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyOption>()?),
StructType::VirtualKeyboardOption => Some(from.as_any_ref().downcast_ref::<VirtualKeyboardOption>()?),
StructType::VirtualNvdimmOption => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmOption>()?),
StructType::VirtualPciPassthroughOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughOption>()?),
StructType::VirtualParallelPortOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortOption>()?),
StructType::VirtualPointingDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceOption>()?),
StructType::VirtualPrecisionClockOption => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockOption>()?),
StructType::VirtualScsiPassthroughOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughOption>()?),
StructType::VirtualSerialPortOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortOption>()?),
StructType::VirtualSoundCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16Option>()?),
StructType::VirtualTpmOption => Some(from.as_any_ref().downcast_ref::<VirtualTpmOption>()?),
StructType::VirtualUsbOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbOption>()?),
StructType::VirtualMachineVmciDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDeviceOption>()?),
StructType::VirtualVmiromOption => Some(from.as_any_ref().downcast_ref::<VirtualVmiromOption>()?),
StructType::VirtualVideoCardOption => Some(from.as_any_ref().downcast_ref::<VirtualVideoCardOption>()?),
StructType::VirtualWdtOption => Some(from.as_any_ref().downcast_ref::<VirtualWdtOption>()?),
StructType::VirtualDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBackingOption>()?),
StructType::VirtualDeviceDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingOption>()?),
StructType::VirtualDeviceFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingOption>()?),
StructType::VirtualDevicePipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingOption>()?),
StructType::VirtualDeviceRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingOption>()?),
StructType::VirtualDeviceUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingOption>()?),
StructType::VirtualEthernetCardDvPortBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardDvPortBackingOption>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOpaqueNetworkBackingOption>()?),
StructType::VirtualPciPassthroughDvxBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDvxBackingOption>()?),
StructType::VirtualPciPassthroughPluginBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingOption>()?),
StructType::VirtualPrecisionClockSystemClockBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockSystemClockBackingOption>()?),
StructType::VirtualSerialPortThinPrintBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortThinPrintBackingOption>()?),
StructType::VirtualSriovEthernetCardSriovBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardSriovBackingOption>()?),
StructType::VirtualDeviceBusSlotOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBusSlotOption>()?),
StructType::VirtualDeviceConnectOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceConnectOption>()?),
StructType::VirtualDeviceConfigSpec => Some(from.as_any_ref().downcast_ref::<VirtualDeviceConfigSpec>()?),
StructType::VirtualDiskConfigSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskConfigSpec>()?),
StructType::VirtualDeviceConfigSpecBackingSpec => Some(from.as_any_ref().downcast_ref::<VirtualDeviceConfigSpecBackingSpec>()?),
StructType::VirtualDiskVFlashCacheConfigInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskVFlashCacheConfigInfo>()?),
StructType::VirtualDiskId => Some(from.as_any_ref().downcast_ref::<VirtualDiskId>()?),
StructType::VirtualDiskDeltaDiskFormatsSupported => Some(from.as_any_ref().downcast_ref::<VirtualDiskDeltaDiskFormatsSupported>()?),
StructType::VirtualDiskOptionVFlashCacheConfigOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskOptionVFlashCacheConfigOption>()?),
StructType::VirtualEthernetCardResourceAllocation => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardResourceAllocation>()?),
StructType::VirtualPciPassthroughAllowedDevice => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughAllowedDevice>()?),
StructType::VirtualMachineVmciDeviceFilterInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDeviceFilterInfo>()?),
StructType::VirtualMachineVmciDeviceFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDeviceFilterSpec>()?),
StructType::VirtualMachineVmciDeviceOptionFilterSpecOption => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDeviceOptionFilterSpecOption>()?),
StructType::VirtualVmxnet3StrictLatencyConfig => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3StrictLatencyConfig>()?),
StructType::VirtualVmxnet3OptionStrictLatencyConfigOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3OptionStrictLatencyConfigOption>()?),
StructType::GuestAliases => Some(from.as_any_ref().downcast_ref::<GuestAliases>()?),
StructType::GuestAuthAliasInfo => Some(from.as_any_ref().downcast_ref::<GuestAuthAliasInfo>()?),
StructType::GuestAuthSubject => Some(from.as_any_ref().downcast_ref::<GuestAuthSubject>()?),
StructType::GuestAuthAnySubject => Some(from.as_any_ref().downcast_ref::<GuestAuthAnySubject>()?),
StructType::GuestAuthNamedSubject => Some(from.as_any_ref().downcast_ref::<GuestAuthNamedSubject>()?),
StructType::GuestMappedAliases => Some(from.as_any_ref().downcast_ref::<GuestMappedAliases>()?),
StructType::GuestFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestFileAttributes>()?),
StructType::GuestPosixFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestPosixFileAttributes>()?),
StructType::GuestWindowsFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestWindowsFileAttributes>()?),
StructType::GuestFileInfo => Some(from.as_any_ref().downcast_ref::<GuestFileInfo>()?),
StructType::FileTransferInformation => Some(from.as_any_ref().downcast_ref::<FileTransferInformation>()?),
StructType::GuestListFileInfo => Some(from.as_any_ref().downcast_ref::<GuestListFileInfo>()?),
StructType::GuestAuthentication => Some(from.as_any_ref().downcast_ref::<GuestAuthentication>()?),
StructType::NamePasswordAuthentication => Some(from.as_any_ref().downcast_ref::<NamePasswordAuthentication>()?),
StructType::SamlTokenAuthentication => Some(from.as_any_ref().downcast_ref::<SamlTokenAuthentication>()?),
StructType::SspiAuthentication => Some(from.as_any_ref().downcast_ref::<SspiAuthentication>()?),
StructType::TicketedSessionAuthentication => Some(from.as_any_ref().downcast_ref::<TicketedSessionAuthentication>()?),
StructType::GuestProcessInfo => Some(from.as_any_ref().downcast_ref::<GuestProcessInfo>()?),
StructType::GuestProgramSpec => Some(from.as_any_ref().downcast_ref::<GuestProgramSpec>()?),
StructType::GuestWindowsProgramSpec => Some(from.as_any_ref().downcast_ref::<GuestWindowsProgramSpec>()?),
StructType::GuestRegKeySpec => Some(from.as_any_ref().downcast_ref::<GuestRegKeySpec>()?),
StructType::GuestRegKeyNameSpec => Some(from.as_any_ref().downcast_ref::<GuestRegKeyNameSpec>()?),
StructType::GuestRegKeyRecordSpec => Some(from.as_any_ref().downcast_ref::<GuestRegKeyRecordSpec>()?),
StructType::GuestRegValueSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueSpec>()?),
StructType::GuestRegValueDataSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueDataSpec>()?),
StructType::GuestRegValueBinarySpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueBinarySpec>()?),
StructType::GuestRegValueDwordSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueDwordSpec>()?),
StructType::GuestRegValueExpandStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueExpandStringSpec>()?),
StructType::GuestRegValueMultiStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueMultiStringSpec>()?),
StructType::GuestRegValueQwordSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueQwordSpec>()?),
StructType::GuestRegValueStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueStringSpec>()?),
StructType::GuestRegValueNameSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueNameSpec>()?),
StructType::DeviceGroupId => Some(from.as_any_ref().downcast_ref::<DeviceGroupId>()?),
StructType::FaultDomainId => Some(from.as_any_ref().downcast_ref::<FaultDomainId>()?),
StructType::FaultDomainInfo => Some(from.as_any_ref().downcast_ref::<FaultDomainInfo>()?),
StructType::ReplicationGroupId => Some(from.as_any_ref().downcast_ref::<ReplicationGroupId>()?),
StructType::ReplicationSpec => Some(from.as_any_ref().downcast_ref::<ReplicationSpec>()?),
StructType::VsanCapacityReservationInfo => Some(from.as_any_ref().downcast_ref::<VsanCapacityReservationInfo>()?),
StructType::ClusterRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ClusterRuntimeInfo>()?),
StructType::VsanCompatibilityCheckResult => Some(from.as_any_ref().downcast_ref::<VsanCompatibilityCheckResult>()?),
StructType::VimVsanDataEfficiencyCapacityState => Some(from.as_any_ref().downcast_ref::<VimVsanDataEfficiencyCapacityState>()?),
StructType::VsanDataEfficiencyConfig => Some(from.as_any_ref().downcast_ref::<VsanDataEfficiencyConfig>()?),
StructType::VsanDataEfficiencyConfigEx => Some(from.as_any_ref().downcast_ref::<VsanDataEfficiencyConfigEx>()?),
StructType::VsanDataEncryptionConfig => Some(from.as_any_ref().downcast_ref::<VsanDataEncryptionConfig>()?),
StructType::VsanDataInTransitEncryptionConfig => Some(from.as_any_ref().downcast_ref::<VsanDataInTransitEncryptionConfig>()?),
StructType::VsanDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanDatastoreConfig>()?),
StructType::VsanAdvancedDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanAdvancedDatastoreConfig>()?),
StructType::VsanDatastoreSpec => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSpec>()?),
StructType::VsanClientDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanClientDatastoreConfig>()?),
StructType::VsanXvcClientConfig => Some(from.as_any_ref().downcast_ref::<VsanXvcClientConfig>()?),
StructType::DefaultDatastorePolicySelectionInfo => Some(from.as_any_ref().downcast_ref::<DefaultDatastorePolicySelectionInfo>()?),
StructType::VsanDirectoryServerConfig => Some(from.as_any_ref().downcast_ref::<VsanDirectoryServerConfig>()?),
StructType::ActiveVsanDirectoryServerConfig => Some(from.as_any_ref().downcast_ref::<ActiveVsanDirectoryServerConfig>()?),
StructType::DiskClaimConfiguration => Some(from.as_any_ref().downcast_ref::<DiskClaimConfiguration>()?),
StructType::VsanEntityCompatibilityResult => Some(from.as_any_ref().downcast_ref::<VsanEntityCompatibilityResult>()?),
StructType::EntityResourceCheckDetails => Some(from.as_any_ref().downcast_ref::<EntityResourceCheckDetails>()?),
StructType::VsanDiskGroupResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskGroupResourceCheckResult>()?),
StructType::VsanDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolDiskResourceCheckResult>()?),
StructType::VsanFaultDomainResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainResourceCheckResult>()?),
StructType::VsanHostResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanHostResourceCheckResult>()?),
StructType::VsanResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckVsanResult>()?),
StructType::VsanStoragePoolResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolResourceCheckResult>()?),
StructType::VsanFileServiceConfig => Some(from.as_any_ref().downcast_ref::<VsanFileServiceConfig>()?),
StructType::VsanFileServiceDomain => Some(from.as_any_ref().downcast_ref::<VsanFileServiceDomain>()?),
StructType::VsanFileServiceDomainConfig => Some(from.as_any_ref().downcast_ref::<VsanFileServiceDomainConfig>()?),
StructType::VsanFileServiceDomainQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanFileServiceDomainQuerySpec>()?),
StructType::VsanFileShare => Some(from.as_any_ref().downcast_ref::<VsanFileShare>()?),
StructType::VsanFileShareConfig => Some(from.as_any_ref().downcast_ref::<VsanFileShareConfig>()?),
StructType::VsanFileShareNetPermission => Some(from.as_any_ref().downcast_ref::<VsanFileShareNetPermission>()?),
StructType::VsanFileShareQueryProperties => Some(from.as_any_ref().downcast_ref::<VsanFileShareQueryProperties>()?),
StructType::FileShareQueryResult => Some(from.as_any_ref().downcast_ref::<FileShareQueryResult>()?),
StructType::VsanFileShareQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanFileShareQuerySpec>()?),
StructType::VsanFileShareRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VsanFileShareRuntimeInfo>()?),
StructType::VsanFileShareSmbOptions => Some(from.as_any_ref().downcast_ref::<VsanFileShareSmbOptions>()?),
StructType::VsanFileShareSnapshot => Some(from.as_any_ref().downcast_ref::<VsanFileShareSnapshot>()?),
StructType::VsanFileShareSnapshotConfig => Some(from.as_any_ref().downcast_ref::<VsanFileShareSnapshotConfig>()?),
StructType::VsanFileShareSnapshotQueryResult => Some(from.as_any_ref().downcast_ref::<VsanFileShareSnapshotQueryResult>()?),
StructType::VsanFileShareSnapshotQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanFileShareSnapshotQuerySpec>()?),
StructType::VsanHciMeshDatastoreSource => Some(from.as_any_ref().downcast_ref::<VsanHciMeshDatastoreSource>()?),
StructType::VsanIoDiagnosticsFailedCheck => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsFailedCheck>()?),
StructType::VsanIoDiagnosticsInstance => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsInstance>()?),
StructType::VsanIoDiagnosticsInstanceEvent => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsInstanceEvent>()?),
StructType::VsanIoDiagnosticsInstanceQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsInstanceQuerySpec>()?),
StructType::VsanIoDiagnosticsObjectLayout => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsObjectLayout>()?),
StructType::VsanIoDiagnosticsPrecheckResult => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsPrecheckResult>()?),
StructType::VsanIoDiagnosticsStats => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsStats>()?),
StructType::VsanIoDiagnosticsTarget => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsTarget>()?),
StructType::VsanIoDiagnosticsTargetStats => Some(from.as_any_ref().downcast_ref::<VsanIoDiagnosticsTargetStats>()?),
StructType::VsanIoLatency => Some(from.as_any_ref().downcast_ref::<VsanIoLatency>()?),
StructType::VsanIoLatencyMetrics => Some(from.as_any_ref().downcast_ref::<VsanIoLatencyMetrics>()?),
StructType::LifecycleConfigDetails => Some(from.as_any_ref().downcast_ref::<LifecycleConfigDetails>()?),
StructType::LifecycleFaultDomainDetails => Some(from.as_any_ref().downcast_ref::<LifecycleFaultDomainDetails>()?),
StructType::LifecyclePreCheckResult => Some(from.as_any_ref().downcast_ref::<LifecyclePreCheckResult>()?),
StructType::LifecycleWitnessDetails => Some(from.as_any_ref().downcast_ref::<LifecycleWitnessDetails>()?),
StructType::VsanMetricProfile => Some(from.as_any_ref().downcast_ref::<VsanMetricProfile>()?),
StructType::VsanMetricsConfig => Some(from.as_any_ref().downcast_ref::<VsanMetricsConfig>()?),
StructType::VsanMountPrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckItem>()?),
StructType::VsanDatastoreSourcePrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSourcePrecheckItem>()?),
StructType::VsanMountPrecheckNetworkConnectivityResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkConnectivityResult>()?),
StructType::VsanMountPrecheckNetworkLatencyResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkLatencyResult>()?),
StructType::VsanMountPrecheckNetworkConnectivity => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkConnectivity>()?),
StructType::VsanMountPrecheckNetworkConnectivityDetail => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkConnectivityDetail>()?),
StructType::VsanMountPrecheckNetworkLatency => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkLatency>()?),
StructType::VsanMountPrecheckNetworkLatencyDetail => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkLatencyDetail>()?),
StructType::VsanMountPrecheckResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckResult>()?),
StructType::VsanDatastoreSourcePrecheckResult => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSourcePrecheckResult>()?),
StructType::VsanObjectHealthTelemetrySummary => Some(from.as_any_ref().downcast_ref::<VsanObjectHealthTelemetrySummary>()?),
StructType::VsanObjectIoStats => Some(from.as_any_ref().downcast_ref::<VsanObjectIoStats>()?),
StructType::VsanProactiveRebalanceInfo => Some(from.as_any_ref().downcast_ref::<VsanProactiveRebalanceInfo>()?),
StructType::VsanRdmaConfig => Some(from.as_any_ref().downcast_ref::<VsanRdmaConfig>()?),
StructType::VsanRemoteVcInfo => Some(from.as_any_ref().downcast_ref::<VsanRemoteVcInfo>()?),
StructType::VsanRemoteVcInfoStandalone => Some(from.as_any_ref().downcast_ref::<VsanRemoteVcInfoStandalone>()?),
StructType::RemoteVsanSite => Some(from.as_any_ref().downcast_ref::<RemoteVsanSite>()?),
StructType::RemoteVsanSiteAffinity => Some(from.as_any_ref().downcast_ref::<RemoteVsanSiteAffinity>()?),
StructType::RepairTimerInfo => Some(from.as_any_ref().downcast_ref::<RepairTimerInfo>()?),
StructType::VsanResourceCheckSpec => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckSpec>()?),
StructType::VsanResourceCheckStatus => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckStatus>()?),
StructType::VsanResourceCheckTaskDetails => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckTaskDetails>()?),
StructType::VsanDiskDataEvacuationResourceCheckTaskDetails => Some(from.as_any_ref().downcast_ref::<VsanDiskDataEvacuationResourceCheckTaskDetails>()?),
StructType::ResyncIopsInfo => Some(from.as_any_ref().downcast_ref::<ResyncIopsInfo>()?),
StructType::VsanRuntimeStatsHostMap => Some(from.as_any_ref().downcast_ref::<VsanRuntimeStatsHostMap>()?),
StructType::SsdEnduranceThresholdSpec => Some(from.as_any_ref().downcast_ref::<SsdEnduranceThresholdSpec>()?),
StructType::VsanServerHostUnicastInfo => Some(from.as_any_ref().downcast_ref::<VsanServerHostUnicastInfo>()?),
StructType::VsanSharedWitnessCompatibilityResult => Some(from.as_any_ref().downcast_ref::<VsanSharedWitnessCompatibilityResult>()?),
StructType::VsanSnapServiceConfig => Some(from.as_any_ref().downcast_ref::<VsanSnapServiceConfig>()?),
StructType::VcRemoteVsanServerClusterConfig => Some(from.as_any_ref().downcast_ref::<VcRemoteVsanServerClusterConfig>()?),
StructType::VcRemoteVsanServerClusterInfo => Some(from.as_any_ref().downcast_ref::<VcRemoteVsanServerClusterInfo>()?),
StructType::VsanIscsiVipConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipConfigSpec>()?),
StructType::VsanIscsiVipConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipConfig>()?),
StructType::VsanIscsiVipDVswitchConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipDVswitchConfig>()?),
StructType::VsanVipNetworkConfig => Some(from.as_any_ref().downcast_ref::<VsanVipNetworkConfig>()?),
StructType::VsanIscsiVipVswitchConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipVswitchConfig>()?),
StructType::VsanBurnInTest => Some(from.as_any_ref().downcast_ref::<VsanBurnInTest>()?),
StructType::VsanBurnInTestCheckResult => Some(from.as_any_ref().downcast_ref::<VsanBurnInTestCheckResult>()?),
StructType::VsanCloudHealthStatus => Some(from.as_any_ref().downcast_ref::<VsanCloudHealthStatus>()?),
StructType::VsanClusterBurnInTestResultList => Some(from.as_any_ref().downcast_ref::<VsanClusterBurnInTestResultList>()?),
StructType::VsanCompliantDriver => Some(from.as_any_ref().downcast_ref::<VsanCompliantDriver>()?),
StructType::VsanCompliantFirmware => Some(from.as_any_ref().downcast_ref::<VsanCompliantFirmware>()?),
StructType::VsanConfigBaseIssue => Some(from.as_any_ref().downcast_ref::<VsanConfigBaseIssue>()?),
StructType::VsanConfigNotAllDisksClaimedIssue => Some(from.as_any_ref().downcast_ref::<VsanConfigNotAllDisksClaimedIssue>()?),
StructType::VsanConfigCheckResult => Some(from.as_any_ref().downcast_ref::<VsanConfigCheckResult>()?),
StructType::VsanDatastoreDefaultPolicySelectionConfig => Some(from.as_any_ref().downcast_ref::<VsanDatastoreDefaultPolicySelectionConfig>()?),
StructType::VsanDeconvergedNetConfig => Some(from.as_any_ref().downcast_ref::<VsanDeconvergedNetConfig>()?),
StructType::VsanDiskModelInfo => Some(from.as_any_ref().downcast_ref::<VsanDiskModelInfo>()?),
StructType::VsanDownloadItem => Some(from.as_any_ref().downcast_ref::<VsanDownloadItem>()?),
StructType::VsanEsaConfig => Some(from.as_any_ref().downcast_ref::<VsanEsaConfig>()?),
StructType::VsanEsaConfigInfo => Some(from.as_any_ref().downcast_ref::<VsanEsaConfigInfo>()?),
StructType::VsanEsaDiskConfiguration => Some(from.as_any_ref().downcast_ref::<VsanEsaDiskConfiguration>()?),
StructType::VsanExtendedConfig => Some(from.as_any_ref().downcast_ref::<VsanExtendedConfig>()?),
StructType::VsanFileServiceOvfSpec => Some(from.as_any_ref().downcast_ref::<VsanFileServiceOvfSpec>()?),
StructType::VsanFileServicePreflightCheckResult => Some(from.as_any_ref().downcast_ref::<VsanFileServicePreflightCheckResult>()?),
StructType::VsanGenericClusterBaseIssue => Some(from.as_any_ref().downcast_ref::<VsanGenericClusterBaseIssue>()?),
StructType::VsanGenericClusterBestPracticeHealth => Some(from.as_any_ref().downcast_ref::<VsanGenericClusterBestPracticeHealth>()?),
StructType::VsanHclDeviceConstraint => Some(from.as_any_ref().downcast_ref::<VsanHclDeviceConstraint>()?),
StructType::VsanHclDiskConstraint => Some(from.as_any_ref().downcast_ref::<VsanHclDiskConstraint>()?),
StructType::VsanHclDriverInfo => Some(from.as_any_ref().downcast_ref::<VsanHclDriverInfo>()?),
StructType::VsanHclMinFwConstraint => Some(from.as_any_ref().downcast_ref::<VsanHclMinFwConstraint>()?),
StructType::VsanHclQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanHclQuerySpec>()?),
StructType::VsanHclReleaseConstraint => Some(from.as_any_ref().downcast_ref::<VsanHclReleaseConstraint>()?),
StructType::VsanHealthConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanHealthConfigSpec>()?),
StructType::VsanHealthCustomizationSpec => Some(from.as_any_ref().downcast_ref::<VsanHealthCustomizationSpec>()?),
StructType::VsanHealthThreshold => Some(from.as_any_ref().downcast_ref::<VsanHealthThreshold>()?),
StructType::VsanHistoricalHealthConfig => Some(from.as_any_ref().downcast_ref::<VsanHistoricalHealthConfig>()?),
StructType::VsanHostDeviceInfo => Some(from.as_any_ref().downcast_ref::<VsanHostDeviceInfo>()?),
StructType::VsanHwToVcgInfoMappingSpec => Some(from.as_any_ref().downcast_ref::<VsanHwToVcgInfoMappingSpec>()?),
StructType::VsanIoTripAnalyzerConfig => Some(from.as_any_ref().downcast_ref::<VsanIoTripAnalyzerConfig>()?),
StructType::VsanIoTripAnalyzerRecurrence => Some(from.as_any_ref().downcast_ref::<VsanIoTripAnalyzerRecurrence>()?),
StructType::VsanInternalExtendedConfig => Some(from.as_any_ref().downcast_ref::<VsanInternalExtendedConfig>()?),
StructType::VsanNetworkConfigBaseIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigBaseIssue>()?),
StructType::VsanNetworkConfigPnicSpeedInconsistencyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigPnicSpeedInconsistencyIssue>()?),
StructType::VsanNetworkConfigPortgroupWithNoRedundancyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigPortgroupWithNoRedundancyIssue>()?),
StructType::VsanNetworkConfigVdsScopeIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVdsScopeIssue>()?),
StructType::VsanNetworkConfigVsanNotOnVdsIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVsanNotOnVdsIssue>()?),
StructType::VsanNetworkConfigVswitchWithNoRedundancyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVswitchWithNoRedundancyIssue>()?),
StructType::VsanNetworkVMotionVmknicNotFountIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkVMotionVmknicNotFountIssue>()?),
StructType::VsanNetworkConfigBestPracticeHealth => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigBestPracticeHealth>()?),
StructType::VsanObjSnapParams => Some(from.as_any_ref().downcast_ref::<VsanObjSnapParams>()?),
StructType::VsanObjectDetail => Some(from.as_any_ref().downcast_ref::<VsanObjectDetail>()?),
StructType::VsanObjectSnapshotId => Some(from.as_any_ref().downcast_ref::<VsanObjectSnapshotId>()?),
StructType::VimVsanVsanPMemConfig => Some(from.as_any_ref().downcast_ref::<VimVsanVsanPMemConfig>()?),
StructType::VsanPerfsvcHealthResult => Some(from.as_any_ref().downcast_ref::<VsanPerfsvcHealthResult>()?),
StructType::VsanPrepareVsanForVcsaSpec => Some(from.as_any_ref().downcast_ref::<VsanPrepareVsanForVcsaSpec>()?),
StructType::VsanSnapshotDetail => Some(from.as_any_ref().downcast_ref::<VsanSnapshotDetail>()?),
StructType::VsanSnapshotQueryResult => Some(from.as_any_ref().downcast_ref::<VsanSnapshotQueryResult>()?),
StructType::VsanSnapshotQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanSnapshotQuerySpec>()?),
StructType::VsanSpaceEfficiencyMetadataSize => Some(from.as_any_ref().downcast_ref::<VsanSpaceEfficiencyMetadataSize>()?),
StructType::VsanSpaceEfficiencyRatio => Some(from.as_any_ref().downcast_ref::<VsanSpaceEfficiencyRatio>()?),
StructType::VsanUnmapConfig => Some(from.as_any_ref().downcast_ref::<VsanUnmapConfig>()?),
StructType::VsanUpdateItem => Some(from.as_any_ref().downcast_ref::<VsanUpdateItem>()?),
StructType::VsanVcPostDeployConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanVcPostDeployConfigSpec>()?),
StructType::VsanVcStretchedClusterConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanVcStretchedClusterConfigSpec>()?),
StructType::VsanVcsaDeploymentProgress => Some(from.as_any_ref().downcast_ref::<VsanVcsaDeploymentProgress>()?),
StructType::VsanVdsMigrationPlan => Some(from.as_any_ref().downcast_ref::<VsanVdsMigrationPlan>()?),
StructType::VsanVdsPgMigrationHostInfo => Some(from.as_any_ref().downcast_ref::<VsanVdsPgMigrationHostInfo>()?),
StructType::VsanVdsPgMigrationSpec => Some(from.as_any_ref().downcast_ref::<VsanVdsPgMigrationSpec>()?),
StructType::VsanVdsPgMigrationVmInfo => Some(from.as_any_ref().downcast_ref::<VsanVdsPgMigrationVmInfo>()?),
StructType::VsanVibInstallPreflightStatus => Some(from.as_any_ref().downcast_ref::<VsanVibInstallPreflightStatus>()?),
StructType::VsanVibScanResult => Some(from.as_any_ref().downcast_ref::<VsanVibScanResult>()?),
StructType::VsanVibSpec => Some(from.as_any_ref().downcast_ref::<VsanVibSpec>()?),
StructType::VsanVmVdsMigrationSpec => Some(from.as_any_ref().downcast_ref::<VsanVmVdsMigrationSpec>()?),
StructType::VsanVnicVdsMigrationSpec => Some(from.as_any_ref().downcast_ref::<VsanVnicVdsMigrationSpec>()?),
StructType::VsanVumConfig => Some(from.as_any_ref().downcast_ref::<VsanVumConfig>()?),
StructType::VsanWitnessHostConfig => Some(from.as_any_ref().downcast_ref::<VsanWitnessHostConfig>()?),
StructType::VsanXvcClientInfo => Some(from.as_any_ref().downcast_ref::<VsanXvcClientInfo>()?),
StructType::VsanXvcDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanXvcDatastoreConfig>()?),
StructType::VsanXvcDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VsanXvcDatastoreInfo>()?),
StructType::VsanXvcClientInfoSpec => Some(from.as_any_ref().downcast_ref::<VsanXvcClientInfoSpec>()?),
StructType::VsanXvcQueryCriteria => Some(from.as_any_ref().downcast_ref::<VsanXvcQueryCriteria>()?),
StructType::VsanXvcQueryFilter => Some(from.as_any_ref().downcast_ref::<VsanXvcQueryFilter>()?),
StructType::VsanXvcQueryPropertyValue => Some(from.as_any_ref().downcast_ref::<VsanXvcQueryPropertyValue>()?),
StructType::VsanXvcQueryResultSet => Some(from.as_any_ref().downcast_ref::<VsanXvcQueryResultSet>()?),
StructType::VsanXvcQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanXvcQuerySpec>()?),
StructType::VsanXvcResultItem => Some(from.as_any_ref().downcast_ref::<VsanXvcResultItem>()?),
StructType::VsanClusterConfigInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterConfigInfo>()?),
StructType::VsanConfigInfoEx => Some(from.as_any_ref().downcast_ref::<VsanConfigInfoEx>()?),
StructType::VsanClusterConfigInfoHostDefaultInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterConfigInfoHostDefaultInfo>()?),
StructType::VsanClusterCoreConfig => Some(from.as_any_ref().downcast_ref::<VsanClusterCoreConfig>()?),
StructType::VsanClusterCoreConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanClusterCoreConfigSpec>()?),
StructType::VsanHostAbortWipeDiskStatus => Some(from.as_any_ref().downcast_ref::<VsanHostAbortWipeDiskStatus>()?),
StructType::VsanHostAboutInfoEx => Some(from.as_any_ref().downcast_ref::<VsanHostAboutInfoEx>()?),
StructType::VsanAddStoragePoolDiskSpec => Some(from.as_any_ref().downcast_ref::<VsanAddStoragePoolDiskSpec>()?),
StructType::VsanHostClusterStatus => Some(from.as_any_ref().downcast_ref::<VsanHostClusterStatus>()?),
StructType::VsanHostClusterStatusState => Some(from.as_any_ref().downcast_ref::<VsanHostClusterStatusState>()?),
StructType::VsanHostClusterStatusStateCompletionEstimate => Some(from.as_any_ref().downcast_ref::<VsanHostClusterStatusStateCompletionEstimate>()?),
StructType::VsanComplianceDetail => Some(from.as_any_ref().downcast_ref::<VsanComplianceDetail>()?),
StructType::VsanComplianceResult => Some(from.as_any_ref().downcast_ref::<VsanComplianceResult>()?),
StructType::VsanHostConfigInfo => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfo>()?),
StructType::VsanHostConfigInfoEx => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoEx>()?),
StructType::VsanHostConfigInfoClusterInfo => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoClusterInfo>()?),
StructType::VsanHostFaultDomainInfo => Some(from.as_any_ref().downcast_ref::<VsanHostFaultDomainInfo>()?),
StructType::VsanHostConfigInfoNetworkInfo => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoNetworkInfo>()?),
StructType::VsanHostConfigInfoNetworkInfoPortConfig => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoNetworkInfoPortConfig>()?),
StructType::VsanHostPortConfigEx => Some(from.as_any_ref().downcast_ref::<VsanHostPortConfigEx>()?),
StructType::VsanHostConfigInfoStorageInfo => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoStorageInfo>()?),
StructType::VsanHostCreateNativeKeyProviderSpec => Some(from.as_any_ref().downcast_ref::<VsanHostCreateNativeKeyProviderSpec>()?),
StructType::VsanInTransitEncryptionInfo => Some(from.as_any_ref().downcast_ref::<VsanInTransitEncryptionInfo>()?),
StructType::VsanHostDecommissionMode => Some(from.as_any_ref().downcast_ref::<VsanHostDecommissionMode>()?),
StructType::VsanDeleteStoragePoolDiskSpec => Some(from.as_any_ref().downcast_ref::<VsanDeleteStoragePoolDiskSpec>()?),
StructType::VsanHostDiskMapInfo => Some(from.as_any_ref().downcast_ref::<VsanHostDiskMapInfo>()?),
StructType::VimVsanHostDiskMapInfoEx => Some(from.as_any_ref().downcast_ref::<VimVsanHostDiskMapInfoEx>()?),
StructType::VsanHostDiskMapResult => Some(from.as_any_ref().downcast_ref::<VsanHostDiskMapResult>()?),
StructType::VsanHostDiskMapping => Some(from.as_any_ref().downcast_ref::<VsanHostDiskMapping>()?),
StructType::VimVsanHostDiskMappingCreationSpec => Some(from.as_any_ref().downcast_ref::<VimVsanHostDiskMappingCreationSpec>()?),
StructType::VsanHostDiskResult => Some(from.as_any_ref().downcast_ref::<VsanHostDiskResult>()?),
StructType::VimVsanHostDiskResultEx => Some(from.as_any_ref().downcast_ref::<VimVsanHostDiskResultEx>()?),
StructType::VsanHostDrsStats => Some(from.as_any_ref().downcast_ref::<VsanHostDrsStats>()?),
StructType::VsanHostEncryptionInfo => Some(from.as_any_ref().downcast_ref::<VsanHostEncryptionInfo>()?),
StructType::VsanHostIpConfig => Some(from.as_any_ref().downcast_ref::<VsanHostIpConfig>()?),
StructType::VsanHostIpConfigEx => Some(from.as_any_ref().downcast_ref::<VsanHostIpConfigEx>()?),
StructType::VsanHostMembershipInfo => Some(from.as_any_ref().downcast_ref::<VsanHostMembershipInfo>()?),
StructType::VsanPolicyStatus => Some(from.as_any_ref().downcast_ref::<VsanPolicyStatus>()?),
StructType::VimVsanHostQueryVsanDisksSpec => Some(from.as_any_ref().downcast_ref::<VimVsanHostQueryVsanDisksSpec>()?),
StructType::RemoteVsanServerClusterConfig => Some(from.as_any_ref().downcast_ref::<RemoteVsanServerClusterConfig>()?),
StructType::VsanHostRuntimeStats => Some(from.as_any_ref().downcast_ref::<VsanHostRuntimeStats>()?),
StructType::VsanHostServerClusterUnicastConfig => Some(from.as_any_ref().downcast_ref::<VsanHostServerClusterUnicastConfig>()?),
StructType::VsanHostServerClusterUnicastInfo => Some(from.as_any_ref().downcast_ref::<VsanHostServerClusterUnicastInfo>()?),
StructType::SiteAffinityInfo => Some(from.as_any_ref().downcast_ref::<SiteAffinityInfo>()?),
StructType::VsanStoragePoolDisk => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolDisk>()?),
StructType::VimVsanHostStoragePoolDiskInfo => Some(from.as_any_ref().downcast_ref::<VimVsanHostStoragePoolDiskInfo>()?),
StructType::VimVsanHostStoragePoolInfo => Some(from.as_any_ref().downcast_ref::<VimVsanHostStoragePoolInfo>()?),
StructType::VimVsanHostTrimDiskEntry => Some(from.as_any_ref().downcast_ref::<VimVsanHostTrimDiskEntry>()?),
StructType::VimVsanHostTrimDiskSpec => Some(from.as_any_ref().downcast_ref::<VimVsanHostTrimDiskSpec>()?),
StructType::VimVsanHostUpdateStoragePoolDiskSpec => Some(from.as_any_ref().downcast_ref::<VimVsanHostUpdateStoragePoolDiskSpec>()?),
StructType::VsanHostAssociatedObjects => Some(from.as_any_ref().downcast_ref::<VsanHostAssociatedObjects>()?),
StructType::VsanHostAssociatedObjectsResult => Some(from.as_any_ref().downcast_ref::<VsanHostAssociatedObjectsResult>()?),
StructType::VsanComplianceQuerySpec => Some(from.as_any_ref().downcast_ref::<VsanComplianceQuerySpec>()?),
StructType::VsanHostComponentSyncState => Some(from.as_any_ref().downcast_ref::<VsanHostComponentSyncState>()?),
StructType::VimVsanHostVsanDirectStorage => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanDirectStorage>()?),
StructType::VsanHostVsanDiskInfo => Some(from.as_any_ref().downcast_ref::<VsanHostVsanDiskInfo>()?),
StructType::VimVsanHostVsanDiskManagementSystemCapability => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanDiskManagementSystemCapability>()?),
StructType::VimVsanHostVsanHostCapability => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanHostCapability>()?),
StructType::VimVsanHostVsanManagedDisksInfo => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanManagedDisksInfo>()?),
StructType::VimVsanHostVsanManagedPMemInfo => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanManagedPMemInfo>()?),
StructType::VsanObjectProfileInfo => Some(from.as_any_ref().downcast_ref::<VsanObjectProfileInfo>()?),
StructType::VsanHostVsanObjectSyncState => Some(from.as_any_ref().downcast_ref::<VsanHostVsanObjectSyncState>()?),
StructType::VsanHostRuntimeInfo => Some(from.as_any_ref().downcast_ref::<VsanHostRuntimeInfo>()?),
StructType::VsanHostRuntimeInfoDiskIssue => Some(from.as_any_ref().downcast_ref::<VsanHostRuntimeInfoDiskIssue>()?),
StructType::VimVsanHostVsanScsiDisk => Some(from.as_any_ref().downcast_ref::<VimVsanHostVsanScsiDisk>()?),
StructType::VsanHostVsanObjectSyncQueryResult => Some(from.as_any_ref().downcast_ref::<VsanHostVsanObjectSyncQueryResult>()?),
StructType::VsanSyncingObjectRecoveryDetails => Some(from.as_any_ref().downcast_ref::<VsanSyncingObjectRecoveryDetails>()?),
StructType::VsanWhatIfEvacDetail => Some(from.as_any_ref().downcast_ref::<VsanWhatIfEvacDetail>()?),
StructType::VsanWhatIfEvacResult => Some(from.as_any_ref().downcast_ref::<VsanWhatIfEvacResult>()?),
StructType::VsanHostWipeDiskStatus => Some(from.as_any_ref().downcast_ref::<VsanHostWipeDiskStatus>()?),
StructType::BaseConfigInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfo>()?),
StructType::VStorageObjectConfigInfo => Some(from.as_any_ref().downcast_ref::<VStorageObjectConfigInfo>()?),
StructType::BaseConfigInfoBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoBackingInfo>()?),
StructType::BaseConfigInfoFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
StructType::VslmCreateSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpec>()?),
StructType::VslmCreateSpecBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecBackingSpec>()?),
StructType::VslmCreateSpecDiskFileBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecDiskFileBackingSpec>()?),
StructType::VslmCreateSpecRawDiskMappingBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecRawDiskMappingBackingSpec>()?),
StructType::DiskCryptoSpec => Some(from.as_any_ref().downcast_ref::<DiskCryptoSpec>()?),
StructType::Id => Some(from.as_any_ref().downcast_ref::<Id>()?),
StructType::VslmInfrastructureObjectPolicy => Some(from.as_any_ref().downcast_ref::<VslmInfrastructureObjectPolicy>()?),
StructType::VslmInfrastructureObjectPolicySpec => Some(from.as_any_ref().downcast_ref::<VslmInfrastructureObjectPolicySpec>()?),
StructType::VslmMigrateSpec => Some(from.as_any_ref().downcast_ref::<VslmMigrateSpec>()?),
StructType::VslmCloneSpec => Some(from.as_any_ref().downcast_ref::<VslmCloneSpec>()?),
StructType::VslmRelocateSpec => Some(from.as_any_ref().downcast_ref::<VslmRelocateSpec>()?),
StructType::VStorageObjectReconcileResult => Some(from.as_any_ref().downcast_ref::<VStorageObjectReconcileResult>()?),
StructType::VStorageObjectReconcileResultInvalidDiskPath => Some(from.as_any_ref().downcast_ref::<VStorageObjectReconcileResultInvalidDiskPath>()?),
StructType::VStorageObjectReconcileResultReconcileDetail => Some(from.as_any_ref().downcast_ref::<VStorageObjectReconcileResultReconcileDetail>()?),
StructType::VStorageObjectReconcileSpec => Some(from.as_any_ref().downcast_ref::<VStorageObjectReconcileSpec>()?),
StructType::VStorageObjectStateInfo => Some(from.as_any_ref().downcast_ref::<VStorageObjectStateInfo>()?),
StructType::VslmTagEntry => Some(from.as_any_ref().downcast_ref::<VslmTagEntry>()?),
StructType::VslmVClockInfo => Some(from.as_any_ref().downcast_ref::<VslmVClockInfo>()?),
StructType::VStorageObject => Some(from.as_any_ref().downcast_ref::<VStorageObject>()?),
StructType::VStorageObjectSnapshot => Some(from.as_any_ref().downcast_ref::<VStorageObjectSnapshot>()?),
StructType::VStorageObjectSnapshotDetails => Some(from.as_any_ref().downcast_ref::<VStorageObjectSnapshotDetails>()?),
StructType::VStorageObjectSnapshotInfo => Some(from.as_any_ref().downcast_ref::<VStorageObjectSnapshotInfo>()?),
StructType::VStorageObjectSnapshotInfoVStorageObjectSnapshot => Some(from.as_any_ref().downcast_ref::<VStorageObjectSnapshotInfoVStorageObjectSnapshot>()?),
StructType::RetrieveVStorageObjSpec => Some(from.as_any_ref().downcast_ref::<RetrieveVStorageObjSpec>()?),
StructType::VStorageObjectAssociations => Some(from.as_any_ref().downcast_ref::<VStorageObjectAssociations>()?),
StructType::VStorageObjectAssociationsVmDiskAssociations => Some(from.as_any_ref().downcast_ref::<VStorageObjectAssociationsVmDiskAssociations>()?),
StructType::DynamicArray => Some(from.as_any_ref().downcast_ref::<DynamicArray>()?),
StructType::DynamicProperty => Some(from.as_any_ref().downcast_ref::<DynamicProperty>()?),
StructType::KeyAnyValue => Some(from.as_any_ref().downcast_ref::<KeyAnyValue>()?),
StructType::LocalizableMessage => Some(from.as_any_ref().downcast_ref::<LocalizableMessage>()?),
StructType::LocalizedMethodFault => Some(from.as_any_ref().downcast_ref::<LocalizedMethodFault>()?),
StructType::PropertyChange => Some(from.as_any_ref().downcast_ref::<PropertyChange>()?),
StructType::PropertyFilterSpec => Some(from.as_any_ref().downcast_ref::<PropertyFilterSpec>()?),
StructType::PropertyFilterUpdate => Some(from.as_any_ref().downcast_ref::<PropertyFilterUpdate>()?),
StructType::MissingObject => Some(from.as_any_ref().downcast_ref::<MissingObject>()?),
StructType::MissingProperty => Some(from.as_any_ref().downcast_ref::<MissingProperty>()?),
StructType::ObjectContent => Some(from.as_any_ref().downcast_ref::<ObjectContent>()?),
StructType::ObjectSpec => Some(from.as_any_ref().downcast_ref::<ObjectSpec>()?),
StructType::ObjectUpdate => Some(from.as_any_ref().downcast_ref::<ObjectUpdate>()?),
StructType::PropertySpec => Some(from.as_any_ref().downcast_ref::<PropertySpec>()?),
StructType::RetrieveOptions => Some(from.as_any_ref().downcast_ref::<RetrieveOptions>()?),
StructType::RetrieveResult => Some(from.as_any_ref().downcast_ref::<RetrieveResult>()?),
StructType::SelectionSpec => Some(from.as_any_ref().downcast_ref::<SelectionSpec>()?),
StructType::TraversalSpec => Some(from.as_any_ref().downcast_ref::<TraversalSpec>()?),
StructType::UpdateSet => Some(from.as_any_ref().downcast_ref::<UpdateSet>()?),
StructType::WaitOptions => Some(from.as_any_ref().downcast_ref::<WaitOptions>()?),
StructType::VslmAboutInfo => Some(from.as_any_ref().downcast_ref::<VslmAboutInfo>()?),
StructType::VslmQueryDatastoreInfoResult => Some(from.as_any_ref().downcast_ref::<VslmQueryDatastoreInfoResult>()?),
StructType::VslmServiceInstanceContent => Some(from.as_any_ref().downcast_ref::<VslmServiceInstanceContent>()?),
StructType::VslmTaskInfo => Some(from.as_any_ref().downcast_ref::<VslmTaskInfo>()?),
StructType::VslmTaskReason => Some(from.as_any_ref().downcast_ref::<VslmTaskReason>()?),
StructType::VslmTaskReasonAlarm => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonAlarm>()?),
StructType::VslmTaskReasonSchedule => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonSchedule>()?),
StructType::VslmTaskReasonSystem => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonSystem>()?),
StructType::VslmTaskReasonUser => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonUser>()?),
StructType::VslmDatastoreSyncStatus => Some(from.as_any_ref().downcast_ref::<VslmDatastoreSyncStatus>()?),
StructType::VslmVsoVStorageObjectAssociations => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectAssociations>()?),
StructType::VslmVsoVStorageObjectAssociationsVmDiskAssociation => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectAssociationsVmDiskAssociation>()?),
StructType::VslmVsoVStorageObjectQueryResult => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectQueryResult>()?),
StructType::VslmVsoVStorageObjectQuerySpec => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectQuerySpec>()?),
StructType::VslmVsoVStorageObjectResult => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectResult>()?),
StructType::VslmVsoVStorageObjectSnapshotResult => Some(from.as_any_ref().downcast_ref::<VslmVsoVStorageObjectSnapshotResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DataObject => Ok(from.as_any_box().downcast::<DataObject>()?),
StructType::AgencyConfigInfo => Ok(from.as_any_box().downcast::<AgencyConfigInfo>()?),
StructType::AgencyScope => Ok(from.as_any_box().downcast::<AgencyScope>()?),
StructType::AgencyComputeResourceScope => Ok(from.as_any_box().downcast::<AgencyComputeResourceScope>()?),
StructType::AgencyVmFolder => Ok(from.as_any_box().downcast::<AgencyVmFolder>()?),
StructType::AgencyVmResourcePool => Ok(from.as_any_box().downcast::<AgencyVmResourcePool>()?),
StructType::AgentConfigInfo => Ok(from.as_any_box().downcast::<AgentConfigInfo>()?),
StructType::AgentOvfEnvironmentInfo => Ok(from.as_any_box().downcast::<AgentOvfEnvironmentInfo>()?),
StructType::AgentOvfEnvironmentInfoOvfProperty => Ok(from.as_any_box().downcast::<AgentOvfEnvironmentInfoOvfProperty>()?),
StructType::AgentSslTrust => Ok(from.as_any_box().downcast::<AgentSslTrust>()?),
StructType::AgentAnyCertificate => Ok(from.as_any_box().downcast::<AgentAnyCertificate>()?),
StructType::AgentPinnedPemCertificate => Ok(from.as_any_box().downcast::<AgentPinnedPemCertificate>()?),
StructType::AgentStoragePolicy => Ok(from.as_any_box().downcast::<AgentStoragePolicy>()?),
StructType::AgentVsanStoragePolicy => Ok(from.as_any_box().downcast::<AgentVsanStoragePolicy>()?),
StructType::AgentVibMatchingRule => Ok(from.as_any_box().downcast::<AgentVibMatchingRule>()?),
StructType::AgentVmHook => Ok(from.as_any_box().downcast::<AgentVmHook>()?),
StructType::EamObjectRuntimeInfo => Ok(from.as_any_box().downcast::<EamObjectRuntimeInfo>()?),
StructType::AgentRuntimeInfo => Ok(from.as_any_box().downcast::<AgentRuntimeInfo>()?),
StructType::Issue => Ok(from.as_any_box().downcast::<Issue>()?),
StructType::AgencyIssue => Ok(from.as_any_box().downcast::<AgencyIssue>()?),
StructType::AgencyDisabled => Ok(from.as_any_box().downcast::<AgencyDisabled>()?),
StructType::AgentIssue => Ok(from.as_any_box().downcast::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Ok(from.as_any_box().downcast::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Ok(from.as_any_box().downcast::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Ok(from.as_any_box().downcast::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Ok(from.as_any_box().downcast::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Ok(from.as_any_box().downcast::<TransitionFailed>()?),
StructType::VibIssue => Ok(from.as_any_box().downcast::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Ok(from.as_any_box().downcast::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Ok(from.as_any_box().downcast::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Ok(from.as_any_box().downcast::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Ok(from.as_any_box().downcast::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Ok(from.as_any_box().downcast::<VmIssue>()?),
StructType::InvalidConfig => Ok(from.as_any_box().downcast::<InvalidConfig>()?),
StructType::VmCorrupted => Ok(from.as_any_box().downcast::<VmCorrupted>()?),
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
StructType::VmHookFailed => Ok(from.as_any_box().downcast::<VmHookFailed>()?),
StructType::VmHookTimedout => Ok(from.as_any_box().downcast::<VmHookTimedout>()?),
StructType::VmInaccessible => Ok(from.as_any_box().downcast::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Ok(from.as_any_box().downcast::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Ok(from.as_any_box().downcast::<VmOrphaned>()?),
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Ok(from.as_any_box().downcast::<VmPoweredOn>()?),
StructType::VmProtected => Ok(from.as_any_box().downcast::<VmProtected>()?),
StructType::VmSuspended => Ok(from.as_any_box().downcast::<VmSuspended>()?),
StructType::VmWrongFolder => Ok(from.as_any_box().downcast::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Ok(from.as_any_box().downcast::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Ok(from.as_any_box().downcast::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Ok(from.as_any_box().downcast::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Ok(from.as_any_box().downcast::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Ok(from.as_any_box().downcast::<InsufficientResources>()?),
StructType::InsufficientSpace => Ok(from.as_any_box().downcast::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Ok(from.as_any_box().downcast::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Ok(from.as_any_box().downcast::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Ok(from.as_any_box().downcast::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Ok(from.as_any_box().downcast::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Ok(from.as_any_box().downcast::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Ok(from.as_any_box().downcast::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Ok(from.as_any_box().downcast::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Ok(from.as_any_box().downcast::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Ok(from.as_any_box().downcast::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Ok(from.as_any_box().downcast::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Ok(from.as_any_box().downcast::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Ok(from.as_any_box().downcast::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Ok(from.as_any_box().downcast::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Ok(from.as_any_box().downcast::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Ok(from.as_any_box().downcast::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Ok(from.as_any_box().downcast::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Ok(from.as_any_box().downcast::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Ok(from.as_any_box().downcast::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Ok(from.as_any_box().downcast::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Ok(from.as_any_box().downcast::<PersonalityAgencyPmUnavailable>()?),
StructType::ExtensibleIssue => Ok(from.as_any_box().downcast::<ExtensibleIssue>()?),
StructType::HostIssue => Ok(from.as_any_box().downcast::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Ok(from.as_any_box().downcast::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Ok(from.as_any_box().downcast::<UnknownAgentVm>()?),
StructType::HooksHookListSpec => Ok(from.as_any_box().downcast::<HooksHookListSpec>()?),
StructType::HooksMarkAsProcessedSpec => Ok(from.as_any_box().downcast::<HooksMarkAsProcessedSpec>()?),
StructType::SolutionsApplySpec => Ok(from.as_any_box().downcast::<SolutionsApplySpec>()?),
StructType::SolutionsClusterSolutionComplianceResult => Ok(from.as_any_box().downcast::<SolutionsClusterSolutionComplianceResult>()?),
StructType::SolutionsComplianceResult => Ok(from.as_any_box().downcast::<SolutionsComplianceResult>()?),
StructType::SolutionsComplianceSpec => Ok(from.as_any_box().downcast::<SolutionsComplianceSpec>()?),
StructType::SolutionsDeploymentUnitComplianceResult => Ok(from.as_any_box().downcast::<SolutionsDeploymentUnitComplianceResult>()?),
StructType::SolutionsHookAcknowledgeConfig => Ok(from.as_any_box().downcast::<SolutionsHookAcknowledgeConfig>()?),
StructType::SolutionsInteractiveHookAcknowledgeConfig => Ok(from.as_any_box().downcast::<SolutionsInteractiveHookAcknowledgeConfig>()?),
StructType::SolutionsHookConfig => Ok(from.as_any_box().downcast::<SolutionsHookConfig>()?),
StructType::SolutionsHookInfo => Ok(from.as_any_box().downcast::<SolutionsHookInfo>()?),
StructType::SolutionsHostComplianceResult => Ok(from.as_any_box().downcast::<SolutionsHostComplianceResult>()?),
StructType::SolutionsOvfProperty => Ok(from.as_any_box().downcast::<SolutionsOvfProperty>()?),
StructType::SolutionsSolutionComplianceResult => Ok(from.as_any_box().downcast::<SolutionsSolutionComplianceResult>()?),
StructType::SolutionsSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsSolutionConfig>()?),
StructType::SolutionsSolutionValidationResult => Ok(from.as_any_box().downcast::<SolutionsSolutionValidationResult>()?),
StructType::SolutionsStoragePolicy => Ok(from.as_any_box().downcast::<SolutionsStoragePolicy>()?),
StructType::SolutionsProfileIdStoragePolicy => Ok(from.as_any_box().downcast::<SolutionsProfileIdStoragePolicy>()?),
StructType::SolutionsTransitionSpec => Ok(from.as_any_box().downcast::<SolutionsTransitionSpec>()?),
StructType::SolutionsTypeSpecificSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsTypeSpecificSolutionConfig>()?),
StructType::SolutionsClusterBoundSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsClusterBoundSolutionConfig>()?),
StructType::SolutionsHostBoundSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsHostBoundSolutionConfig>()?),
StructType::SolutionsVmNetworkMapping => Ok(from.as_any_box().downcast::<SolutionsVmNetworkMapping>()?),
StructType::SolutionsVmSource => Ok(from.as_any_box().downcast::<SolutionsVmSource>()?),
StructType::SolutionsUrlVmSource => Ok(from.as_any_box().downcast::<SolutionsUrlVmSource>()?),
StructType::SolutionsValidateSpec => Ok(from.as_any_box().downcast::<SolutionsValidateSpec>()?),
StructType::SolutionsValidationResult => Ok(from.as_any_box().downcast::<SolutionsValidationResult>()?),
StructType::SolutionsVmResourceSpec => Ok(from.as_any_box().downcast::<SolutionsVmResourceSpec>()?),
StructType::VibVibInfo => Ok(from.as_any_box().downcast::<VibVibInfo>()?),
StructType::VibVibInfoSoftwareTags => Ok(from.as_any_box().downcast::<VibVibInfoSoftwareTags>()?),
StructType::VibVibServicesSslTrust => Ok(from.as_any_box().downcast::<VibVibServicesSslTrust>()?),
StructType::VibVibServicesAnyCertificate => Ok(from.as_any_box().downcast::<VibVibServicesAnyCertificate>()?),
StructType::VibVibServicesPinnedPemCertificate => Ok(from.as_any_box().downcast::<VibVibServicesPinnedPemCertificate>()?),
StructType::PbmAboutInfo => Ok(from.as_any_box().downcast::<PbmAboutInfo>()?),
StructType::PbmExtendedElementDescription => Ok(from.as_any_box().downcast::<PbmExtendedElementDescription>()?),
StructType::PbmLoggingConfiguration => Ok(from.as_any_box().downcast::<PbmLoggingConfiguration>()?),
StructType::PbmServerObjectRef => Ok(from.as_any_box().downcast::<PbmServerObjectRef>()?),
StructType::PbmServiceInstanceContent => Ok(from.as_any_box().downcast::<PbmServiceInstanceContent>()?),
StructType::PbmCapabilityInstance => Ok(from.as_any_box().downcast::<PbmCapabilityInstance>()?),
StructType::PbmCapabilityMetadata => Ok(from.as_any_box().downcast::<PbmCapabilityMetadata>()?),
StructType::PbmCapabilityMetadataUniqueId => Ok(from.as_any_box().downcast::<PbmCapabilityMetadataUniqueId>()?),
StructType::PbmCapabilityConstraintInstance => Ok(from.as_any_box().downcast::<PbmCapabilityConstraintInstance>()?),
StructType::PbmCapabilityPropertyInstance => Ok(from.as_any_box().downcast::<PbmCapabilityPropertyInstance>()?),
StructType::PbmCapabilityPropertyMetadata => Ok(from.as_any_box().downcast::<PbmCapabilityPropertyMetadata>()?),
StructType::PbmCapabilityTypeInfo => Ok(from.as_any_box().downcast::<PbmCapabilityTypeInfo>()?),
StructType::PbmCapabilityGenericTypeInfo => Ok(from.as_any_box().downcast::<PbmCapabilityGenericTypeInfo>()?),
StructType::PbmCapabilityMetadataPerCategory => Ok(from.as_any_box().downcast::<PbmCapabilityMetadataPerCategory>()?),
StructType::PbmCapabilitySchema => Ok(from.as_any_box().downcast::<PbmCapabilitySchema>()?),
StructType::PbmCapabilityNamespaceInfo => Ok(from.as_any_box().downcast::<PbmCapabilityNamespaceInfo>()?),
StructType::PbmCapabilitySchemaVendorInfo => Ok(from.as_any_box().downcast::<PbmCapabilitySchemaVendorInfo>()?),
StructType::PbmCapabilityVendorNamespaceInfo => Ok(from.as_any_box().downcast::<PbmCapabilityVendorNamespaceInfo>()?),
StructType::PbmCapabilityVendorResourceTypeInfo => Ok(from.as_any_box().downcast::<PbmCapabilityVendorResourceTypeInfo>()?),
StructType::PbmLineOfServiceInfo => Ok(from.as_any_box().downcast::<PbmLineOfServiceInfo>()?),
StructType::PbmPersistenceBasedDataServiceInfo => Ok(from.as_any_box().downcast::<PbmPersistenceBasedDataServiceInfo>()?),
StructType::PbmVaioDataServiceInfo => Ok(from.as_any_box().downcast::<PbmVaioDataServiceInfo>()?),
StructType::PbmCapabilityDescription => Ok(from.as_any_box().downcast::<PbmCapabilityDescription>()?),
StructType::PbmCapabilityDiscreteSet => Ok(from.as_any_box().downcast::<PbmCapabilityDiscreteSet>()?),
StructType::PbmCapabilityRange => Ok(from.as_any_box().downcast::<PbmCapabilityRange>()?),
StructType::PbmCapabilityTimeSpan => Ok(from.as_any_box().downcast::<PbmCapabilityTimeSpan>()?),
StructType::PbmComplianceResult => Ok(from.as_any_box().downcast::<PbmComplianceResult>()?),
StructType::PbmFetchEntityHealthStatusSpec => Ok(from.as_any_box().downcast::<PbmFetchEntityHealthStatusSpec>()?),
StructType::PbmComplianceOperationalStatus => Ok(from.as_any_box().downcast::<PbmComplianceOperationalStatus>()?),
StructType::PbmCompliancePolicyStatus => Ok(from.as_any_box().downcast::<PbmCompliancePolicyStatus>()?),
StructType::PbmRollupComplianceResult => Ok(from.as_any_box().downcast::<PbmRollupComplianceResult>()?),
StructType::PbmFaultNoPermissionEntityPrivileges => Ok(from.as_any_box().downcast::<PbmFaultNoPermissionEntityPrivileges>()?),
StructType::PbmPlacementCompatibilityResult => Ok(from.as_any_box().downcast::<PbmPlacementCompatibilityResult>()?),
StructType::PbmPlacementMatchingResources => Ok(from.as_any_box().downcast::<PbmPlacementMatchingResources>()?),
StructType::PbmPlacementMatchingReplicationResources => Ok(from.as_any_box().downcast::<PbmPlacementMatchingReplicationResources>()?),
StructType::PbmPlacementHub => Ok(from.as_any_box().downcast::<PbmPlacementHub>()?),
StructType::PbmPlacementRequirement => Ok(from.as_any_box().downcast::<PbmPlacementRequirement>()?),
StructType::PbmPlacementCapabilityConstraintsRequirement => Ok(from.as_any_box().downcast::<PbmPlacementCapabilityConstraintsRequirement>()?),
StructType::PbmPlacementCapabilityProfileRequirement => Ok(from.as_any_box().downcast::<PbmPlacementCapabilityProfileRequirement>()?),
StructType::PbmPlacementResourceUtilization => Ok(from.as_any_box().downcast::<PbmPlacementResourceUtilization>()?),
StructType::PbmCapabilityProfileCreateSpec => Ok(from.as_any_box().downcast::<PbmCapabilityProfileCreateSpec>()?),
StructType::PbmCapabilityProfileUpdateSpec => Ok(from.as_any_box().downcast::<PbmCapabilityProfileUpdateSpec>()?),
StructType::PbmCapabilityConstraints => Ok(from.as_any_box().downcast::<PbmCapabilityConstraints>()?),
StructType::PbmCapabilitySubProfileConstraints => Ok(from.as_any_box().downcast::<PbmCapabilitySubProfileConstraints>()?),
StructType::PbmDataServiceToPoliciesMap => Ok(from.as_any_box().downcast::<PbmDataServiceToPoliciesMap>()?),
StructType::PbmDefaultProfileInfo => Ok(from.as_any_box().downcast::<PbmDefaultProfileInfo>()?),
StructType::PbmProfile => Ok(from.as_any_box().downcast::<PbmProfile>()?),
StructType::PbmCapabilityProfile => Ok(from.as_any_box().downcast::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Ok(from.as_any_box().downcast::<PbmDefaultCapabilityProfile>()?),
StructType::PbmProfileId => Ok(from.as_any_box().downcast::<PbmProfileId>()?),
StructType::PbmProfileOperationOutcome => Ok(from.as_any_box().downcast::<PbmProfileOperationOutcome>()?),
StructType::PbmProfileType => Ok(from.as_any_box().downcast::<PbmProfileType>()?),
StructType::PbmQueryProfileResult => Ok(from.as_any_box().downcast::<PbmQueryProfileResult>()?),
StructType::PbmProfileResourceType => Ok(from.as_any_box().downcast::<PbmProfileResourceType>()?),
StructType::PbmCapabilitySubProfile => Ok(from.as_any_box().downcast::<PbmCapabilitySubProfile>()?),
StructType::PbmDatastoreSpaceStatistics => Ok(from.as_any_box().downcast::<PbmDatastoreSpaceStatistics>()?),
StructType::PbmQueryReplicationGroupResult => Ok(from.as_any_box().downcast::<PbmQueryReplicationGroupResult>()?),
StructType::SmsAboutInfo => Ok(from.as_any_box().downcast::<SmsAboutInfo>()?),
StructType::EntityReference => Ok(from.as_any_box().downcast::<EntityReference>()?),
StructType::FaultDomainFilter => Ok(from.as_any_box().downcast::<FaultDomainFilter>()?),
StructType::ReplicationGroupFilter => Ok(from.as_any_box().downcast::<ReplicationGroupFilter>()?),
StructType::SmsTaskInfo => Ok(from.as_any_box().downcast::<SmsTaskInfo>()?),
StructType::AlarmFilter => Ok(from.as_any_box().downcast::<AlarmFilter>()?),
StructType::AlarmResult => Ok(from.as_any_box().downcast::<AlarmResult>()?),
StructType::SmsProviderInfo => Ok(from.as_any_box().downcast::<SmsProviderInfo>()?),
StructType::VasaProviderInfo => Ok(from.as_any_box().downcast::<VasaProviderInfo>()?),
StructType::SmsProviderSpec => Ok(from.as_any_box().downcast::<SmsProviderSpec>()?),
StructType::VasaProviderSpec => Ok(from.as_any_box().downcast::<VasaProviderSpec>()?),
StructType::VasaProviderUpgradeSpec => Ok(from.as_any_box().downcast::<VasaProviderUpgradeSpec>()?),
StructType::RelatedStorageArray => Ok(from.as_any_box().downcast::<RelatedStorageArray>()?),
StructType::SupportedVendorModelMapping => Ok(from.as_any_box().downcast::<SupportedVendorModelMapping>()?),
StructType::BackingConfig => Ok(from.as_any_box().downcast::<BackingConfig>()?),
StructType::BackingStoragePool => Ok(from.as_any_box().downcast::<BackingStoragePool>()?),
StructType::DatastoreBackingPoolMapping => Ok(from.as_any_box().downcast::<DatastoreBackingPoolMapping>()?),
StructType::DatastorePair => Ok(from.as_any_box().downcast::<DatastorePair>()?),
StructType::DrsMigrationCapabilityResult => Ok(from.as_any_box().downcast::<DrsMigrationCapabilityResult>()?),
StructType::FaultDomainProviderMapping => Ok(from.as_any_box().downcast::<FaultDomainProviderMapping>()?),
StructType::StorageFileSystemInfo => Ok(from.as_any_box().downcast::<StorageFileSystemInfo>()?),
StructType::LunHbaAssociation => Ok(from.as_any_box().downcast::<LunHbaAssociation>()?),
StructType::NameValuePair => Ok(from.as_any_box().downcast::<NameValuePair>()?),
StructType::StorageAlarm => Ok(from.as_any_box().downcast::<StorageAlarm>()?),
StructType::StorageArray => Ok(from.as_any_box().downcast::<StorageArray>()?),
StructType::StorageCapability => Ok(from.as_any_box().downcast::<StorageCapability>()?),
StructType::StorageContainer => Ok(from.as_any_box().downcast::<StorageContainer>()?),
StructType::StorageContainerResult => Ok(from.as_any_box().downcast::<StorageContainerResult>()?),
StructType::StorageContainerSpec => Ok(from.as_any_box().downcast::<StorageContainerSpec>()?),
StructType::StorageFileSystem => Ok(from.as_any_box().downcast::<StorageFileSystem>()?),
StructType::StorageLun => Ok(from.as_any_box().downcast::<StorageLun>()?),
StructType::StoragePort => Ok(from.as_any_box().downcast::<StoragePort>()?),
StructType::FcStoragePort => Ok(from.as_any_box().downcast::<FcStoragePort>()?),
StructType::FcoeStoragePort => Ok(from.as_any_box().downcast::<FcoeStoragePort>()?),
StructType::IscsiStoragePort => Ok(from.as_any_box().downcast::<IscsiStoragePort>()?),
StructType::StorageProcessor => Ok(from.as_any_box().downcast::<StorageProcessor>()?),
StructType::DeviceId => Ok(from.as_any_box().downcast::<DeviceId>()?),
StructType::VVolId => Ok(from.as_any_box().downcast::<VVolId>()?),
StructType::VasaVirtualDiskId => Ok(from.as_any_box().downcast::<VasaVirtualDiskId>()?),
StructType::VirtualDiskKey => Ok(from.as_any_box().downcast::<VirtualDiskKey>()?),
StructType::VirtualDiskMoId => Ok(from.as_any_box().downcast::<VirtualDiskMoId>()?),
StructType::VirtualMachineId => Ok(from.as_any_box().downcast::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Ok(from.as_any_box().downcast::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Ok(from.as_any_box().downcast::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Ok(from.as_any_box().downcast::<VirtualMachineUuid>()?),
StructType::FailoverParam => Ok(from.as_any_box().downcast::<FailoverParam>()?),
StructType::TestFailoverParam => Ok(from.as_any_box().downcast::<TestFailoverParam>()?),
StructType::PolicyAssociation => Ok(from.as_any_box().downcast::<PolicyAssociation>()?),
StructType::ReplicationGroupData => Ok(from.as_any_box().downcast::<ReplicationGroupData>()?),
StructType::RecoveredDevice => Ok(from.as_any_box().downcast::<RecoveredDevice>()?),
StructType::RecoveredDiskInfo => Ok(from.as_any_box().downcast::<RecoveredDiskInfo>()?),
StructType::GroupInfo => Ok(from.as_any_box().downcast::<GroupInfo>()?),
StructType::SourceGroupInfo => Ok(from.as_any_box().downcast::<SourceGroupInfo>()?),
StructType::TargetGroupInfo => Ok(from.as_any_box().downcast::<TargetGroupInfo>()?),
StructType::GroupOperationResult => Ok(from.as_any_box().downcast::<GroupOperationResult>()?),
StructType::FailoverSuccessResult => Ok(from.as_any_box().downcast::<FailoverSuccessResult>()?),
StructType::GroupErrorResult => Ok(from.as_any_box().downcast::<GroupErrorResult>()?),
StructType::QueryPointInTimeReplicaSuccessResult => Ok(from.as_any_box().downcast::<QueryPointInTimeReplicaSuccessResult>()?),
StructType::QueryPointInTimeReplicaSummaryResult => Ok(from.as_any_box().downcast::<QueryPointInTimeReplicaSummaryResult>()?),
StructType::QueryReplicationGroupSuccessResult => Ok(from.as_any_box().downcast::<QueryReplicationGroupSuccessResult>()?),
StructType::ReverseReplicationSuccessResult => Ok(from.as_any_box().downcast::<ReverseReplicationSuccessResult>()?),
StructType::SyncReplicationGroupSuccessResult => Ok(from.as_any_box().downcast::<SyncReplicationGroupSuccessResult>()?),
StructType::PointInTimeReplicaId => Ok(from.as_any_box().downcast::<PointInTimeReplicaId>()?),
StructType::PromoteParam => Ok(from.as_any_box().downcast::<PromoteParam>()?),
StructType::QueryPointInTimeReplicaParam => Ok(from.as_any_box().downcast::<QueryPointInTimeReplicaParam>()?),
StructType::ReplicaQueryIntervalParam => Ok(from.as_any_box().downcast::<ReplicaQueryIntervalParam>()?),
StructType::PointInTimeReplicaInfo => Ok(from.as_any_box().downcast::<PointInTimeReplicaInfo>()?),
StructType::ReplicaIntervalQueryResult => Ok(from.as_any_box().downcast::<ReplicaIntervalQueryResult>()?),
StructType::QueryReplicationPeerResult => Ok(from.as_any_box().downcast::<QueryReplicationPeerResult>()?),
StructType::ReplicaId => Ok(from.as_any_box().downcast::<ReplicaId>()?),
StructType::ReplicationTargetInfo => Ok(from.as_any_box().downcast::<ReplicationTargetInfo>()?),
StructType::SourceGroupMemberInfo => Ok(from.as_any_box().downcast::<SourceGroupMemberInfo>()?),
StructType::TargetDeviceId => Ok(from.as_any_box().downcast::<TargetDeviceId>()?),
StructType::TargetToSourceInfo => Ok(from.as_any_box().downcast::<TargetToSourceInfo>()?),
StructType::TargetGroupMemberInfo => Ok(from.as_any_box().downcast::<TargetGroupMemberInfo>()?),
StructType::RecoveredTargetGroupMemberInfo => Ok(from.as_any_box().downcast::<RecoveredTargetGroupMemberInfo>()?),
StructType::AboutInfo => Ok(from.as_any_box().downcast::<AboutInfo>()?),
StructType::AuthorizationDescription => Ok(from.as_any_box().downcast::<AuthorizationDescription>()?),
StructType::EntityPrivilege => Ok(from.as_any_box().downcast::<EntityPrivilege>()?),
StructType::Permission => Ok(from.as_any_box().downcast::<Permission>()?),
StructType::AuthorizationPrivilege => Ok(from.as_any_box().downcast::<AuthorizationPrivilege>()?),
StructType::PrivilegeAvailability => Ok(from.as_any_box().downcast::<PrivilegeAvailability>()?),
StructType::AuthorizationRole => Ok(from.as_any_box().downcast::<AuthorizationRole>()?),
StructType::UserPrivilegeResult => Ok(from.as_any_box().downcast::<UserPrivilegeResult>()?),
StructType::BatchResult => Ok(from.as_any_box().downcast::<BatchResult>()?),
StructType::Capability => Ok(from.as_any_box().downcast::<Capability>()?),
StructType::ClusterComputeResourceClusterConfigResult => Ok(from.as_any_box().downcast::<ClusterComputeResourceClusterConfigResult>()?),
StructType::ClusterComputeResourceCryptoModePolicy => Ok(from.as_any_box().downcast::<ClusterComputeResourceCryptoModePolicy>()?),
StructType::ClusterComputeResourceDvsSetting => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsSetting>()?),
StructType::ClusterComputeResourceDvsSettingDvPortgroupToServiceMapping => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsSettingDvPortgroupToServiceMapping>()?),
StructType::ClusterComputeResourceDvsProfile => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsProfile>()?),
StructType::ClusterComputeResourceDvsProfileDvPortgroupSpecToServiceMapping => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsProfileDvPortgroupSpecToServiceMapping>()?),
StructType::ClusterComputeResourceHciConfigInfo => Ok(from.as_any_box().downcast::<ClusterComputeResourceHciConfigInfo>()?),
StructType::ClusterComputeResourceHciConfigSpec => Ok(from.as_any_box().downcast::<ClusterComputeResourceHciConfigSpec>()?),
StructType::ClusterComputeResourceHostConfigurationInput => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostConfigurationInput>()?),
StructType::ClusterComputeResourceHostConfigurationProfile => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostConfigurationProfile>()?),
StructType::ClusterComputeResourceHostEvacuationInfo => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostEvacuationInfo>()?),
StructType::ClusterComputeResourceHostVmkNicInfo => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostVmkNicInfo>()?),
StructType::ClusterComputeResourceMaintenanceInfo => Ok(from.as_any_box().downcast::<ClusterComputeResourceMaintenanceInfo>()?),
StructType::ClusterComputeResourceVcProfile => Ok(from.as_any_box().downcast::<ClusterComputeResourceVcProfile>()?),
StructType::ClusterComputeResourceValidationResultBase => Ok(from.as_any_box().downcast::<ClusterComputeResourceValidationResultBase>()?),
StructType::ClusterComputeResourceDvsConfigurationValidation => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsConfigurationValidation>()?),
StructType::ClusterComputeResourceHostConfigurationValidation => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostConfigurationValidation>()?),
StructType::VsanClusterConfigPrecheckItem => Ok(from.as_any_box().downcast::<VsanClusterConfigPrecheckItem>()?),
StructType::ClusterComputeResourceVcsSlots => Ok(from.as_any_box().downcast::<ClusterComputeResourceVcsSlots>()?),
StructType::ComputeResourceConfigInfo => Ok(from.as_any_box().downcast::<ComputeResourceConfigInfo>()?),
StructType::ClusterConfigInfoEx => Ok(from.as_any_box().downcast::<ClusterConfigInfoEx>()?),
StructType::ComputeResourceConfigSpec => Ok(from.as_any_box().downcast::<ComputeResourceConfigSpec>()?),
StructType::ClusterConfigSpecEx => Ok(from.as_any_box().downcast::<ClusterConfigSpecEx>()?),
StructType::ComputeResourceHostSpbmLicenseInfo => Ok(from.as_any_box().downcast::<ComputeResourceHostSpbmLicenseInfo>()?),
StructType::ComputeResourceHostSeedSpec => Ok(from.as_any_box().downcast::<ComputeResourceHostSeedSpec>()?),
StructType::ComputeResourceHostSeedSpecSingleHostSpec => Ok(from.as_any_box().downcast::<ComputeResourceHostSeedSpecSingleHostSpec>()?),
StructType::ComputeResourceSummary => Ok(from.as_any_box().downcast::<ComputeResourceSummary>()?),
StructType::ClusterComputeResourceSummary => Ok(from.as_any_box().downcast::<ClusterComputeResourceSummary>()?),
StructType::CustomFieldDef => Ok(from.as_any_box().downcast::<CustomFieldDef>()?),
StructType::CustomFieldValue => Ok(from.as_any_box().downcast::<CustomFieldValue>()?),
StructType::CustomFieldStringValue => Ok(from.as_any_box().downcast::<CustomFieldStringValue>()?),
StructType::CustomizationSpecInfo => Ok(from.as_any_box().downcast::<CustomizationSpecInfo>()?),
StructType::CustomizationSpecItem => Ok(from.as_any_box().downcast::<CustomizationSpecItem>()?),
StructType::DatacenterBasicConnectInfo => Ok(from.as_any_box().downcast::<DatacenterBasicConnectInfo>()?),
StructType::DatacenterConfigInfo => Ok(from.as_any_box().downcast::<DatacenterConfigInfo>()?),
StructType::DatacenterConfigSpec => Ok(from.as_any_box().downcast::<DatacenterConfigSpec>()?),
StructType::DatastoreCapability => Ok(from.as_any_box().downcast::<DatastoreCapability>()?),
StructType::DatastoreHostMount => Ok(from.as_any_box().downcast::<DatastoreHostMount>()?),
StructType::DatastoreInfo => Ok(from.as_any_box().downcast::<DatastoreInfo>()?),
StructType::LocalDatastoreInfo => Ok(from.as_any_box().downcast::<LocalDatastoreInfo>()?),
StructType::NasDatastoreInfo => Ok(from.as_any_box().downcast::<NasDatastoreInfo>()?),
StructType::PMemDatastoreInfo => Ok(from.as_any_box().downcast::<PMemDatastoreInfo>()?),
StructType::VmfsDatastoreInfo => Ok(from.as_any_box().downcast::<VmfsDatastoreInfo>()?),
StructType::VsanDatastoreInfo => Ok(from.as_any_box().downcast::<VsanDatastoreInfo>()?),
StructType::VvolDatastoreInfo => Ok(from.as_any_box().downcast::<VvolDatastoreInfo>()?),
StructType::DatastoreMountPathDatastorePair => Ok(from.as_any_box().downcast::<DatastoreMountPathDatastorePair>()?),
StructType::DatastoreSummary => Ok(from.as_any_box().downcast::<DatastoreSummary>()?),
StructType::DatastoreVVolContainerFailoverPair => Ok(from.as_any_box().downcast::<DatastoreVVolContainerFailoverPair>()?),
StructType::DatastoreNamespaceManagerDirectoryInfo => Ok(from.as_any_box().downcast::<DatastoreNamespaceManagerDirectoryInfo>()?),
StructType::Description => Ok(from.as_any_box().downcast::<Description>()?),
StructType::ElementDescription => Ok(from.as_any_box().downcast::<ElementDescription>()?),
StructType::EvcMode => Ok(from.as_any_box().downcast::<EvcMode>()?),
StructType::ExtendedElementDescription => Ok(from.as_any_box().downcast::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Ok(from.as_any_box().downcast::<FeatureEvcMode>()?),
StructType::OptionDef => Ok(from.as_any_box().downcast::<OptionDef>()?),
StructType::ExtendedDescription => Ok(from.as_any_box().downcast::<ExtendedDescription>()?),
StructType::MethodDescription => Ok(from.as_any_box().downcast::<MethodDescription>()?),
StructType::TypeDescription => Ok(from.as_any_box().downcast::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Ok(from.as_any_box().downcast::<ScheduledTaskDetail>()?),
StructType::DesiredSoftwareSpec => Ok(from.as_any_box().downcast::<DesiredSoftwareSpec>()?),
StructType::DesiredSoftwareSpecBaseImageSpec => Ok(from.as_any_box().downcast::<DesiredSoftwareSpecBaseImageSpec>()?),
StructType::DesiredSoftwareSpecComponentSpec => Ok(from.as_any_box().downcast::<DesiredSoftwareSpecComponentSpec>()?),
StructType::DesiredSoftwareSpecVendorAddOnSpec => Ok(from.as_any_box().downcast::<DesiredSoftwareSpecVendorAddOnSpec>()?),
StructType::DiagnosticManagerAuditRecordResult => Ok(from.as_any_box().downcast::<DiagnosticManagerAuditRecordResult>()?),
StructType::DiagnosticManagerBundleInfo => Ok(from.as_any_box().downcast::<DiagnosticManagerBundleInfo>()?),
StructType::DiagnosticManagerLogDescriptor => Ok(from.as_any_box().downcast::<DiagnosticManagerLogDescriptor>()?),
StructType::DiagnosticManagerLogHeader => Ok(from.as_any_box().downcast::<DiagnosticManagerLogHeader>()?),
StructType::DirectPathProfileManagerCapacityQuerySpec => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQuerySpec>()?),
StructType::DirectPathProfileManagerCapacityQueryByDeviceConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryByDeviceConfig>()?),
StructType::DirectPathProfileManagerCapacityQueryById => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryById>()?),
StructType::DirectPathProfileManagerCapacityQueryByName => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryByName>()?),
StructType::DirectPathProfileManagerCapacityResult => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityResult>()?),
StructType::DirectPathProfileManagerCapacityInfo => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityInfo>()?),
StructType::DirectPathProfileManagerCapacityUnknown => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityUnknown>()?),
StructType::DirectPathProfileManagerCreateSpec => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCreateSpec>()?),
StructType::DirectPathProfileManagerDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDirectPathConfig>()?),
StructType::DirectPathProfileManagerDvxDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDvxDirectPathConfig>()?),
StructType::DirectPathProfileManagerDynamicDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDynamicDirectPathConfig>()?),
StructType::DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig>()?),
StructType::DirectPathProfileManagerVmiopDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerVmiopDirectPathConfig>()?),
StructType::DirectPathProfileInfo => Ok(from.as_any_box().downcast::<DirectPathProfileInfo>()?),
StructType::DirectPathProfileManagerFilterSpec => Ok(from.as_any_box().downcast::<DirectPathProfileManagerFilterSpec>()?),
StructType::DirectPathProfileManagerTargetEntity => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetEntity>()?),
StructType::DirectPathProfileManagerTargetCluster => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetCluster>()?),
StructType::DirectPathProfileManagerTargetHost => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetHost>()?),
StructType::DirectPathProfileManagerUpdateSpec => Ok(from.as_any_box().downcast::<DirectPathProfileManagerUpdateSpec>()?),
StructType::DvsBackupRestoreCapability => Ok(from.as_any_box().downcast::<DvsBackupRestoreCapability>()?),
StructType::DvsCapability => Ok(from.as_any_box().downcast::<DvsCapability>()?),
StructType::DvsConfigInfo => Ok(from.as_any_box().downcast::<DvsConfigInfo>()?),
StructType::VMwareDvsConfigInfo => Ok(from.as_any_box().downcast::<VMwareDvsConfigInfo>()?),
StructType::DvsConfigSpec => Ok(from.as_any_box().downcast::<DvsConfigSpec>()?),
StructType::VMwareDvsConfigSpec => Ok(from.as_any_box().downcast::<VMwareDvsConfigSpec>()?),
StructType::DvsContactInfo => Ok(from.as_any_box().downcast::<DvsContactInfo>()?),
StructType::DvsCreateSpec => Ok(from.as_any_box().downcast::<DvsCreateSpec>()?),
StructType::DvsFeatureCapability => Ok(from.as_any_box().downcast::<DvsFeatureCapability>()?),
StructType::VMwareDvsFeatureCapability => Ok(from.as_any_box().downcast::<VMwareDvsFeatureCapability>()?),
StructType::DvsHealthCheckConfig => Ok(from.as_any_box().downcast::<DvsHealthCheckConfig>()?),
StructType::VMwareDvsHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsVlanMtuHealthCheckConfig>()?),
StructType::DvsHealthCheckCapability => Ok(from.as_any_box().downcast::<DvsHealthCheckCapability>()?),
StructType::VMwareDvsHealthCheckCapability => Ok(from.as_any_box().downcast::<VMwareDvsHealthCheckCapability>()?),
StructType::DvsHostInfrastructureTrafficResource => Ok(from.as_any_box().downcast::<DvsHostInfrastructureTrafficResource>()?),
StructType::DvsHostInfrastructureTrafficResourceAllocation => Ok(from.as_any_box().downcast::<DvsHostInfrastructureTrafficResourceAllocation>()?),
StructType::DvsNetworkResourceManagementCapability => Ok(from.as_any_box().downcast::<DvsNetworkResourceManagementCapability>()?),
StructType::DvsResourceRuntimeInfo => Ok(from.as_any_box().downcast::<DvsResourceRuntimeInfo>()?),
StructType::DvsRollbackCapability => Ok(from.as_any_box().downcast::<DvsRollbackCapability>()?),
StructType::DvsRuntimeInfo => Ok(from.as_any_box().downcast::<DvsRuntimeInfo>()?),
StructType::DvsSummary => Ok(from.as_any_box().downcast::<DvsSummary>()?),
StructType::DvsPolicy => Ok(from.as_any_box().downcast::<DvsPolicy>()?),
StructType::DvsUplinkPortPolicy => Ok(from.as_any_box().downcast::<DvsUplinkPortPolicy>()?),
StructType::DvsNameArrayUplinkPortPolicy => Ok(from.as_any_box().downcast::<DvsNameArrayUplinkPortPolicy>()?),
StructType::EnumDescription => Ok(from.as_any_box().downcast::<EnumDescription>()?),
StructType::EnvironmentBrowserConfigOptionQuerySpec => Ok(from.as_any_box().downcast::<EnvironmentBrowserConfigOptionQuerySpec>()?),
StructType::Extension => Ok(from.as_any_box().downcast::<Extension>()?),
StructType::ExtensionClientInfo => Ok(from.as_any_box().downcast::<ExtensionClientInfo>()?),
StructType::ExtensionEventTypeInfo => Ok(from.as_any_box().downcast::<ExtensionEventTypeInfo>()?),
StructType::ExtensionFaultTypeInfo => Ok(from.as_any_box().downcast::<ExtensionFaultTypeInfo>()?),
StructType::ExtensionHealthInfo => Ok(from.as_any_box().downcast::<ExtensionHealthInfo>()?),
StructType::ExtensionOvfConsumerInfo => Ok(from.as_any_box().downcast::<ExtensionOvfConsumerInfo>()?),
StructType::ExtensionPrivilegeInfo => Ok(from.as_any_box().downcast::<ExtensionPrivilegeInfo>()?),
StructType::ExtensionResourceInfo => Ok(from.as_any_box().downcast::<ExtensionResourceInfo>()?),
StructType::ExtensionServerInfo => Ok(from.as_any_box().downcast::<ExtensionServerInfo>()?),
StructType::ExtensionTaskTypeInfo => Ok(from.as_any_box().downcast::<ExtensionTaskTypeInfo>()?),
StructType::ExtensionManagerIpAllocationUsage => Ok(from.as_any_box().downcast::<ExtensionManagerIpAllocationUsage>()?),
StructType::FaultsByHost => Ok(from.as_any_box().downcast::<FaultsByHost>()?),
StructType::FaultsByVm => Ok(from.as_any_box().downcast::<FaultsByVm>()?),
StructType::FileLockInfo => Ok(from.as_any_box().downcast::<FileLockInfo>()?),
StructType::FileLockInfoResult => Ok(from.as_any_box().downcast::<FileLockInfoResult>()?),
StructType::FolderBatchAddHostsToClusterResult => Ok(from.as_any_box().downcast::<FolderBatchAddHostsToClusterResult>()?),
StructType::FolderBatchAddStandaloneHostsResult => Ok(from.as_any_box().downcast::<FolderBatchAddStandaloneHostsResult>()?),
StructType::FolderExternallyManagedFolderInfo => Ok(from.as_any_box().downcast::<FolderExternallyManagedFolderInfo>()?),
StructType::FolderFailedHostResult => Ok(from.as_any_box().downcast::<FolderFailedHostResult>()?),
StructType::FolderNewHostSpec => Ok(from.as_any_box().downcast::<FolderNewHostSpec>()?),
StructType::HbrManagerReplicationVmInfo => Ok(from.as_any_box().downcast::<HbrManagerReplicationVmInfo>()?),
StructType::ReplicationVmProgressInfo => Ok(from.as_any_box().downcast::<ReplicationVmProgressInfo>()?),
StructType::HbrManagerVmReplicationCapability => Ok(from.as_any_box().downcast::<HbrManagerVmReplicationCapability>()?),
StructType::HbrReplicationTargetSpec => Ok(from.as_any_box().downcast::<HbrReplicationTargetSpec>()?),
StructType::HbrTargetSpecReplacement => Ok(from.as_any_box().downcast::<HbrTargetSpecReplacement>()?),
StructType::HbrTargetSpec => Ok(from.as_any_box().downcast::<HbrTargetSpec>()?),
StructType::HealthUpdate => Ok(from.as_any_box().downcast::<HealthUpdate>()?),
StructType::HealthUpdateInfo => Ok(from.as_any_box().downcast::<HealthUpdateInfo>()?),
StructType::PerfInterval => Ok(from.as_any_box().downcast::<PerfInterval>()?),
StructType::HostServiceTicket => Ok(from.as_any_box().downcast::<HostServiceTicket>()?),
StructType::HostSystemComplianceCheckState => Ok(from.as_any_box().downcast::<HostSystemComplianceCheckState>()?),
StructType::HostSystemReconnectSpec => Ok(from.as_any_box().downcast::<HostSystemReconnectSpec>()?),
StructType::HostSystemRemediationState => Ok(from.as_any_box().downcast::<HostSystemRemediationState>()?),
StructType::HttpNfcLeaseCapabilities => Ok(from.as_any_box().downcast::<HttpNfcLeaseCapabilities>()?),
StructType::HttpNfcLeaseDatastoreLeaseInfo => Ok(from.as_any_box().downcast::<HttpNfcLeaseDatastoreLeaseInfo>()?),
StructType::HttpNfcLeaseDeviceUrl => Ok(from.as_any_box().downcast::<HttpNfcLeaseDeviceUrl>()?),
StructType::HttpNfcLeaseHostInfo => Ok(from.as_any_box().downcast::<HttpNfcLeaseHostInfo>()?),
StructType::HttpNfcLeaseInfo => Ok(from.as_any_box().downcast::<HttpNfcLeaseInfo>()?),
StructType::HttpNfcLeaseManifestEntry => Ok(from.as_any_box().downcast::<HttpNfcLeaseManifestEntry>()?),
StructType::HttpNfcLeaseProbeResult => Ok(from.as_any_box().downcast::<HttpNfcLeaseProbeResult>()?),
StructType::HttpNfcLeaseSourceFile => Ok(from.as_any_box().downcast::<HttpNfcLeaseSourceFile>()?),
StructType::ImportSpec => Ok(from.as_any_box().downcast::<ImportSpec>()?),
StructType::VirtualAppImportSpec => Ok(from.as_any_box().downcast::<VirtualAppImportSpec>()?),
StructType::VirtualMachineImportSpec => Ok(from.as_any_box().downcast::<VirtualMachineImportSpec>()?),
StructType::InheritablePolicy => Ok(from.as_any_box().downcast::<InheritablePolicy>()?),
StructType::BoolPolicy => Ok(from.as_any_box().downcast::<BoolPolicy>()?),
StructType::IntPolicy => Ok(from.as_any_box().downcast::<IntPolicy>()?),
StructType::LongPolicy => Ok(from.as_any_box().downcast::<LongPolicy>()?),
StructType::StringPolicy => Ok(from.as_any_box().downcast::<StringPolicy>()?),
StructType::DvsFilterConfig => Ok(from.as_any_box().downcast::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfigSpec>()?),
StructType::DvsFilterPolicy => Ok(from.as_any_box().downcast::<DvsFilterPolicy>()?),
StructType::DvsTrafficShapingPolicy => Ok(from.as_any_box().downcast::<DvsTrafficShapingPolicy>()?),
StructType::DvsVendorSpecificConfig => Ok(from.as_any_box().downcast::<DvsVendorSpecificConfig>()?),
StructType::DvsFailureCriteria => Ok(from.as_any_box().downcast::<DvsFailureCriteria>()?),
StructType::DvsMacLearningPolicy => Ok(from.as_any_box().downcast::<DvsMacLearningPolicy>()?),
StructType::DvsMacManagementPolicy => Ok(from.as_any_box().downcast::<DvsMacManagementPolicy>()?),
StructType::DvsSecurityPolicy => Ok(from.as_any_box().downcast::<DvsSecurityPolicy>()?),
StructType::VMwareUplinkLacpPolicy => Ok(from.as_any_box().downcast::<VMwareUplinkLacpPolicy>()?),
StructType::VMwareUplinkPortOrderPolicy => Ok(from.as_any_box().downcast::<VMwareUplinkPortOrderPolicy>()?),
StructType::VmwareUplinkPortTeamingPolicy => Ok(from.as_any_box().downcast::<VmwareUplinkPortTeamingPolicy>()?),
StructType::VmwareDistributedVirtualSwitchVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
StructType::IoFilterInfo => Ok(from.as_any_box().downcast::<IoFilterInfo>()?),
StructType::ClusterIoFilterInfo => Ok(from.as_any_box().downcast::<ClusterIoFilterInfo>()?),
StructType::HostIoFilterInfo => Ok(from.as_any_box().downcast::<HostIoFilterInfo>()?),
StructType::IoFilterQueryIssueResult => Ok(from.as_any_box().downcast::<IoFilterQueryIssueResult>()?),
StructType::IoFilterHostIssue => Ok(from.as_any_box().downcast::<IoFilterHostIssue>()?),
StructType::IoFilterManagerSslTrust => Ok(from.as_any_box().downcast::<IoFilterManagerSslTrust>()?),
StructType::PinnedCertificate => Ok(from.as_any_box().downcast::<PinnedCertificate>()?),
StructType::UntrustedCertificate => Ok(from.as_any_box().downcast::<UntrustedCertificate>()?),
StructType::IpPoolManagerIpAllocation => Ok(from.as_any_box().downcast::<IpPoolManagerIpAllocation>()?),
StructType::KeyValue => Ok(from.as_any_box().downcast::<KeyValue>()?),
StructType::LatencySensitivity => Ok(from.as_any_box().downcast::<LatencySensitivity>()?),
StructType::LicenseAssignmentManagerLicenseAssignment => Ok(from.as_any_box().downcast::<LicenseAssignmentManagerLicenseAssignment>()?),
StructType::LicenseAvailabilityInfo => Ok(from.as_any_box().downcast::<LicenseAvailabilityInfo>()?),
StructType::LicenseDiagnostics => Ok(from.as_any_box().downcast::<LicenseDiagnostics>()?),
StructType::LicenseManagerEvaluationInfo => Ok(from.as_any_box().downcast::<LicenseManagerEvaluationInfo>()?),
StructType::LicenseFeatureInfo => Ok(from.as_any_box().downcast::<LicenseFeatureInfo>()?),
StructType::HostLicensableResourceInfo => Ok(from.as_any_box().downcast::<HostLicensableResourceInfo>()?),
StructType::LicenseManagerLicenseInfo => Ok(from.as_any_box().downcast::<LicenseManagerLicenseInfo>()?),
StructType::LicenseSource => Ok(from.as_any_box().downcast::<LicenseSource>()?),
StructType::EvaluationLicenseSource => Ok(from.as_any_box().downcast::<EvaluationLicenseSource>()?),
StructType::LicenseServerSource => Ok(from.as_any_box().downcast::<LicenseServerSource>()?),
StructType::LocalLicenseSource => Ok(from.as_any_box().downcast::<LocalLicenseSource>()?),
StructType::LicenseUsageInfo => Ok(from.as_any_box().downcast::<LicenseUsageInfo>()?),
StructType::LicenseReservationInfo => Ok(from.as_any_box().downcast::<LicenseReservationInfo>()?),
StructType::LocalizationManagerMessageCatalog => Ok(from.as_any_box().downcast::<LocalizationManagerMessageCatalog>()?),
StructType::NegatableExpression => Ok(from.as_any_box().downcast::<NegatableExpression>()?),
StructType::IntExpression => Ok(from.as_any_box().downcast::<IntExpression>()?),
StructType::IpAddress => Ok(from.as_any_box().downcast::<IpAddress>()?),
StructType::IpRange => Ok(from.as_any_box().downcast::<IpRange>()?),
StructType::SingleIp => Ok(from.as_any_box().downcast::<SingleIp>()?),
StructType::MacAddress => Ok(from.as_any_box().downcast::<MacAddress>()?),
StructType::MacRange => Ok(from.as_any_box().downcast::<MacRange>()?),
StructType::SingleMac => Ok(from.as_any_box().downcast::<SingleMac>()?),
StructType::StringExpression => Ok(from.as_any_box().downcast::<StringExpression>()?),
StructType::DvsIpPort => Ok(from.as_any_box().downcast::<DvsIpPort>()?),
StructType::DvsIpPortRange => Ok(from.as_any_box().downcast::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Ok(from.as_any_box().downcast::<DvsSingleIpPort>()?),
StructType::NetworkSummary => Ok(from.as_any_box().downcast::<NetworkSummary>()?),
StructType::OpaqueNetworkSummary => Ok(from.as_any_box().downcast::<OpaqueNetworkSummary>()?),
StructType::NumericRange => Ok(from.as_any_box().downcast::<NumericRange>()?),
StructType::OpaqueNetworkCapability => Ok(from.as_any_box().downcast::<OpaqueNetworkCapability>()?),
StructType::OvfConsumerOstNode => Ok(from.as_any_box().downcast::<OvfConsumerOstNode>()?),
StructType::OvfConsumerOvfSection => Ok(from.as_any_box().downcast::<OvfConsumerOvfSection>()?),
StructType::OvfManagerCommonParams => Ok(from.as_any_box().downcast::<OvfManagerCommonParams>()?),
StructType::OvfCreateImportSpecParams => Ok(from.as_any_box().downcast::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Ok(from.as_any_box().downcast::<OvfImportParams>()?),
StructType::OvfParseDescriptorParams => Ok(from.as_any_box().downcast::<OvfParseDescriptorParams>()?),
StructType::OvfValidateHostParams => Ok(from.as_any_box().downcast::<OvfValidateHostParams>()?),
StructType::OvfCreateDescriptorParams => Ok(from.as_any_box().downcast::<OvfCreateDescriptorParams>()?),
StructType::OvfCreateDescriptorResult => Ok(from.as_any_box().downcast::<OvfCreateDescriptorResult>()?),
StructType::OvfCreateImportSpecResult => Ok(from.as_any_box().downcast::<OvfCreateImportSpecResult>()?),
StructType::OvfDatastoreMapping => Ok(from.as_any_box().downcast::<OvfDatastoreMapping>()?),
StructType::OvfDeploymentOption => Ok(from.as_any_box().downcast::<OvfDeploymentOption>()?),
StructType::OvfFileItem => Ok(from.as_any_box().downcast::<OvfFileItem>()?),
StructType::OvfNetworkInfo => Ok(from.as_any_box().downcast::<OvfNetworkInfo>()?),
StructType::OvfNetworkMapping => Ok(from.as_any_box().downcast::<OvfNetworkMapping>()?),
StructType::OvfFile => Ok(from.as_any_box().downcast::<OvfFile>()?),
StructType::OvfOptionInfo => Ok(from.as_any_box().downcast::<OvfOptionInfo>()?),
StructType::OvfParseDescriptorResult => Ok(from.as_any_box().downcast::<OvfParseDescriptorResult>()?),
StructType::OvfResourceMap => Ok(from.as_any_box().downcast::<OvfResourceMap>()?),
StructType::OvfStorageProfileMapping => Ok(from.as_any_box().downcast::<OvfStorageProfileMapping>()?),
StructType::OvfValidateHostResult => Ok(from.as_any_box().downcast::<OvfValidateHostResult>()?),
StructType::PasswordField => Ok(from.as_any_box().downcast::<PasswordField>()?),
StructType::PerformanceDescription => Ok(from.as_any_box().downcast::<PerformanceDescription>()?),
StructType::PerfCompositeMetric => Ok(from.as_any_box().downcast::<PerfCompositeMetric>()?),
StructType::PerfCounterInfo => Ok(from.as_any_box().downcast::<PerfCounterInfo>()?),
StructType::PerformanceManagerCounterLevelMapping => Ok(from.as_any_box().downcast::<PerformanceManagerCounterLevelMapping>()?),
StructType::PerfEntityMetricBase => Ok(from.as_any_box().downcast::<PerfEntityMetricBase>()?),
StructType::PerfEntityMetric => Ok(from.as_any_box().downcast::<PerfEntityMetric>()?),
StructType::PerfEntityMetricCsv => Ok(from.as_any_box().downcast::<PerfEntityMetricCsv>()?),
StructType::PerfMetricId => Ok(from.as_any_box().downcast::<PerfMetricId>()?),
StructType::PerfMetricSeries => Ok(from.as_any_box().downcast::<PerfMetricSeries>()?),
StructType::PerfMetricIntSeries => Ok(from.as_any_box().downcast::<PerfMetricIntSeries>()?),
StructType::PerfMetricSeriesCsv => Ok(from.as_any_box().downcast::<PerfMetricSeriesCsv>()?),
StructType::PerfProviderSummary => Ok(from.as_any_box().downcast::<PerfProviderSummary>()?),
StructType::PerfQuerySpec => Ok(from.as_any_box().downcast::<PerfQuerySpec>()?),
StructType::PerfSampleInfo => Ok(from.as_any_box().downcast::<PerfSampleInfo>()?),
StructType::PrivilegePolicyDef => Ok(from.as_any_box().downcast::<PrivilegePolicyDef>()?),
StructType::ResourceAllocationInfo => Ok(from.as_any_box().downcast::<ResourceAllocationInfo>()?),
StructType::ResourceAllocationOption => Ok(from.as_any_box().downcast::<ResourceAllocationOption>()?),
StructType::ResourceConfigOption => Ok(from.as_any_box().downcast::<ResourceConfigOption>()?),
StructType::ResourceConfigSpec => Ok(from.as_any_box().downcast::<ResourceConfigSpec>()?),
StructType::DatabaseSizeEstimate => Ok(from.as_any_box().downcast::<DatabaseSizeEstimate>()?),
StructType::DatabaseSizeParam => Ok(from.as_any_box().downcast::<DatabaseSizeParam>()?),
StructType::InventoryDescription => Ok(from.as_any_box().downcast::<InventoryDescription>()?),
StructType::PerformanceStatisticsDescription => Ok(from.as_any_box().downcast::<PerformanceStatisticsDescription>()?),
StructType::ResourcePoolResourceUsage => Ok(from.as_any_box().downcast::<ResourcePoolResourceUsage>()?),
StructType::ResourcePoolRuntimeInfo => Ok(from.as_any_box().downcast::<ResourcePoolRuntimeInfo>()?),
StructType::ResourcePoolSummary => Ok(from.as_any_box().downcast::<ResourcePoolSummary>()?),
StructType::VirtualAppSummary => Ok(from.as_any_box().downcast::<VirtualAppSummary>()?),
StructType::ResourcePoolQuickStats => Ok(from.as_any_box().downcast::<ResourcePoolQuickStats>()?),
StructType::SddcBase => Ok(from.as_any_box().downcast::<SddcBase>()?),
StructType::VimVsanReconfigSpec => Ok(from.as_any_box().downcast::<VimVsanReconfigSpec>()?),
StructType::SelectionSet => Ok(from.as_any_box().downcast::<SelectionSet>()?),
StructType::DvPortgroupSelection => Ok(from.as_any_box().downcast::<DvPortgroupSelection>()?),
StructType::DvsSelection => Ok(from.as_any_box().downcast::<DvsSelection>()?),
StructType::HostVMotionCompatibility => Ok(from.as_any_box().downcast::<HostVMotionCompatibility>()?),
StructType::ProductComponentInfo => Ok(from.as_any_box().downcast::<ProductComponentInfo>()?),
StructType::ServiceContent => Ok(from.as_any_box().downcast::<ServiceContent>()?),
StructType::ServiceLocator => Ok(from.as_any_box().downcast::<ServiceLocator>()?),
StructType::ServiceLocatorCredential => Ok(from.as_any_box().downcast::<ServiceLocatorCredential>()?),
StructType::ServiceLocatorNamePassword => Ok(from.as_any_box().downcast::<ServiceLocatorNamePassword>()?),
StructType::ServiceLocatorSamlCredential => Ok(from.as_any_box().downcast::<ServiceLocatorSamlCredential>()?),
StructType::ServiceManagerServiceInfo => Ok(from.as_any_box().downcast::<ServiceManagerServiceInfo>()?),
StructType::SessionManagerGenericServiceTicket => Ok(from.as_any_box().downcast::<SessionManagerGenericServiceTicket>()?),
StructType::SessionManagerLocalTicket => Ok(from.as_any_box().downcast::<SessionManagerLocalTicket>()?),
StructType::SessionManagerServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerServiceRequestSpec>()?),
StructType::SessionManagerHttpServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerHttpServiceRequestSpec>()?),
StructType::SessionManagerVmomiServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerVmomiServiceRequestSpec>()?),
StructType::SharesInfo => Ok(from.as_any_box().downcast::<SharesInfo>()?),
StructType::SharesOption => Ok(from.as_any_box().downcast::<SharesOption>()?),
StructType::SiteInfo => Ok(from.as_any_box().downcast::<SiteInfo>()?),
StructType::StoragePodSummary => Ok(from.as_any_box().downcast::<StoragePodSummary>()?),
StructType::StorageIoAllocationInfo => Ok(from.as_any_box().downcast::<StorageIoAllocationInfo>()?),
StructType::StorageIoAllocationOption => Ok(from.as_any_box().downcast::<StorageIoAllocationOption>()?),
StructType::StorageIormInfo => Ok(from.as_any_box().downcast::<StorageIormInfo>()?),
StructType::StorageIormConfigOption => Ok(from.as_any_box().downcast::<StorageIormConfigOption>()?),
StructType::StorageIormConfigSpec => Ok(from.as_any_box().downcast::<StorageIormConfigSpec>()?),
StructType::PodStorageDrsEntry => Ok(from.as_any_box().downcast::<PodStorageDrsEntry>()?),
StructType::StoragePerformanceSummary => Ok(from.as_any_box().downcast::<StoragePerformanceSummary>()?),
StructType::StorageResourceManagerStorageProfileStatistics => Ok(from.as_any_box().downcast::<StorageResourceManagerStorageProfileStatistics>()?),
StructType::Tag => Ok(from.as_any_box().downcast::<Tag>()?),
StructType::TaskDescription => Ok(from.as_any_box().downcast::<TaskDescription>()?),
StructType::TaskFilterSpec => Ok(from.as_any_box().downcast::<TaskFilterSpec>()?),
StructType::TaskFilterSpecByEntity => Ok(from.as_any_box().downcast::<TaskFilterSpecByEntity>()?),
StructType::TaskFilterSpecByTime => Ok(from.as_any_box().downcast::<TaskFilterSpecByTime>()?),
StructType::TaskFilterSpecByUsername => Ok(from.as_any_box().downcast::<TaskFilterSpecByUsername>()?),
StructType::TaskInfo => Ok(from.as_any_box().downcast::<TaskInfo>()?),
StructType::TaskInfoFilterSpec => Ok(from.as_any_box().downcast::<TaskInfoFilterSpec>()?),
StructType::TaskInfoFilterSpecFilterTaskResults => Ok(from.as_any_box().downcast::<TaskInfoFilterSpecFilterTaskResults>()?),
StructType::TaskManagerTaskViewSpec => Ok(from.as_any_box().downcast::<TaskManagerTaskViewSpec>()?),
StructType::TaskManagerViewByStartId => Ok(from.as_any_box().downcast::<TaskManagerViewByStartId>()?),
StructType::TaskReason => Ok(from.as_any_box().downcast::<TaskReason>()?),
StructType::TaskReasonAlarm => Ok(from.as_any_box().downcast::<TaskReasonAlarm>()?),
StructType::TaskReasonSchedule => Ok(from.as_any_box().downcast::<TaskReasonSchedule>()?),
StructType::TaskReasonSystem => Ok(from.as_any_box().downcast::<TaskReasonSystem>()?),
StructType::TaskReasonUser => Ok(from.as_any_box().downcast::<TaskReasonUser>()?),
StructType::UpdateVirtualMachineFilesResult => Ok(from.as_any_box().downcast::<UpdateVirtualMachineFilesResult>()?),
StructType::UpdateVirtualMachineFilesResultFailedVmFileInfo => Ok(from.as_any_box().downcast::<UpdateVirtualMachineFilesResultFailedVmFileInfo>()?),
StructType::UserSearchResult => Ok(from.as_any_box().downcast::<UserSearchResult>()?),
StructType::PosixUserSearchResult => Ok(from.as_any_box().downcast::<PosixUserSearchResult>()?),
StructType::UserSession => Ok(from.as_any_box().downcast::<UserSession>()?),
StructType::VVolVmConfigFileUpdateResult => Ok(from.as_any_box().downcast::<VVolVmConfigFileUpdateResult>()?),
StructType::VVolVmConfigFileUpdateResultFailedVmConfigFileInfo => Ok(from.as_any_box().downcast::<VVolVmConfigFileUpdateResultFailedVmConfigFileInfo>()?),
StructType::VasaStorageArray => Ok(from.as_any_box().downcast::<VasaStorageArray>()?),
StructType::VasaStorageArrayDiscoveryFcTransport => Ok(from.as_any_box().downcast::<VasaStorageArrayDiscoveryFcTransport>()?),
StructType::VasaStorageArrayDiscoveryIpTransport => Ok(from.as_any_box().downcast::<VasaStorageArrayDiscoveryIpTransport>()?),
StructType::VasaStorageArrayDiscoverySvcInfo => Ok(from.as_any_box().downcast::<VasaStorageArrayDiscoverySvcInfo>()?),
StructType::VasaProviderContainerSpec => Ok(from.as_any_box().downcast::<VasaProviderContainerSpec>()?),
StructType::VimVasaProvider => Ok(from.as_any_box().downcast::<VimVasaProvider>()?),
StructType::VimVasaProviderStatePerArray => Ok(from.as_any_box().downcast::<VimVasaProviderStatePerArray>()?),
StructType::VimVasaProviderVirtualHostConfig => Ok(from.as_any_box().downcast::<VimVasaProviderVirtualHostConfig>()?),
StructType::VimVasaProviderInfo => Ok(from.as_any_box().downcast::<VimVasaProviderInfo>()?),
StructType::VirtualAppLinkInfo => Ok(from.as_any_box().downcast::<VirtualAppLinkInfo>()?),
StructType::VirtualDiskSpec => Ok(from.as_any_box().downcast::<VirtualDiskSpec>()?),
StructType::DeviceBackedVirtualDiskSpec => Ok(from.as_any_box().downcast::<DeviceBackedVirtualDiskSpec>()?),
StructType::FileBackedVirtualDiskSpec => Ok(from.as_any_box().downcast::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Ok(from.as_any_box().downcast::<SeSparseVirtualDiskSpec>()?),
StructType::VirtualMachineConnection => Ok(from.as_any_box().downcast::<VirtualMachineConnection>()?),
StructType::VirtualMachineMksConnection => Ok(from.as_any_box().downcast::<VirtualMachineMksConnection>()?),
StructType::DiskChangeInfo => Ok(from.as_any_box().downcast::<DiskChangeInfo>()?),
StructType::DiskChangeExtent => Ok(from.as_any_box().downcast::<DiskChangeExtent>()?),
StructType::VirtualMachineDisplayTopology => Ok(from.as_any_box().downcast::<VirtualMachineDisplayTopology>()?),
StructType::VirtualMachineMksTicket => Ok(from.as_any_box().downcast::<VirtualMachineMksTicket>()?),
StructType::StorageRequirement => Ok(from.as_any_box().downcast::<StorageRequirement>()?),
StructType::VirtualMachineTicket => Ok(from.as_any_box().downcast::<VirtualMachineTicket>()?),
StructType::VirtualMachineWipeResult => Ok(from.as_any_box().downcast::<VirtualMachineWipeResult>()?),
StructType::VsanComparator => Ok(from.as_any_box().downcast::<VsanComparator>()?),
StructType::VsanJsonComparator => Ok(from.as_any_box().downcast::<VsanJsonComparator>()?),
StructType::VsanNestJsonComparator => Ok(from.as_any_box().downcast::<VsanNestJsonComparator>()?),
StructType::VsanDataObfuscationRule => Ok(from.as_any_box().downcast::<VsanDataObfuscationRule>()?),
StructType::VsanJsonFilterRule => Ok(from.as_any_box().downcast::<VsanJsonFilterRule>()?),
StructType::VsanMassCollectorPropertyParams => Ok(from.as_any_box().downcast::<VsanMassCollectorPropertyParams>()?),
StructType::VsanMassCollectorSpec => Ok(from.as_any_box().downcast::<VsanMassCollectorSpec>()?),
StructType::VsanObjectTypeRule => Ok(from.as_any_box().downcast::<VsanObjectTypeRule>()?),
StructType::VsanRegexBasedRule => Ok(from.as_any_box().downcast::<VsanRegexBasedRule>()?),
StructType::VsanResourceConstraint => Ok(from.as_any_box().downcast::<VsanResourceConstraint>()?),
StructType::VsanCompositeConstraint => Ok(from.as_any_box().downcast::<VsanCompositeConstraint>()?),
StructType::VsanPropertyConstraint => Ok(from.as_any_box().downcast::<VsanPropertyConstraint>()?),
StructType::VsanUpgradeSystemNetworkPartitionInfo => Ok(from.as_any_box().downcast::<VsanUpgradeSystemNetworkPartitionInfo>()?),
StructType::VsanUpgradeSystemPreflightCheckIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemPreflightCheckIssue>()?),
StructType::VsanUpgradeSystemApiBrokenIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemApiBrokenIssue>()?),
StructType::VsanUpgradeSystemAutoClaimEnabledOnHostsIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemAutoClaimEnabledOnHostsIssue>()?),
StructType::VsanUpgradeSystemHostsDisconnectedIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemHostsDisconnectedIssue>()?),
StructType::VsanUpgradeSystemMissingHostsInClusterIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemMissingHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemNetworkPartitionIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemNetworkPartitionIssue>()?),
StructType::VsanUpgradeSystemNotEnoughFreeCapacityIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemNotEnoughFreeCapacityIssue>()?),
StructType::VsanUpgradeSystemRogueHostsInClusterIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemRogueHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanUpgradeSystemWrongEsxVersionIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemWrongEsxVersionIssue>()?),
StructType::VsanBrokenDiskChainIssue => Ok(from.as_any_box().downcast::<VsanBrokenDiskChainIssue>()?),
StructType::VsanDisallowDataMovementIssue => Ok(from.as_any_box().downcast::<VsanDisallowDataMovementIssue>()?),
StructType::VsanDisallowEvacuateDataIssue => Ok(from.as_any_box().downcast::<VsanDisallowEvacuateDataIssue>()?),
StructType::VsanDiskUnhealthIssue => Ok(from.as_any_box().downcast::<VsanDiskUnhealthIssue>()?),
StructType::VsanHigherObjectsPresentDuringDowngradeIssue => Ok(from.as_any_box().downcast::<VsanHigherObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanHostPropertyRetrieveIssue => Ok(from.as_any_box().downcast::<VsanHostPropertyRetrieveIssue>()?),
StructType::VsanHostWithHybridDiskgroupIssue => Ok(from.as_any_box().downcast::<VsanHostWithHybridDiskgroupIssue>()?),
StructType::VsanHostsCompressionOnlyNotSupported => Ok(from.as_any_box().downcast::<VsanHostsCompressionOnlyNotSupported>()?),
StructType::VsanMixedEsxVersionInClientIssue => Ok(from.as_any_box().downcast::<VsanMixedEsxVersionInClientIssue>()?),
StructType::VsanMixedEsxVersionIssue => Ok(from.as_any_box().downcast::<VsanMixedEsxVersionIssue>()?),
StructType::VsanObjectInaccessibleIssue => Ok(from.as_any_box().downcast::<VsanObjectInaccessibleIssue>()?),
StructType::VsanObjectPolicyIssue => Ok(from.as_any_box().downcast::<VsanObjectPolicyIssue>()?),
StructType::VsanRemoteClusterNotCompatible => Ok(from.as_any_box().downcast::<VsanRemoteClusterNotCompatible>()?),
StructType::VsanUnknownScanIssue => Ok(from.as_any_box().downcast::<VsanUnknownScanIssue>()?),
StructType::VsanUnsupportedHighDiskVersionIssue => Ok(from.as_any_box().downcast::<VsanUnsupportedHighDiskVersionIssue>()?),
StructType::VsanUpgradeSystemPreflightCheckResult => Ok(from.as_any_box().downcast::<VsanUpgradeSystemPreflightCheckResult>()?),
StructType::VsanDiskFormatConversionCheckResult => Ok(from.as_any_box().downcast::<VsanDiskFormatConversionCheckResult>()?),
StructType::VsanUpgradeSystemUpgradeHistoryItem => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryItem>()?),
StructType::VsanUpgradeSystemUpgradeHistoryDiskGroupOp => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryDiskGroupOp>()?),
StructType::VsanUpgradeSystemUpgradeHistoryPreflightFail => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryPreflightFail>()?),
StructType::VsanUpgradeSystemUpgradeHistoryStoragePoolOp => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryStoragePoolOp>()?),
StructType::VsanUpgradeSystemUpgradeStatus => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeStatus>()?),
StructType::VsanUpgradeStatusEx => Ok(from.as_any_box().downcast::<VsanUpgradeStatusEx>()?),
StructType::Action => Ok(from.as_any_box().downcast::<Action>()?),
StructType::CreateTaskAction => Ok(from.as_any_box().downcast::<CreateTaskAction>()?),
StructType::MethodAction => Ok(from.as_any_box().downcast::<MethodAction>()?),
StructType::RunScriptAction => Ok(from.as_any_box().downcast::<RunScriptAction>()?),
StructType::SendEmailAction => Ok(from.as_any_box().downcast::<SendEmailAction>()?),
StructType::SendSnmpAction => Ok(from.as_any_box().downcast::<SendSnmpAction>()?),
StructType::MethodActionArgument => Ok(from.as_any_box().downcast::<MethodActionArgument>()?),
StructType::AlarmAction => Ok(from.as_any_box().downcast::<AlarmAction>()?),
StructType::AlarmTriggeringAction => Ok(from.as_any_box().downcast::<AlarmTriggeringAction>()?),
StructType::GroupAlarmAction => Ok(from.as_any_box().downcast::<GroupAlarmAction>()?),
StructType::AlarmDescription => Ok(from.as_any_box().downcast::<AlarmDescription>()?),
StructType::AlarmExpression => Ok(from.as_any_box().downcast::<AlarmExpression>()?),
StructType::AndAlarmExpression => Ok(from.as_any_box().downcast::<AndAlarmExpression>()?),
StructType::EventAlarmExpression => Ok(from.as_any_box().downcast::<EventAlarmExpression>()?),
StructType::MetricAlarmExpression => Ok(from.as_any_box().downcast::<MetricAlarmExpression>()?),
StructType::OrAlarmExpression => Ok(from.as_any_box().downcast::<OrAlarmExpression>()?),
StructType::StateAlarmExpression => Ok(from.as_any_box().downcast::<StateAlarmExpression>()?),
StructType::AlarmFilterSpec => Ok(from.as_any_box().downcast::<AlarmFilterSpec>()?),
StructType::AlarmSetting => Ok(from.as_any_box().downcast::<AlarmSetting>()?),
StructType::AlarmSpec => Ok(from.as_any_box().downcast::<AlarmSpec>()?),
StructType::AlarmInfo => Ok(from.as_any_box().downcast::<AlarmInfo>()?),
StructType::AlarmState => Ok(from.as_any_box().downcast::<AlarmState>()?),
StructType::AlarmTriggeringActionTransitionSpec => Ok(from.as_any_box().downcast::<AlarmTriggeringActionTransitionSpec>()?),
StructType::EventAlarmExpressionComparison => Ok(from.as_any_box().downcast::<EventAlarmExpressionComparison>()?),
StructType::ClusterAction => Ok(from.as_any_box().downcast::<ClusterAction>()?),
StructType::ClusterClusterInitialPlacementAction => Ok(from.as_any_box().downcast::<ClusterClusterInitialPlacementAction>()?),
StructType::ClusterHostInfraUpdateHaModeAction => Ok(from.as_any_box().downcast::<ClusterHostInfraUpdateHaModeAction>()?),
StructType::ClusterHostPowerAction => Ok(from.as_any_box().downcast::<ClusterHostPowerAction>()?),
StructType::ClusterInitialPlacementAction => Ok(from.as_any_box().downcast::<ClusterInitialPlacementAction>()?),
StructType::ClusterMigrationAction => Ok(from.as_any_box().downcast::<ClusterMigrationAction>()?),
StructType::PlacementAction => Ok(from.as_any_box().downcast::<PlacementAction>()?),
StructType::HbrDiskMigrationAction => Ok(from.as_any_box().downcast::<HbrDiskMigrationAction>()?),
StructType::StorageMigrationAction => Ok(from.as_any_box().downcast::<StorageMigrationAction>()?),
StructType::StoragePlacementAction => Ok(from.as_any_box().downcast::<StoragePlacementAction>()?),
StructType::ClusterActionHistory => Ok(from.as_any_box().downcast::<ClusterActionHistory>()?),
StructType::ClusterAttemptedVmInfo => Ok(from.as_any_box().downcast::<ClusterAttemptedVmInfo>()?),
StructType::ClusterPowerContext => Ok(from.as_any_box().downcast::<ClusterPowerContext>()?),
StructType::ClusterConfigInfo => Ok(from.as_any_box().downcast::<ClusterConfigInfo>()?),
StructType::ClusterConfigSpec => Ok(from.as_any_box().downcast::<ClusterConfigSpec>()?),
StructType::ClusterCryptoConfigInfo => Ok(from.as_any_box().downcast::<ClusterCryptoConfigInfo>()?),
StructType::ClusterDasAamNodeState => Ok(from.as_any_box().downcast::<ClusterDasAamNodeState>()?),
StructType::ClusterDasAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterDasAdmissionControlInfo>()?),
StructType::ClusterFailoverHostAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverHostAdmissionControlInfo>()?),
StructType::ClusterFailoverLevelAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverLevelAdmissionControlInfo>()?),
StructType::ClusterFailoverResourcesAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverResourcesAdmissionControlInfo>()?),
StructType::ClusterDasAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterDasAdmissionControlPolicy>()?),
StructType::ClusterFailoverHostAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverHostAdmissionControlPolicy>()?),
StructType::ClusterFailoverLevelAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverLevelAdmissionControlPolicy>()?),
StructType::ClusterFailoverResourcesAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverResourcesAdmissionControlPolicy>()?),
StructType::ClusterDasAdvancedRuntimeInfo => Ok(from.as_any_box().downcast::<ClusterDasAdvancedRuntimeInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfo => Ok(from.as_any_box().downcast::<ClusterDasFailoverLevelAdvancedRuntimeInfo>()?),
StructType::DasHeartbeatDatastoreInfo => Ok(from.as_any_box().downcast::<DasHeartbeatDatastoreInfo>()?),
StructType::ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo => Ok(from.as_any_box().downcast::<ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo>()?),
StructType::ClusterDasConfigInfo => Ok(from.as_any_box().downcast::<ClusterDasConfigInfo>()?),
StructType::ClusterDasData => Ok(from.as_any_box().downcast::<ClusterDasData>()?),
StructType::ClusterDasDataSummary => Ok(from.as_any_box().downcast::<ClusterDasDataSummary>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots => Ok(from.as_any_box().downcast::<ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo => Ok(from.as_any_box().downcast::<ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots => Ok(from.as_any_box().downcast::<ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots>()?),
StructType::ClusterDasFdmHostState => Ok(from.as_any_box().downcast::<ClusterDasFdmHostState>()?),
StructType::ClusterDasHostInfo => Ok(from.as_any_box().downcast::<ClusterDasHostInfo>()?),
StructType::ClusterDasAamHostInfo => Ok(from.as_any_box().downcast::<ClusterDasAamHostInfo>()?),
StructType::ClusterDasHostRecommendation => Ok(from.as_any_box().downcast::<ClusterDasHostRecommendation>()?),
StructType::ClusterDasVmConfigInfo => Ok(from.as_any_box().downcast::<ClusterDasVmConfigInfo>()?),
StructType::ClusterDasVmSettings => Ok(from.as_any_box().downcast::<ClusterDasVmSettings>()?),
StructType::ClusterDpmConfigInfo => Ok(from.as_any_box().downcast::<ClusterDpmConfigInfo>()?),
StructType::ClusterDpmHostConfigInfo => Ok(from.as_any_box().downcast::<ClusterDpmHostConfigInfo>()?),
StructType::ClusterDrsConfigInfo => Ok(from.as_any_box().downcast::<ClusterDrsConfigInfo>()?),
StructType::ClusterDrsFaults => Ok(from.as_any_box().downcast::<ClusterDrsFaults>()?),
StructType::ClusterDrsFaultsFaultsByVm => Ok(from.as_any_box().downcast::<ClusterDrsFaultsFaultsByVm>()?),
StructType::ClusterDrsFaultsFaultsByVirtualDisk => Ok(from.as_any_box().downcast::<ClusterDrsFaultsFaultsByVirtualDisk>()?),
StructType::ClusterDrsMigration => Ok(from.as_any_box().downcast::<ClusterDrsMigration>()?),
StructType::ClusterDrsRecommendation => Ok(from.as_any_box().downcast::<ClusterDrsRecommendation>()?),
StructType::ClusterDrsVmConfigInfo => Ok(from.as_any_box().downcast::<ClusterDrsVmConfigInfo>()?),
StructType::ClusterEvcManagerCheckResult => Ok(from.as_any_box().downcast::<ClusterEvcManagerCheckResult>()?),
StructType::ClusterEvcManagerEvcState => Ok(from.as_any_box().downcast::<ClusterEvcManagerEvcState>()?),
StructType::ClusterEnterMaintenanceResult => Ok(from.as_any_box().downcast::<ClusterEnterMaintenanceResult>()?),
StructType::ClusterFailoverHostAdmissionControlInfoHostStatus => Ok(from.as_any_box().downcast::<ClusterFailoverHostAdmissionControlInfoHostStatus>()?),
StructType::ClusterGroupInfo => Ok(from.as_any_box().downcast::<ClusterGroupInfo>()?),
StructType::ClusterHostGroup => Ok(from.as_any_box().downcast::<ClusterHostGroup>()?),
StructType::ClusterVmGroup => Ok(from.as_any_box().downcast::<ClusterVmGroup>()?),
StructType::ClusterHostRecommendation => Ok(from.as_any_box().downcast::<ClusterHostRecommendation>()?),
StructType::ClusterInfraUpdateHaConfigInfo => Ok(from.as_any_box().downcast::<ClusterInfraUpdateHaConfigInfo>()?),
StructType::ClusterNotAttemptedVmInfo => Ok(from.as_any_box().downcast::<ClusterNotAttemptedVmInfo>()?),
StructType::ClusterOrchestrationInfo => Ok(from.as_any_box().downcast::<ClusterOrchestrationInfo>()?),
StructType::PerformClusterPowerActionSpec => Ok(from.as_any_box().downcast::<PerformClusterPowerActionSpec>()?),
StructType::PlacementResult => Ok(from.as_any_box().downcast::<PlacementResult>()?),
StructType::PlacementSpec => Ok(from.as_any_box().downcast::<PlacementSpec>()?),
StructType::ClusterPowerOnVmResult => Ok(from.as_any_box().downcast::<ClusterPowerOnVmResult>()?),
StructType::ClusterPreemptibleVmPairInfo => Ok(from.as_any_box().downcast::<ClusterPreemptibleVmPairInfo>()?),
StructType::ClusterProactiveDrsConfigInfo => Ok(from.as_any_box().downcast::<ClusterProactiveDrsConfigInfo>()?),
StructType::QueryVsanManagedStorageSpaceUsageSpec => Ok(from.as_any_box().downcast::<QueryVsanManagedStorageSpaceUsageSpec>()?),
StructType::ClusterRecommendation => Ok(from.as_any_box().downcast::<ClusterRecommendation>()?),
StructType::ClusterResourceUsageSummary => Ok(from.as_any_box().downcast::<ClusterResourceUsageSummary>()?),
StructType::ClusterRuleInfo => Ok(from.as_any_box().downcast::<ClusterRuleInfo>()?),
StructType::ClusterAffinityRuleSpec => Ok(from.as_any_box().downcast::<ClusterAffinityRuleSpec>()?),
StructType::ClusterAntiAffinityRuleSpec => Ok(from.as_any_box().downcast::<ClusterAntiAffinityRuleSpec>()?),
StructType::ClusterDependencyRuleInfo => Ok(from.as_any_box().downcast::<ClusterDependencyRuleInfo>()?),
StructType::ClusterFtVmHostRuleInfo => Ok(from.as_any_box().downcast::<ClusterFtVmHostRuleInfo>()?),
StructType::ClusterVmHostRuleInfo => Ok(from.as_any_box().downcast::<ClusterVmHostRuleInfo>()?),
StructType::VirtualDiskAntiAffinityRuleSpec => Ok(from.as_any_box().downcast::<VirtualDiskAntiAffinityRuleSpec>()?),
StructType::VirtualDiskRuleSpec => Ok(from.as_any_box().downcast::<VirtualDiskRuleSpec>()?),
StructType::VsanSiteFaultDomain => Ok(from.as_any_box().downcast::<VsanSiteFaultDomain>()?),
StructType::VsanSiteFaultDomainConfig => Ok(from.as_any_box().downcast::<VsanSiteFaultDomainConfig>()?),
StructType::ClusterSlotPolicy => Ok(from.as_any_box().downcast::<ClusterSlotPolicy>()?),
StructType::ClusterFixedSizeSlotPolicy => Ok(from.as_any_box().downcast::<ClusterFixedSizeSlotPolicy>()?),
StructType::VsanStorageComplianceResult => Ok(from.as_any_box().downcast::<VsanStorageComplianceResult>()?),
StructType::VsanStorageOperationalStatus => Ok(from.as_any_box().downcast::<VsanStorageOperationalStatus>()?),
StructType::VsanStoragePolicyStatus => Ok(from.as_any_box().downcast::<VsanStoragePolicyStatus>()?),
StructType::ClusterSystemVMsConfigInfo => Ok(from.as_any_box().downcast::<ClusterSystemVMsConfigInfo>()?),
StructType::ClusterSystemVMsConfigSpec => Ok(from.as_any_box().downcast::<ClusterSystemVMsConfigSpec>()?),
StructType::ClusterUsageSummary => Ok(from.as_any_box().downcast::<ClusterUsageSummary>()?),
StructType::VimClusterVsanPreferredFaultDomainInfo => Ok(from.as_any_box().downcast::<VimClusterVsanPreferredFaultDomainInfo>()?),
StructType::VimClusterVsanStretchedClusterCapability => Ok(from.as_any_box().downcast::<VimClusterVsanStretchedClusterCapability>()?),
StructType::VimClusterVsanStretchedClusterFaultDomainConfig => Ok(from.as_any_box().downcast::<VimClusterVsanStretchedClusterFaultDomainConfig>()?),
StructType::VsanStretchedClusterHostVirtualApplianceStatus => Ok(from.as_any_box().downcast::<VsanStretchedClusterHostVirtualApplianceStatus>()?),
StructType::VimClusterVsanWitnessHostInfo => Ok(from.as_any_box().downcast::<VimClusterVsanWitnessHostInfo>()?),
StructType::ClusterVmComponentProtectionSettings => Ok(from.as_any_box().downcast::<ClusterVmComponentProtectionSettings>()?),
StructType::ClusterVmOrchestrationInfo => Ok(from.as_any_box().downcast::<ClusterVmOrchestrationInfo>()?),
StructType::ClusterVmReadiness => Ok(from.as_any_box().downcast::<ClusterVmReadiness>()?),
StructType::ClusterVmToolsMonitoringSettings => Ok(from.as_any_box().downcast::<ClusterVmToolsMonitoringSettings>()?),
StructType::VsanAttachToSrOperation => Ok(from.as_any_box().downcast::<VsanAttachToSrOperation>()?),
StructType::VsanCapability => Ok(from.as_any_box().downcast::<VsanCapability>()?),
StructType::VsanClusterAdvCfgSyncHostResult => Ok(from.as_any_box().downcast::<VsanClusterAdvCfgSyncHostResult>()?),
StructType::VsanClusterAdvCfgSyncResult => Ok(from.as_any_box().downcast::<VsanClusterAdvCfgSyncResult>()?),
StructType::VsanClusterBalancePerDiskInfo => Ok(from.as_any_box().downcast::<VsanClusterBalancePerDiskInfo>()?),
StructType::VsanClusterBalanceSummary => Ok(from.as_any_box().downcast::<VsanClusterBalanceSummary>()?),
StructType::VsanClusterClomdLivenessResult => Ok(from.as_any_box().downcast::<VsanClusterClomdLivenessResult>()?),
StructType::VsanClusterConfig => Ok(from.as_any_box().downcast::<VsanClusterConfig>()?),
StructType::VsanClusterCreateVmHealthTestResult => Ok(from.as_any_box().downcast::<VsanClusterCreateVmHealthTestResult>()?),
StructType::VsanClusterDitEncryptionHealthSummary => Ok(from.as_any_box().downcast::<VsanClusterDitEncryptionHealthSummary>()?),
StructType::VsanClusterEncryptionHealthSummary => Ok(from.as_any_box().downcast::<VsanClusterEncryptionHealthSummary>()?),
StructType::VsanClusterFileServiceHealthSummary => Ok(from.as_any_box().downcast::<VsanClusterFileServiceHealthSummary>()?),
StructType::VsanClusterGlobalDedupHealthSummary => Ok(from.as_any_box().downcast::<VsanClusterGlobalDedupHealthSummary>()?),
StructType::VsanClusterHclInfo => Ok(from.as_any_box().downcast::<VsanClusterHclInfo>()?),
StructType::VsanClusterHealthAction => Ok(from.as_any_box().downcast::<VsanClusterHealthAction>()?),
StructType::VsanClusterHealthCheckInfo => Ok(from.as_any_box().downcast::<VsanClusterHealthCheckInfo>()?),
StructType::VsanClusterHealthConfigs => Ok(from.as_any_box().downcast::<VsanClusterHealthConfigs>()?),
StructType::VsanClusterHealthGroup => Ok(from.as_any_box().downcast::<VsanClusterHealthGroup>()?),
StructType::VsanClusterHealthLinkBase => Ok(from.as_any_box().downcast::<VsanClusterHealthLinkBase>()?),
StructType::VsanClusterHealthLink => Ok(from.as_any_box().downcast::<VsanClusterHealthLink>()?),
StructType::VsanClusterHealthQuerySpec => Ok(from.as_any_box().downcast::<VsanClusterHealthQuerySpec>()?),
StructType::VsanClusterHealthResultBase => Ok(from.as_any_box().downcast::<VsanClusterHealthResultBase>()?),
StructType::VsanClusterHealthResultTable => Ok(from.as_any_box().downcast::<VsanClusterHealthResultTable>()?),
StructType::VsanClusterHealthResultWithRemediation => Ok(from.as_any_box().downcast::<VsanClusterHealthResultWithRemediation>()?),
StructType::VsanClusterHealthResultColumnInfo => Ok(from.as_any_box().downcast::<VsanClusterHealthResultColumnInfo>()?),
StructType::VsanClusterHealthResultKeyValuePair => Ok(from.as_any_box().downcast::<VsanClusterHealthResultKeyValuePair>()?),
StructType::VsanClusterHealthResultRow => Ok(from.as_any_box().downcast::<VsanClusterHealthResultRow>()?),
StructType::VsanClusterHealthSummary => Ok(from.as_any_box().downcast::<VsanClusterHealthSummary>()?),
StructType::VsanClusterHealthSystemObjectsRepairResult => Ok(from.as_any_box().downcast::<VsanClusterHealthSystemObjectsRepairResult>()?),
StructType::VsanClusterHealthSystemStatusResult => Ok(from.as_any_box().downcast::<VsanClusterHealthSystemStatusResult>()?),
StructType::VsanClusterHealthSystemVersionResult => Ok(from.as_any_box().downcast::<VsanClusterHealthSystemVersionResult>()?),
StructType::VsanClusterHealthTest => Ok(from.as_any_box().downcast::<VsanClusterHealthTest>()?),
StructType::VsanClusterHostVmknicMapping => Ok(from.as_any_box().downcast::<VsanClusterHostVmknicMapping>()?),
StructType::VsanClusterLimitHealthResult => Ok(from.as_any_box().downcast::<VsanClusterLimitHealthResult>()?),
StructType::VsanClusterNetworkHealthResult => Ok(from.as_any_box().downcast::<VsanClusterNetworkHealthResult>()?),
StructType::VsanClusterNetworkLoadTestResult => Ok(from.as_any_box().downcast::<VsanClusterNetworkLoadTestResult>()?),
StructType::VsanClusterNetworkPartitionInfo => Ok(from.as_any_box().downcast::<VsanClusterNetworkPartitionInfo>()?),
StructType::VsanClusterNetworkPerfTaskSpec => Ok(from.as_any_box().downcast::<VsanClusterNetworkPerfTaskSpec>()?),
StructType::VsanClusterProactiveTestResult => Ok(from.as_any_box().downcast::<VsanClusterProactiveTestResult>()?),
StructType::VsanClusterTelemetryProxyConfig => Ok(from.as_any_box().downcast::<VsanClusterTelemetryProxyConfig>()?),
StructType::VsanClusterVMsHealthOverallResult => Ok(from.as_any_box().downcast::<VsanClusterVMsHealthOverallResult>()?),
StructType::VsanClusterVMsHealthSummaryResult => Ok(from.as_any_box().downcast::<VsanClusterVMsHealthSummaryResult>()?),
StructType::VsanClusterVmdkLoadTestResult => Ok(from.as_any_box().downcast::<VsanClusterVmdkLoadTestResult>()?),
StructType::VsanClusterWhatifHostFailuresResult => Ok(from.as_any_box().downcast::<VsanClusterWhatifHostFailuresResult>()?),
StructType::VsanConfigGeneration => Ok(from.as_any_box().downcast::<VsanConfigGeneration>()?),
StructType::VsanDataDrivenApiAction => Ok(from.as_any_box().downcast::<VsanDataDrivenApiAction>()?),
StructType::VsanDiagnosticsThreshold => Ok(from.as_any_box().downcast::<VsanDiagnosticsThreshold>()?),
StructType::VsanDiskFormatConversionSpec => Ok(from.as_any_box().downcast::<VsanDiskFormatConversionSpec>()?),
StructType::VimClusterVsanDiskMappingsConfigSpec => Ok(from.as_any_box().downcast::<VimClusterVsanDiskMappingsConfigSpec>()?),
StructType::VsanEntitySpaceUsage => Ok(from.as_any_box().downcast::<VsanEntitySpaceUsage>()?),
StructType::VimClusterVsanFaultDomainSpec => Ok(from.as_any_box().downcast::<VimClusterVsanFaultDomainSpec>()?),
StructType::VsanFaultDomainDestroySpec => Ok(from.as_any_box().downcast::<VsanFaultDomainDestroySpec>()?),
StructType::VsanFaultDomainUpdateSpec => Ok(from.as_any_box().downcast::<VsanFaultDomainUpdateSpec>()?),
StructType::VimClusterVsanFaultDomainsConfigSpec => Ok(from.as_any_box().downcast::<VimClusterVsanFaultDomainsConfigSpec>()?),
StructType::VsanHealthActionBase => Ok(from.as_any_box().downcast::<VsanHealthActionBase>()?),
StructType::VsanHealthActionSteps => Ok(from.as_any_box().downcast::<VsanHealthActionSteps>()?),
StructType::VsanHealthApiBasedAction => Ok(from.as_any_box().downcast::<VsanHealthApiBasedAction>()?),
StructType::VsanHealthCmdBasedAction => Ok(from.as_any_box().downcast::<VsanHealthCmdBasedAction>()?),
StructType::VsanHealthDataDrivenAction => Ok(from.as_any_box().downcast::<VsanHealthDataDrivenAction>()?),
StructType::VsanHealthTxtBasedAction => Ok(from.as_any_box().downcast::<VsanHealthTxtBasedAction>()?),
StructType::VsanHealthConfirmationDialog => Ok(from.as_any_box().downcast::<VsanHealthConfirmationDialog>()?),
StructType::VsanHealthCorrelation => Ok(from.as_any_box().downcast::<VsanHealthCorrelation>()?),
StructType::VsanHealthExtMgmtPreCheckResult => Ok(from.as_any_box().downcast::<VsanHealthExtMgmtPreCheckResult>()?),
StructType::VsanHealthTroubleshooting => Ok(from.as_any_box().downcast::<VsanHealthTroubleshooting>()?),
StructType::VsanHistoricalHealthQuerySpec => Ok(from.as_any_box().downcast::<VsanHistoricalHealthQuerySpec>()?),
StructType::VsanHistoricalHealthTest => Ok(from.as_any_box().downcast::<VsanHistoricalHealthTest>()?),
StructType::VsanHostClomdLivenessResult => Ok(from.as_any_box().downcast::<VsanHostClomdLivenessResult>()?),
StructType::VsanHostCreateVmHealthTestResult => Ok(from.as_any_box().downcast::<VsanHostCreateVmHealthTestResult>()?),
StructType::VimClusterVsanHostDiskMapping => Ok(from.as_any_box().downcast::<VimClusterVsanHostDiskMapping>()?),
StructType::VsanHostHealthSystemVersionResult => Ok(from.as_any_box().downcast::<VsanHostHealthSystemVersionResult>()?),
StructType::VsanIoInsightInstance => Ok(from.as_any_box().downcast::<VsanIoInsightInstance>()?),
StructType::VsanIoInsightInstanceQuerySpec => Ok(from.as_any_box().downcast::<VsanIoInsightInstanceQuerySpec>()?),
StructType::VsanIscsiHomeObjectSpec => Ok(from.as_any_box().downcast::<VsanIscsiHomeObjectSpec>()?),
StructType::VsanIscsiInitiatorGroup => Ok(from.as_any_box().downcast::<VsanIscsiInitiatorGroup>()?),
StructType::VsanIscsiLunCommonInfo => Ok(from.as_any_box().downcast::<VsanIscsiLunCommonInfo>()?),
StructType::VsanIscsiLun => Ok(from.as_any_box().downcast::<VsanIscsiLun>()?),
StructType::VsanIscsiLunSpec => Ok(from.as_any_box().downcast::<VsanIscsiLunSpec>()?),
StructType::VsanIscsiTargetAuthSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetAuthSpec>()?),
StructType::VsanIscsiTargetBasicInfo => Ok(from.as_any_box().downcast::<VsanIscsiTargetBasicInfo>()?),
StructType::VsanIscsiTargetCommonInfo => Ok(from.as_any_box().downcast::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Ok(from.as_any_box().downcast::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetSpec>()?),
StructType::VsanIscsiTargetServiceConfig => Ok(from.as_any_box().downcast::<VsanIscsiTargetServiceConfig>()?),
StructType::VsanIscsiTargetServiceSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetServiceSpec>()?),
StructType::VsanIscsiTargetServiceDefaultConfigSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetServiceDefaultConfigSpec>()?),
StructType::VsanNetworkDiagnostics => Ok(from.as_any_box().downcast::<VsanNetworkDiagnostics>()?),
StructType::VsanObjIdentityQuerySpec => Ok(from.as_any_box().downcast::<VsanObjIdentityQuerySpec>()?),
StructType::VsanClusterObjectExtAttrs => Ok(from.as_any_box().downcast::<VsanClusterObjectExtAttrs>()?),
StructType::VsanObjectExtraAttributes => Ok(from.as_any_box().downcast::<VsanObjectExtraAttributes>()?),
StructType::VsanObjectIdentity => Ok(from.as_any_box().downcast::<VsanObjectIdentity>()?),
StructType::VsanObjectIdentityAndHealth => Ok(from.as_any_box().downcast::<VsanObjectIdentityAndHealth>()?),
StructType::VsanObjectInformation => Ok(from.as_any_box().downcast::<VsanObjectInformation>()?),
StructType::VsanObjectQuerySpec => Ok(from.as_any_box().downcast::<VsanObjectQuerySpec>()?),
StructType::VsanObjectSpaceSummary => Ok(from.as_any_box().downcast::<VsanObjectSpaceSummary>()?),
StructType::VsanPerfDiagnoseQuerySpec => Ok(from.as_any_box().downcast::<VsanPerfDiagnoseQuerySpec>()?),
StructType::VsanPerfDiagnosticException => Ok(from.as_any_box().downcast::<VsanPerfDiagnosticException>()?),
StructType::VsanPerfDiagnosticResult => Ok(from.as_any_box().downcast::<VsanPerfDiagnosticResult>()?),
StructType::VsanPerfEntityMetricCsv => Ok(from.as_any_box().downcast::<VsanPerfEntityMetricCsv>()?),
StructType::VsanPerfEntityType => Ok(from.as_any_box().downcast::<VsanPerfEntityType>()?),
StructType::VsanPerfGraph => Ok(from.as_any_box().downcast::<VsanPerfGraph>()?),
StructType::VsanPerfHotspotEntitiesMetrics => Ok(from.as_any_box().downcast::<VsanPerfHotspotEntitiesMetrics>()?),
StructType::VsanPerfHotspotQuerySpec => Ok(from.as_any_box().downcast::<VsanPerfHotspotQuerySpec>()?),
StructType::VsanPerfMasterInformation => Ok(from.as_any_box().downcast::<VsanPerfMasterInformation>()?),
StructType::VsanPerfMemberInfo => Ok(from.as_any_box().downcast::<VsanPerfMemberInfo>()?),
StructType::VsanPerfMetricId => Ok(from.as_any_box().downcast::<VsanPerfMetricId>()?),
StructType::VsanPerfMetricSeriesCsv => Ok(from.as_any_box().downcast::<VsanPerfMetricSeriesCsv>()?),
StructType::VsanPerfNodeInformation => Ok(from.as_any_box().downcast::<VsanPerfNodeInformation>()?),
StructType::VsanPerfQuerySpec => Ok(from.as_any_box().downcast::<VsanPerfQuerySpec>()?),
StructType::VsanPerfThreshold => Ok(from.as_any_box().downcast::<VsanPerfThreshold>()?),
StructType::VsanPerfTimeRange => Ok(from.as_any_box().downcast::<VsanPerfTimeRange>()?),
StructType::VsanPerfTimeRangeQuerySpec => Ok(from.as_any_box().downcast::<VsanPerfTimeRangeQuerySpec>()?),
StructType::VsanPerfTopEntities => Ok(from.as_any_box().downcast::<VsanPerfTopEntities>()?),
StructType::VsanPerfTopEntity => Ok(from.as_any_box().downcast::<VsanPerfTopEntity>()?),
StructType::VsanPerfTopQuerySpec => Ok(from.as_any_box().downcast::<VsanPerfTopQuerySpec>()?),
StructType::VsanPerfsvcConfig => Ok(from.as_any_box().downcast::<VsanPerfsvcConfig>()?),
StructType::VsanRemoteClusterQuerySpec => Ok(from.as_any_box().downcast::<VsanRemoteClusterQuerySpec>()?),
StructType::VsanSpaceQuerySpec => Ok(from.as_any_box().downcast::<VsanSpaceQuerySpec>()?),
StructType::VsanSpaceUsage => Ok(from.as_any_box().downcast::<VsanSpaceUsage>()?),
StructType::VsanSpaceUsageDetailResult => Ok(from.as_any_box().downcast::<VsanSpaceUsageDetailResult>()?),
StructType::VsanSpaceUsageWithDatastoreType => Ok(from.as_any_box().downcast::<VsanSpaceUsageWithDatastoreType>()?),
StructType::VsanStorageWorkloadType => Ok(from.as_any_box().downcast::<VsanStorageWorkloadType>()?),
StructType::VsanStretchedClusterConfig => Ok(from.as_any_box().downcast::<VsanStretchedClusterConfig>()?),
StructType::VsanSyncingObjectFilter => Ok(from.as_any_box().downcast::<VsanSyncingObjectFilter>()?),
StructType::VsanUnicastAddressInfo => Ok(from.as_any_box().downcast::<VsanUnicastAddressInfo>()?),
StructType::VsanVcKmipServersHealth => Ok(from.as_any_box().downcast::<VsanVcKmipServersHealth>()?),
StructType::VsanVcLifecycleCheckResult => Ok(from.as_any_box().downcast::<VsanVcLifecycleCheckResult>()?),
StructType::VsanVcLifecycleCheckSpec => Ok(from.as_any_box().downcast::<VsanVcLifecycleCheckSpec>()?),
StructType::VsanVsanClusterPcapGroup => Ok(from.as_any_box().downcast::<VsanVsanClusterPcapGroup>()?),
StructType::VsanVsanClusterPcapResult => Ok(from.as_any_box().downcast::<VsanVsanClusterPcapResult>()?),
StructType::VsanVumSystemConfig => Ok(from.as_any_box().downcast::<VsanVumSystemConfig>()?),
StructType::VsanWhatifCapacity => Ok(from.as_any_box().downcast::<VsanWhatifCapacity>()?),
StructType::VimClusterVsanWitnessSpec => Ok(from.as_any_box().downcast::<VimClusterVsanWitnessSpec>()?),
StructType::CnsAccessControlSpec => Ok(from.as_any_box().downcast::<CnsAccessControlSpec>()?),
StructType::CnsNfsAccessControlSpec => Ok(from.as_any_box().downcast::<CnsNfsAccessControlSpec>()?),
StructType::CnsBackingObjectDetails => Ok(from.as_any_box().downcast::<CnsBackingObjectDetails>()?),
StructType::CnsBlockBackingDetails => Ok(from.as_any_box().downcast::<CnsBlockBackingDetails>()?),
StructType::CnsFileBackingDetails => Ok(from.as_any_box().downcast::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Ok(from.as_any_box().downcast::<CnsVsanFileShareBackingDetails>()?),
StructType::CnsBaseCreateSpec => Ok(from.as_any_box().downcast::<CnsBaseCreateSpec>()?),
StructType::CnsFileCreateSpec => Ok(from.as_any_box().downcast::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Ok(from.as_any_box().downcast::<CnsVsanFileCreateSpec>()?),
StructType::CnsContainerCluster => Ok(from.as_any_box().downcast::<CnsContainerCluster>()?),
StructType::CnsCursor => Ok(from.as_any_box().downcast::<CnsCursor>()?),
StructType::CnsEntityMetadata => Ok(from.as_any_box().downcast::<CnsEntityMetadata>()?),
StructType::CnsKubernetesEntityMetadata => Ok(from.as_any_box().downcast::<CnsKubernetesEntityMetadata>()?),
StructType::CnsKubernetesEntityReference => Ok(from.as_any_box().downcast::<CnsKubernetesEntityReference>()?),
StructType::CnsPlacementResult => Ok(from.as_any_box().downcast::<CnsPlacementResult>()?),
StructType::CnsQueryFilter => Ok(from.as_any_box().downcast::<CnsQueryFilter>()?),
StructType::CnsKubernetesQueryFilter => Ok(from.as_any_box().downcast::<CnsKubernetesQueryFilter>()?),
StructType::CnsQueryResult => Ok(from.as_any_box().downcast::<CnsQueryResult>()?),
StructType::CnsQuerySelection => Ok(from.as_any_box().downcast::<CnsQuerySelection>()?),
StructType::CnsSnapshotCreateSpec => Ok(from.as_any_box().downcast::<CnsSnapshotCreateSpec>()?),
StructType::CnsSnapshotDeleteSpec => Ok(from.as_any_box().downcast::<CnsSnapshotDeleteSpec>()?),
StructType::CnsSnapshotId => Ok(from.as_any_box().downcast::<CnsSnapshotId>()?),
StructType::CnsVolume => Ok(from.as_any_box().downcast::<CnsVolume>()?),
StructType::CnsVolumeAclConfigureSpec => Ok(from.as_any_box().downcast::<CnsVolumeAclConfigureSpec>()?),
StructType::CnsVolumeAttachDetachSpec => Ok(from.as_any_box().downcast::<CnsVolumeAttachDetachSpec>()?),
StructType::CnsVolumeCreateSpec => Ok(from.as_any_box().downcast::<CnsVolumeCreateSpec>()?),
StructType::CnsVolumeExtendSpec => Ok(from.as_any_box().downcast::<CnsVolumeExtendSpec>()?),
StructType::CnsVolumeId => Ok(from.as_any_box().downcast::<CnsVolumeId>()?),
StructType::CnsVolumeMetadata => Ok(from.as_any_box().downcast::<CnsVolumeMetadata>()?),
StructType::CnsVolumeMetadataUpdateSpec => Ok(from.as_any_box().downcast::<CnsVolumeMetadataUpdateSpec>()?),
StructType::CnsVolumeOperationBatchResult => Ok(from.as_any_box().downcast::<CnsVolumeOperationBatchResult>()?),
StructType::CnsVolumeOperationResult => Ok(from.as_any_box().downcast::<CnsVolumeOperationResult>()?),
StructType::CnsAsyncQueryResult => Ok(from.as_any_box().downcast::<CnsAsyncQueryResult>()?),
StructType::CnsVolumeAttachResult => Ok(from.as_any_box().downcast::<CnsVolumeAttachResult>()?),
StructType::CnsVolumeCreateResult => Ok(from.as_any_box().downcast::<CnsVolumeCreateResult>()?),
StructType::CnsVolumePolicyReconfigSpec => Ok(from.as_any_box().downcast::<CnsVolumePolicyReconfigSpec>()?),
StructType::CnsVolumeRelocateSpec => Ok(from.as_any_box().downcast::<CnsVolumeRelocateSpec>()?),
StructType::CnsBlockVolumeRelocateSpec => Ok(from.as_any_box().downcast::<CnsBlockVolumeRelocateSpec>()?),
StructType::CnsVolumeSource => Ok(from.as_any_box().downcast::<CnsVolumeSource>()?),
StructType::CnsSnapshotVolumeSource => Ok(from.as_any_box().downcast::<CnsSnapshotVolumeSource>()?),
StructType::DistributedVirtualPort => Ok(from.as_any_box().downcast::<DistributedVirtualPort>()?),
StructType::DvPortConfigInfo => Ok(from.as_any_box().downcast::<DvPortConfigInfo>()?),
StructType::DvPortConfigSpec => Ok(from.as_any_box().downcast::<DvPortConfigSpec>()?),
StructType::DvsFilterParameter => Ok(from.as_any_box().downcast::<DvsFilterParameter>()?),
StructType::DvsHostLocalPortInfo => Ok(from.as_any_box().downcast::<DvsHostLocalPortInfo>()?),
StructType::DvPortStatus => Ok(from.as_any_box().downcast::<DvPortStatus>()?),
StructType::DvPortSetting => Ok(from.as_any_box().downcast::<DvPortSetting>()?),
StructType::VMwareDvsPortSetting => Ok(from.as_any_box().downcast::<VMwareDvsPortSetting>()?),
StructType::DvPortState => Ok(from.as_any_box().downcast::<DvPortState>()?),
StructType::DvPortgroupConfigInfo => Ok(from.as_any_box().downcast::<DvPortgroupConfigInfo>()?),
StructType::DvPortgroupConfigSpec => Ok(from.as_any_box().downcast::<DvPortgroupConfigSpec>()?),
StructType::DistributedVirtualPortgroupNsxPortgroupOperationResult => Ok(from.as_any_box().downcast::<DistributedVirtualPortgroupNsxPortgroupOperationResult>()?),
StructType::DvPortgroupPolicy => Ok(from.as_any_box().downcast::<DvPortgroupPolicy>()?),
StructType::VMwareDvsPortgroupPolicy => Ok(from.as_any_box().downcast::<VMwareDvsPortgroupPolicy>()?),
StructType::DistributedVirtualPortgroupProblem => Ok(from.as_any_box().downcast::<DistributedVirtualPortgroupProblem>()?),
StructType::DistributedVirtualPortgroupInfo => Ok(from.as_any_box().downcast::<DistributedVirtualPortgroupInfo>()?),
StructType::DistributedVirtualSwitchInfo => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchInfo>()?),
StructType::DistributedVirtualSwitchManagerCompatibilityResult => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerCompatibilityResult>()?),
StructType::DvsManagerDvsConfigTarget => Ok(from.as_any_box().downcast::<DvsManagerDvsConfigTarget>()?),
StructType::DistributedVirtualSwitchManagerDvsProductSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerDvsProductSpec>()?),
StructType::DistributedVirtualSwitchManagerHostContainer => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostContainer>()?),
StructType::DistributedVirtualSwitchManagerHostDvsFilterSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostDvsFilterSpec>()?),
StructType::DistributedVirtualSwitchManagerHostArrayFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostArrayFilter>()?),
StructType::DistributedVirtualSwitchManagerHostContainerFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostContainerFilter>()?),
StructType::DistributedVirtualSwitchManagerHostDvsMembershipFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostDvsMembershipFilter>()?),
StructType::DistributedVirtualSwitchManagerImportResult => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerImportResult>()?),
StructType::DvsManagerPhysicalNicsList => Ok(from.as_any_box().downcast::<DvsManagerPhysicalNicsList>()?),
StructType::EntityBackup => Ok(from.as_any_box().downcast::<EntityBackup>()?),
StructType::EntityBackupConfig => Ok(from.as_any_box().downcast::<EntityBackupConfig>()?),
StructType::DvsFilterSpecConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecConnecteeSpec>()?),
StructType::DvsFilterSpecPnicConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecPnicConnecteeSpec>()?),
StructType::DvsFilterSpecVmConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVmConnecteeSpec>()?),
StructType::DvsFilterSpecVmknicConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVmknicConnecteeSpec>()?),
StructType::DvsFilterSpecVlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVlanSpec>()?),
StructType::DvsFilterSpecPvlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecPvlanSpec>()?),
StructType::DvsFilterSpecTrunkVlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecTrunkVlanSpec>()?),
StructType::DvsFilterSpecVlanIdSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVlanIdSpec>()?),
StructType::DistributedVirtualSwitchHostMember => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMember>()?),
StructType::DistributedVirtualSwitchHostMemberBacking => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberBacking>()?),
StructType::DistributedVirtualSwitchHostMemberPnicBacking => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberPnicBacking>()?),
StructType::DistributedVirtualSwitchHostMemberConfigInfo => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberConfigInfo>()?),
StructType::DistributedVirtualSwitchHostMemberConfigSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberConfigSpec>()?),
StructType::HostMemberHealthCheckResult => Ok(from.as_any_box().downcast::<HostMemberHealthCheckResult>()?),
StructType::HostMemberUplinkHealthCheckResult => Ok(from.as_any_box().downcast::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsVlanHealthCheckResult>()?),
StructType::VMwareDvsTeamingHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsTeamingHealthCheckResult>()?),
StructType::DistributedVirtualSwitchHostMemberHostUplinkState => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberHostUplinkState>()?),
StructType::DistributedVirtualSwitchHostMemberPnicSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberPnicSpec>()?),
StructType::HostMemberRuntimeInfo => Ok(from.as_any_box().downcast::<HostMemberRuntimeInfo>()?),
StructType::DistributedVirtualSwitchHostMemberRuntimeState => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberRuntimeState>()?),
StructType::DistributedVirtualSwitchHostMemberTransportZoneInfo => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberTransportZoneInfo>()?),
StructType::DistributedVirtualSwitchHostProductSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostProductSpec>()?),
StructType::DistributedVirtualSwitchKeyedOpaqueBlob => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchKeyedOpaqueBlob>()?),
StructType::DistributedVirtualSwitchNetworkOffloadSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchNetworkOffloadSpec>()?),
StructType::DvsNetworkResourcePool => Ok(from.as_any_box().downcast::<DvsNetworkResourcePool>()?),
StructType::DvsNetworkResourcePoolAllocationInfo => Ok(from.as_any_box().downcast::<DvsNetworkResourcePoolAllocationInfo>()?),
StructType::DvsNetworkResourcePoolConfigSpec => Ok(from.as_any_box().downcast::<DvsNetworkResourcePoolConfigSpec>()?),
StructType::DistributedVirtualSwitchPortConnectee => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchPortConnectee>()?),
StructType::DistributedVirtualSwitchPortConnection => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchPortConnection>()?),
StructType::DistributedVirtualSwitchPortCriteria => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchPortCriteria>()?),
StructType::DistributedVirtualSwitchPortStatistics => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchPortStatistics>()?),
StructType::DistributedVirtualSwitchProductSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchProductSpec>()?),
StructType::DvsTrafficRule => Ok(from.as_any_box().downcast::<DvsTrafficRule>()?),
StructType::DvsNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsNetworkRuleAction>()?),
StructType::DvsAcceptNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsAcceptNetworkRuleAction>()?),
StructType::DvsCopyNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsCopyNetworkRuleAction>()?),
StructType::DvsDropNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsDropNetworkRuleAction>()?),
StructType::DvsGreEncapNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsGreEncapNetworkRuleAction>()?),
StructType::DvsLogNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsLogNetworkRuleAction>()?),
StructType::DvsMacRewriteNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsMacRewriteNetworkRuleAction>()?),
StructType::DvsPuntNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsPuntNetworkRuleAction>()?),
StructType::DvsRateLimitNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsRateLimitNetworkRuleAction>()?),
StructType::DvsUpdateTagNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsUpdateTagNetworkRuleAction>()?),
StructType::DvsNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsNetworkRuleQualifier>()?),
StructType::DvsIpNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsIpNetworkRuleQualifier>()?),
StructType::DvsMacNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsMacNetworkRuleQualifier>()?),
StructType::DvsSystemTrafficNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsSystemTrafficNetworkRuleQualifier>()?),
StructType::DvsTrafficRuleset => Ok(from.as_any_box().downcast::<DvsTrafficRuleset>()?),
StructType::DvsVmVnicNetworkResourcePool => Ok(from.as_any_box().downcast::<DvsVmVnicNetworkResourcePool>()?),
StructType::DvsVmVnicResourcePoolConfigSpec => Ok(from.as_any_box().downcast::<DvsVmVnicResourcePoolConfigSpec>()?),
StructType::DvsVmVnicResourceAllocation => Ok(from.as_any_box().downcast::<DvsVmVnicResourceAllocation>()?),
StructType::DvsVmVnicNetworkResourcePoolRuntimeInfo => Ok(from.as_any_box().downcast::<DvsVmVnicNetworkResourcePoolRuntimeInfo>()?),
StructType::DvsVnicAllocatedResource => Ok(from.as_any_box().downcast::<DvsVnicAllocatedResource>()?),
StructType::VmwareDistributedVirtualSwitchDpuFailoverPolicy => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchDpuFailoverPolicy>()?),
StructType::VMwareDvsDpuCapability => Ok(from.as_any_box().downcast::<VMwareDvsDpuCapability>()?),
StructType::VMwareIpfixConfig => Ok(from.as_any_box().downcast::<VMwareIpfixConfig>()?),
StructType::VMwareDvsIpfixCapability => Ok(from.as_any_box().downcast::<VMwareDvsIpfixCapability>()?),
StructType::VMwareDvsLacpCapability => Ok(from.as_any_box().downcast::<VMwareDvsLacpCapability>()?),
StructType::VMwareDvsLacpGroupConfig => Ok(from.as_any_box().downcast::<VMwareDvsLacpGroupConfig>()?),
StructType::VMwareDvsLacpGroupSpec => Ok(from.as_any_box().downcast::<VMwareDvsLacpGroupSpec>()?),
StructType::VMwareDvsLagIpfixConfig => Ok(from.as_any_box().downcast::<VMwareDvsLagIpfixConfig>()?),
StructType::VMwareDvsLagVlanConfig => Ok(from.as_any_box().downcast::<VMwareDvsLagVlanConfig>()?),
StructType::VMwareDvsMtuCapability => Ok(from.as_any_box().downcast::<VMwareDvsMtuCapability>()?),
StructType::VmwareDistributedVirtualSwitchNetworkOffloadConfig => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchNetworkOffloadConfig>()?),
StructType::VMwareDvsPvlanConfigSpec => Ok(from.as_any_box().downcast::<VMwareDvsPvlanConfigSpec>()?),
StructType::VMwareDvsPvlanMapEntry => Ok(from.as_any_box().downcast::<VMwareDvsPvlanMapEntry>()?),
StructType::VmwareDistributedVirtualSwitchRealTimeConfig => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchRealTimeConfig>()?),
StructType::VmwareDistributedVirtualSwitchRealTimeLanAnnotation => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchRealTimeLanAnnotation>()?),
StructType::VMwareDvsVspanConfigSpec => Ok(from.as_any_box().downcast::<VMwareDvsVspanConfigSpec>()?),
StructType::VMwareDvsVspanCapability => Ok(from.as_any_box().downcast::<VMwareDvsVspanCapability>()?),
StructType::VMwareVspanPort => Ok(from.as_any_box().downcast::<VMwareVspanPort>()?),
StructType::VMwareVspanSession => Ok(from.as_any_box().downcast::<VMwareVspanSession>()?),
StructType::CryptoKeyId => Ok(from.as_any_box().downcast::<CryptoKeyId>()?),
StructType::CryptoKeyPlain => Ok(from.as_any_box().downcast::<CryptoKeyPlain>()?),
StructType::CryptoKeyResult => Ok(from.as_any_box().downcast::<CryptoKeyResult>()?),
StructType::CryptoManagerHostKeyStatus => Ok(from.as_any_box().downcast::<CryptoManagerHostKeyStatus>()?),
StructType::CryptoManagerKmipCertSignRequest => Ok(from.as_any_box().downcast::<CryptoManagerKmipCertSignRequest>()?),
StructType::CryptoManagerKmipCertificateInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCertificateInfo>()?),
StructType::CryptoManagerKmipClusterStatus => Ok(from.as_any_box().downcast::<CryptoManagerKmipClusterStatus>()?),
StructType::CryptoManagerKmipCryptoKeyStatus => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatus>()?),
StructType::CryptoManagerKmipCryptoKeyStatusKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo>()?),
StructType::CryptoManagerKmipCustomAttributeSpec => Ok(from.as_any_box().downcast::<CryptoManagerKmipCustomAttributeSpec>()?),
StructType::CryptoManagerKmipGenerateKeySpec => Ok(from.as_any_box().downcast::<CryptoManagerKmipGenerateKeySpec>()?),
StructType::CryptoManagerKmipServerCertInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipServerCertInfo>()?),
StructType::CryptoManagerKmipServerStatus => Ok(from.as_any_box().downcast::<CryptoManagerKmipServerStatus>()?),
StructType::CryptoSpec => Ok(from.as_any_box().downcast::<CryptoSpec>()?),
StructType::CryptoSpecDecrypt => Ok(from.as_any_box().downcast::<CryptoSpecDecrypt>()?),
StructType::CryptoSpecDeepRecrypt => Ok(from.as_any_box().downcast::<CryptoSpecDeepRecrypt>()?),
StructType::CryptoSpecEncrypt => Ok(from.as_any_box().downcast::<CryptoSpecEncrypt>()?),
StructType::CryptoSpecNoOp => Ok(from.as_any_box().downcast::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Ok(from.as_any_box().downcast::<CryptoSpecRegister>()?),
StructType::CryptoSpecShallowRecrypt => Ok(from.as_any_box().downcast::<CryptoSpecShallowRecrypt>()?),
StructType::KeyProviderId => Ok(from.as_any_box().downcast::<KeyProviderId>()?),
StructType::KmipClusterInfo => Ok(from.as_any_box().downcast::<KmipClusterInfo>()?),
StructType::KmipClusterInfoKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoKeyInfo>()?),
StructType::KmipClusterInfoWrappingKeyIdKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoWrappingKeyIdKeyInfo>()?),
StructType::KmipClusterInfoWrappingRotationIntervalKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoWrappingRotationIntervalKeyInfo>()?),
StructType::KmipServerInfo => Ok(from.as_any_box().downcast::<KmipServerInfo>()?),
StructType::KmipServerSpec => Ok(from.as_any_box().downcast::<KmipServerSpec>()?),
StructType::KmipServerSpecKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecKeySpec>()?),
StructType::KmipServerSpecWrappingKeyIdKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecWrappingKeyIdKeySpec>()?),
StructType::KmipServerSpecWrappingRotationIntervalKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecWrappingRotationIntervalKeySpec>()?),
StructType::KmipServerStatus => Ok(from.as_any_box().downcast::<KmipServerStatus>()?),
StructType::ChangesInfoEventArgument => Ok(from.as_any_box().downcast::<ChangesInfoEventArgument>()?),
StructType::DvsOutOfSyncHostArgument => Ok(from.as_any_box().downcast::<DvsOutOfSyncHostArgument>()?),
StructType::Event => Ok(from.as_any_box().downcast::<Event>()?),
StructType::EventArgument => Ok(from.as_any_box().downcast::<EventArgument>()?),
StructType::EntityEventArgument => Ok(from.as_any_box().downcast::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Ok(from.as_any_box().downcast::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Ok(from.as_any_box().downcast::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Ok(from.as_any_box().downcast::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Ok(from.as_any_box().downcast::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Ok(from.as_any_box().downcast::<DvsEventArgument>()?),
StructType::FolderEventArgument => Ok(from.as_any_box().downcast::<FolderEventArgument>()?),
StructType::HostEventArgument => Ok(from.as_any_box().downcast::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Ok(from.as_any_box().downcast::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Ok(from.as_any_box().downcast::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Ok(from.as_any_box().downcast::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Ok(from.as_any_box().downcast::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Ok(from.as_any_box().downcast::<VmEventArgument>()?),
StructType::ProfileEventArgument => Ok(from.as_any_box().downcast::<ProfileEventArgument>()?),
StructType::RoleEventArgument => Ok(from.as_any_box().downcast::<RoleEventArgument>()?),
StructType::EventDescription => Ok(from.as_any_box().downcast::<EventDescription>()?),
StructType::EventArgDesc => Ok(from.as_any_box().downcast::<EventArgDesc>()?),
StructType::EventDescriptionEventDetail => Ok(from.as_any_box().downcast::<EventDescriptionEventDetail>()?),
StructType::EventFilterSpec => Ok(from.as_any_box().downcast::<EventFilterSpec>()?),
StructType::EventFilterSpecByEntity => Ok(from.as_any_box().downcast::<EventFilterSpecByEntity>()?),
StructType::EventFilterSpecByTime => Ok(from.as_any_box().downcast::<EventFilterSpecByTime>()?),
StructType::EventFilterSpecByUsername => Ok(from.as_any_box().downcast::<EventFilterSpecByUsername>()?),
StructType::EventManagerEventViewSpec => Ok(from.as_any_box().downcast::<EventManagerEventViewSpec>()?),
StructType::EventManagerViewByStartId => Ok(from.as_any_box().downcast::<EventManagerViewByStartId>()?),
StructType::ExtendedEventPair => Ok(from.as_any_box().downcast::<ExtendedEventPair>()?),
StructType::VnicPortArgument => Ok(from.as_any_box().downcast::<VnicPortArgument>()?),
StructType::ExtExtendedProductInfo => Ok(from.as_any_box().downcast::<ExtExtendedProductInfo>()?),
StructType::ManagedByInfo => Ok(from.as_any_box().downcast::<ManagedByInfo>()?),
StructType::ExtManagedEntityInfo => Ok(from.as_any_box().downcast::<ExtManagedEntityInfo>()?),
StructType::ExtSolutionManagerInfo => Ok(from.as_any_box().downcast::<ExtSolutionManagerInfo>()?),
StructType::ExtSolutionManagerInfoTabInfo => Ok(from.as_any_box().downcast::<ExtSolutionManagerInfoTabInfo>()?),
StructType::AnswerFileUpdateFailure => Ok(from.as_any_box().downcast::<AnswerFileUpdateFailure>()?),
StructType::ConflictingConfigurationConfig => Ok(from.as_any_box().downcast::<ConflictingConfigurationConfig>()?),
StructType::DatacenterMismatchArgument => Ok(from.as_any_box().downcast::<DatacenterMismatchArgument>()?),
StructType::DvsApplyOperationFaultFaultOnObject => Ok(from.as_any_box().downcast::<DvsApplyOperationFaultFaultOnObject>()?),
StructType::DvsOperationBulkFaultFaultOnHost => Ok(from.as_any_box().downcast::<DvsOperationBulkFaultFaultOnHost>()?),
StructType::ImportOperationBulkFaultFaultOnImport => Ok(from.as_any_box().downcast::<ImportOperationBulkFaultFaultOnImport>()?),
StructType::MultipleCertificatesVerifyFaultThumbprintData => Ok(from.as_any_box().downcast::<MultipleCertificatesVerifyFaultThumbprintData>()?),
StructType::NoPermissionEntityPrivileges => Ok(from.as_any_box().downcast::<NoPermissionEntityPrivileges>()?),
StructType::ProfileUpdateFailedUpdateFailure => Ok(from.as_any_box().downcast::<ProfileUpdateFailedUpdateFailure>()?),
StructType::HostActiveDirectory => Ok(from.as_any_box().downcast::<HostActiveDirectory>()?),
StructType::HostActiveDirectorySpec => Ok(from.as_any_box().downcast::<HostActiveDirectorySpec>()?),
StructType::HostAssignableHardwareBinding => Ok(from.as_any_box().downcast::<HostAssignableHardwareBinding>()?),
StructType::HostAssignableHardwareConfig => Ok(from.as_any_box().downcast::<HostAssignableHardwareConfig>()?),
StructType::HostAssignableHardwareConfigAttributeOverride => Ok(from.as_any_box().downcast::<HostAssignableHardwareConfigAttributeOverride>()?),
StructType::HostAuthenticationInfo => Ok(from.as_any_box().downcast::<HostAuthenticationInfo>()?),
StructType::HostAuthenticationManagerInfo => Ok(from.as_any_box().downcast::<HostAuthenticationManagerInfo>()?),
StructType::HostAuthenticationStoreInfo => Ok(from.as_any_box().downcast::<HostAuthenticationStoreInfo>()?),
StructType::HostDirectoryStoreInfo => Ok(from.as_any_box().downcast::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Ok(from.as_any_box().downcast::<HostActiveDirectoryInfo>()?),
StructType::HostLocalAuthenticationInfo => Ok(from.as_any_box().downcast::<HostLocalAuthenticationInfo>()?),
StructType::AutoStartPowerInfo => Ok(from.as_any_box().downcast::<AutoStartPowerInfo>()?),
StructType::HostAutoStartManagerConfig => Ok(from.as_any_box().downcast::<HostAutoStartManagerConfig>()?),
StructType::AutoStartDefaults => Ok(from.as_any_box().downcast::<AutoStartDefaults>()?),
StructType::HostBiosInfo => Ok(from.as_any_box().downcast::<HostBiosInfo>()?),
StructType::HostBootDeviceInfo => Ok(from.as_any_box().downcast::<HostBootDeviceInfo>()?),
StructType::HostBootDevice => Ok(from.as_any_box().downcast::<HostBootDevice>()?),
StructType::HostCacheConfigurationInfo => Ok(from.as_any_box().downcast::<HostCacheConfigurationInfo>()?),
StructType::HostCacheConfigurationSpec => Ok(from.as_any_box().downcast::<HostCacheConfigurationSpec>()?),
StructType::HostCapability => Ok(from.as_any_box().downcast::<HostCapability>()?),
StructType::HostCertificateManagerCertificateInfo => Ok(from.as_any_box().downcast::<HostCertificateManagerCertificateInfo>()?),
StructType::HostCertificateManagerCertificateSpec => Ok(from.as_any_box().downcast::<HostCertificateManagerCertificateSpec>()?),
StructType::HostConfigChange => Ok(from.as_any_box().downcast::<HostConfigChange>()?),
StructType::HostConfigInfo => Ok(from.as_any_box().downcast::<HostConfigInfo>()?),
StructType::HostConfigManager => Ok(from.as_any_box().downcast::<HostConfigManager>()?),
StructType::HostConfigSpec => Ok(from.as_any_box().downcast::<HostConfigSpec>()?),
StructType::HostConnectInfo => Ok(from.as_any_box().downcast::<HostConnectInfo>()?),
StructType::HostDatastoreConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreConnectInfo>()?),
StructType::HostDatastoreExistsConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreExistsConnectInfo>()?),
StructType::HostDatastoreNameConflictConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreNameConflictConnectInfo>()?),
StructType::HostLicenseConnectInfo => Ok(from.as_any_box().downcast::<HostLicenseConnectInfo>()?),
StructType::HostConnectInfoNetworkInfo => Ok(from.as_any_box().downcast::<HostConnectInfoNetworkInfo>()?),
StructType::HostNewNetworkConnectInfo => Ok(from.as_any_box().downcast::<HostNewNetworkConnectInfo>()?),
StructType::HostConnectSpec => Ok(from.as_any_box().downcast::<HostConnectSpec>()?),
StructType::HostCpuIdInfo => Ok(from.as_any_box().downcast::<HostCpuIdInfo>()?),
StructType::HostCpuInfo => Ok(from.as_any_box().downcast::<HostCpuInfo>()?),
StructType::HostCpuPackage => Ok(from.as_any_box().downcast::<HostCpuPackage>()?),
StructType::HostCpuPowerManagementInfo => Ok(from.as_any_box().downcast::<HostCpuPowerManagementInfo>()?),
StructType::HostCpuSchedulerInfo => Ok(from.as_any_box().downcast::<HostCpuSchedulerInfo>()?),
StructType::HostHyperThreadScheduleInfo => Ok(from.as_any_box().downcast::<HostHyperThreadScheduleInfo>()?),
StructType::HostDataTransportConnectionInfo => Ok(from.as_any_box().downcast::<HostDataTransportConnectionInfo>()?),
StructType::HostNfcConnectionInfo => Ok(from.as_any_box().downcast::<HostNfcConnectionInfo>()?),
StructType::FileInfo => Ok(from.as_any_box().downcast::<FileInfo>()?),
StructType::FloppyImageFileInfo => Ok(from.as_any_box().downcast::<FloppyImageFileInfo>()?),
StructType::FolderFileInfo => Ok(from.as_any_box().downcast::<FolderFileInfo>()?),
StructType::IsoImageFileInfo => Ok(from.as_any_box().downcast::<IsoImageFileInfo>()?),
StructType::VmConfigFileInfo => Ok(from.as_any_box().downcast::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Ok(from.as_any_box().downcast::<TemplateConfigFileInfo>()?),
StructType::VmDiskFileInfo => Ok(from.as_any_box().downcast::<VmDiskFileInfo>()?),
StructType::VmLogFileInfo => Ok(from.as_any_box().downcast::<VmLogFileInfo>()?),
StructType::VmNvramFileInfo => Ok(from.as_any_box().downcast::<VmNvramFileInfo>()?),
StructType::VmSnapshotFileInfo => Ok(from.as_any_box().downcast::<VmSnapshotFileInfo>()?),
StructType::FileQueryFlags => Ok(from.as_any_box().downcast::<FileQueryFlags>()?),
StructType::FileQuery => Ok(from.as_any_box().downcast::<FileQuery>()?),
StructType::FloppyImageFileQuery => Ok(from.as_any_box().downcast::<FloppyImageFileQuery>()?),
StructType::FolderFileQuery => Ok(from.as_any_box().downcast::<FolderFileQuery>()?),
StructType::IsoImageFileQuery => Ok(from.as_any_box().downcast::<IsoImageFileQuery>()?),
StructType::VmConfigFileQuery => Ok(from.as_any_box().downcast::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Ok(from.as_any_box().downcast::<TemplateConfigFileQuery>()?),
StructType::VmDiskFileQuery => Ok(from.as_any_box().downcast::<VmDiskFileQuery>()?),
StructType::VmLogFileQuery => Ok(from.as_any_box().downcast::<VmLogFileQuery>()?),
StructType::VmNvramFileQuery => Ok(from.as_any_box().downcast::<VmNvramFileQuery>()?),
StructType::VmSnapshotFileQuery => Ok(from.as_any_box().downcast::<VmSnapshotFileQuery>()?),
StructType::HostDatastoreBrowserSearchResults => Ok(from.as_any_box().downcast::<HostDatastoreBrowserSearchResults>()?),
StructType::HostDatastoreBrowserSearchSpec => Ok(from.as_any_box().downcast::<HostDatastoreBrowserSearchSpec>()?),
StructType::VmConfigFileEncryptionInfo => Ok(from.as_any_box().downcast::<VmConfigFileEncryptionInfo>()?),
StructType::VmConfigFileQueryFlags => Ok(from.as_any_box().downcast::<VmConfigFileQueryFlags>()?),
StructType::VmConfigFileQueryFilter => Ok(from.as_any_box().downcast::<VmConfigFileQueryFilter>()?),
StructType::VmDiskFileEncryptionInfo => Ok(from.as_any_box().downcast::<VmDiskFileEncryptionInfo>()?),
StructType::VmDiskFileQueryFlags => Ok(from.as_any_box().downcast::<VmDiskFileQueryFlags>()?),
StructType::VmDiskFileQueryFilter => Ok(from.as_any_box().downcast::<VmDiskFileQueryFilter>()?),
StructType::HostDatastoreSystemCapabilities => Ok(from.as_any_box().downcast::<HostDatastoreSystemCapabilities>()?),
StructType::HostDatastoreSystemDatastoreResult => Ok(from.as_any_box().downcast::<HostDatastoreSystemDatastoreResult>()?),
StructType::HostDatastoreSystemVvolDatastoreSpec => Ok(from.as_any_box().downcast::<HostDatastoreSystemVvolDatastoreSpec>()?),
StructType::HostDateTimeConfig => Ok(from.as_any_box().downcast::<HostDateTimeConfig>()?),
StructType::HostDateTimeInfo => Ok(from.as_any_box().downcast::<HostDateTimeInfo>()?),
StructType::HostDateTimeSystemServiceTestResult => Ok(from.as_any_box().downcast::<HostDateTimeSystemServiceTestResult>()?),
StructType::HostDateTimeSystemTimeZone => Ok(from.as_any_box().downcast::<HostDateTimeSystemTimeZone>()?),
StructType::HostDeploymentInfo => Ok(from.as_any_box().downcast::<HostDeploymentInfo>()?),
StructType::HostDevice => Ok(from.as_any_box().downcast::<HostDevice>()?),
StructType::ScsiLun => Ok(from.as_any_box().downcast::<ScsiLun>()?),
StructType::HostScsiDisk => Ok(from.as_any_box().downcast::<HostScsiDisk>()?),
StructType::DevicePciId => Ok(from.as_any_box().downcast::<DevicePciId>()?),
StructType::HostDhcpService => Ok(from.as_any_box().downcast::<HostDhcpService>()?),
StructType::HostDhcpServiceConfig => Ok(from.as_any_box().downcast::<HostDhcpServiceConfig>()?),
StructType::HostDhcpServiceSpec => Ok(from.as_any_box().downcast::<HostDhcpServiceSpec>()?),
StructType::HostDiagnosticPartition => Ok(from.as_any_box().downcast::<HostDiagnosticPartition>()?),
StructType::HostDiagnosticPartitionCreateDescription => Ok(from.as_any_box().downcast::<HostDiagnosticPartitionCreateDescription>()?),
StructType::HostDiagnosticPartitionCreateOption => Ok(from.as_any_box().downcast::<HostDiagnosticPartitionCreateOption>()?),
StructType::HostDiagnosticPartitionCreateSpec => Ok(from.as_any_box().downcast::<HostDiagnosticPartitionCreateSpec>()?),
StructType::HostDigestInfo => Ok(from.as_any_box().downcast::<HostDigestInfo>()?),
StructType::HostTpmDigestInfo => Ok(from.as_any_box().downcast::<HostTpmDigestInfo>()?),
StructType::HostDiskConfigurationResult => Ok(from.as_any_box().downcast::<HostDiskConfigurationResult>()?),
StructType::HostDiskDimensions => Ok(from.as_any_box().downcast::<HostDiskDimensions>()?),
StructType::HostDiskDimensionsChs => Ok(from.as_any_box().downcast::<HostDiskDimensionsChs>()?),
StructType::HostDiskDimensionsLba => Ok(from.as_any_box().downcast::<HostDiskDimensionsLba>()?),
StructType::HostDiskPartitionInfo => Ok(from.as_any_box().downcast::<HostDiskPartitionInfo>()?),
StructType::HostDiskPartitionBlockRange => Ok(from.as_any_box().downcast::<HostDiskPartitionBlockRange>()?),
StructType::HostDiskPartitionLayout => Ok(from.as_any_box().downcast::<HostDiskPartitionLayout>()?),
StructType::HostDiskPartitionAttributes => Ok(from.as_any_box().downcast::<HostDiskPartitionAttributes>()?),
StructType::HostDiskPartitionSpec => Ok(from.as_any_box().downcast::<HostDiskPartitionSpec>()?),
StructType::HostDnsConfig => Ok(from.as_any_box().downcast::<HostDnsConfig>()?),
StructType::HostDnsConfigSpec => Ok(from.as_any_box().downcast::<HostDnsConfigSpec>()?),
StructType::HostDvxClass => Ok(from.as_any_box().downcast::<HostDvxClass>()?),
StructType::HostEnterMaintenanceResult => Ok(from.as_any_box().downcast::<HostEnterMaintenanceResult>()?),
StructType::HostEsxAgentHostManagerConfigInfo => Ok(from.as_any_box().downcast::<HostEsxAgentHostManagerConfigInfo>()?),
StructType::HostFaultToleranceManagerComponentHealthInfo => Ok(from.as_any_box().downcast::<HostFaultToleranceManagerComponentHealthInfo>()?),
StructType::FcoeConfig => Ok(from.as_any_box().downcast::<FcoeConfig>()?),
StructType::FcoeConfigFcoeCapabilities => Ok(from.as_any_box().downcast::<FcoeConfigFcoeCapabilities>()?),
StructType::FcoeConfigFcoeSpecification => Ok(from.as_any_box().downcast::<FcoeConfigFcoeSpecification>()?),
StructType::FcoeConfigVlanRange => Ok(from.as_any_box().downcast::<FcoeConfigVlanRange>()?),
StructType::HostFeatureCapability => Ok(from.as_any_box().downcast::<HostFeatureCapability>()?),
StructType::HostFeatureMask => Ok(from.as_any_box().downcast::<HostFeatureMask>()?),
StructType::HostFeatureVersionInfo => Ok(from.as_any_box().downcast::<HostFeatureVersionInfo>()?),
StructType::HostFibreChannelOverEthernetHbaLinkInfo => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetHbaLinkInfo>()?),
StructType::HostFileAccess => Ok(from.as_any_box().downcast::<HostFileAccess>()?),
StructType::ModeInfo => Ok(from.as_any_box().downcast::<ModeInfo>()?),
StructType::HostFileSystemMountInfo => Ok(from.as_any_box().downcast::<HostFileSystemMountInfo>()?),
StructType::HostFileSystemVolume => Ok(from.as_any_box().downcast::<HostFileSystemVolume>()?),
StructType::HostLocalFileSystemVolume => Ok(from.as_any_box().downcast::<HostLocalFileSystemVolume>()?),
StructType::HostNasVolume => Ok(from.as_any_box().downcast::<HostNasVolume>()?),
StructType::HostPMemVolume => Ok(from.as_any_box().downcast::<HostPMemVolume>()?),
StructType::HostVfatVolume => Ok(from.as_any_box().downcast::<HostVfatVolume>()?),
StructType::HostVffsVolume => Ok(from.as_any_box().downcast::<HostVffsVolume>()?),
StructType::HostVmfsVolume => Ok(from.as_any_box().downcast::<HostVmfsVolume>()?),
StructType::HostVvolVolume => Ok(from.as_any_box().downcast::<HostVvolVolume>()?),
StructType::HostFileSystemVolumeInfo => Ok(from.as_any_box().downcast::<HostFileSystemVolumeInfo>()?),
StructType::HostFirewallConfig => Ok(from.as_any_box().downcast::<HostFirewallConfig>()?),
StructType::HostFirewallConfigRuleSetConfig => Ok(from.as_any_box().downcast::<HostFirewallConfigRuleSetConfig>()?),
StructType::HostFirewallInfo => Ok(from.as_any_box().downcast::<HostFirewallInfo>()?),
StructType::HostFirewallDefaultPolicy => Ok(from.as_any_box().downcast::<HostFirewallDefaultPolicy>()?),
StructType::HostFlagInfo => Ok(from.as_any_box().downcast::<HostFlagInfo>()?),
StructType::HostForceMountedInfo => Ok(from.as_any_box().downcast::<HostForceMountedInfo>()?),
StructType::HostFru => Ok(from.as_any_box().downcast::<HostFru>()?),
StructType::HostGatewaySpec => Ok(from.as_any_box().downcast::<HostGatewaySpec>()?),
StructType::HostGraphicsConfig => Ok(from.as_any_box().downcast::<HostGraphicsConfig>()?),
StructType::HostGraphicsConfigDeviceType => Ok(from.as_any_box().downcast::<HostGraphicsConfigDeviceType>()?),
StructType::HostGraphicsInfo => Ok(from.as_any_box().downcast::<HostGraphicsInfo>()?),
StructType::HostHardwareInfo => Ok(from.as_any_box().downcast::<HostHardwareInfo>()?),
StructType::HostHardwareStatusInfo => Ok(from.as_any_box().downcast::<HostHardwareStatusInfo>()?),
StructType::DpuStatusInfoOperationalInfo => Ok(from.as_any_box().downcast::<DpuStatusInfoOperationalInfo>()?),
StructType::HostHardwareElementInfo => Ok(from.as_any_box().downcast::<HostHardwareElementInfo>()?),
StructType::DpuStatusInfo => Ok(from.as_any_box().downcast::<DpuStatusInfo>()?),
StructType::HostStorageElementInfo => Ok(from.as_any_box().downcast::<HostStorageElementInfo>()?),
StructType::HostStorageOperationalInfo => Ok(from.as_any_box().downcast::<HostStorageOperationalInfo>()?),
StructType::HostHbaCreateSpec => Ok(from.as_any_box().downcast::<HostHbaCreateSpec>()?),
StructType::HostTcpHbaCreateSpec => Ok(from.as_any_box().downcast::<HostTcpHbaCreateSpec>()?),
StructType::HealthSystemRuntime => Ok(from.as_any_box().downcast::<HealthSystemRuntime>()?),
StructType::HostAccessControlEntry => Ok(from.as_any_box().downcast::<HostAccessControlEntry>()?),
StructType::HostHostBusAdapter => Ok(from.as_any_box().downcast::<HostHostBusAdapter>()?),
StructType::HostBlockHba => Ok(from.as_any_box().downcast::<HostBlockHba>()?),
StructType::HostFibreChannelHba => Ok(from.as_any_box().downcast::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetHba>()?),
StructType::HostInternetScsiHba => Ok(from.as_any_box().downcast::<HostInternetScsiHba>()?),
StructType::HostParallelScsiHba => Ok(from.as_any_box().downcast::<HostParallelScsiHba>()?),
StructType::HostPcieHba => Ok(from.as_any_box().downcast::<HostPcieHba>()?),
StructType::HostRdmaHba => Ok(from.as_any_box().downcast::<HostRdmaHba>()?),
StructType::HostSerialAttachedHba => Ok(from.as_any_box().downcast::<HostSerialAttachedHba>()?),
StructType::HostTcpHba => Ok(from.as_any_box().downcast::<HostTcpHba>()?),
StructType::HostProxySwitch => Ok(from.as_any_box().downcast::<HostProxySwitch>()?),
StructType::HostProxySwitchConfig => Ok(from.as_any_box().downcast::<HostProxySwitchConfig>()?),
StructType::HostProxySwitchEnsInfo => Ok(from.as_any_box().downcast::<HostProxySwitchEnsInfo>()?),
StructType::HostProxySwitchHostLagConfig => Ok(from.as_any_box().downcast::<HostProxySwitchHostLagConfig>()?),
StructType::HostProxySwitchSpec => Ok(from.as_any_box().downcast::<HostProxySwitchSpec>()?),
StructType::HostSpbmDatastoreInfo => Ok(from.as_any_box().downcast::<HostSpbmDatastoreInfo>()?),
StructType::HostSpbmHashInfo => Ok(from.as_any_box().downcast::<HostSpbmHashInfo>()?),
StructType::HostSpbmPolicyBlobInfo => Ok(from.as_any_box().downcast::<HostSpbmPolicyBlobInfo>()?),
StructType::HostSpbmPolicyInfo => Ok(from.as_any_box().downcast::<HostSpbmPolicyInfo>()?),
StructType::HostImageProfileSummary => Ok(from.as_any_box().downcast::<HostImageProfileSummary>()?),
StructType::HostInternetScsiHbaAuthenticationCapabilities => Ok(from.as_any_box().downcast::<HostInternetScsiHbaAuthenticationCapabilities>()?),
StructType::HostInternetScsiHbaAuthenticationProperties => Ok(from.as_any_box().downcast::<HostInternetScsiHbaAuthenticationProperties>()?),
StructType::HostInternetScsiHbaDigestCapabilities => Ok(from.as_any_box().downcast::<HostInternetScsiHbaDigestCapabilities>()?),
StructType::HostInternetScsiHbaDigestProperties => Ok(from.as_any_box().downcast::<HostInternetScsiHbaDigestProperties>()?),
StructType::HostInternetScsiHbaDiscoveryCapabilities => Ok(from.as_any_box().downcast::<HostInternetScsiHbaDiscoveryCapabilities>()?),
StructType::HostInternetScsiHbaDiscoveryProperties => Ok(from.as_any_box().downcast::<HostInternetScsiHbaDiscoveryProperties>()?),
StructType::HostInternetScsiHbaIpCapabilities => Ok(from.as_any_box().downcast::<HostInternetScsiHbaIpCapabilities>()?),
StructType::HostInternetScsiHbaIpProperties => Ok(from.as_any_box().downcast::<HostInternetScsiHbaIpProperties>()?),
StructType::HostInternetScsiHbaIPv6Properties => Ok(from.as_any_box().downcast::<HostInternetScsiHbaIPv6Properties>()?),
StructType::HostInternetScsiHbaIscsiIpv6Address => Ok(from.as_any_box().downcast::<HostInternetScsiHbaIscsiIpv6Address>()?),
StructType::HostInternetScsiHbaSendTarget => Ok(from.as_any_box().downcast::<HostInternetScsiHbaSendTarget>()?),
StructType::HostInternetScsiHbaStaticTarget => Ok(from.as_any_box().downcast::<HostInternetScsiHbaStaticTarget>()?),
StructType::HostInternetScsiHbaTargetSet => Ok(from.as_any_box().downcast::<HostInternetScsiHbaTargetSet>()?),
StructType::HostIpConfig => Ok(from.as_any_box().downcast::<HostIpConfig>()?),
StructType::VsanFileServiceIpConfig => Ok(from.as_any_box().downcast::<VsanFileServiceIpConfig>()?),
StructType::HostIpConfigIpV6Address => Ok(from.as_any_box().downcast::<HostIpConfigIpV6Address>()?),
StructType::HostIpConfigIpV6AddressConfiguration => Ok(from.as_any_box().downcast::<HostIpConfigIpV6AddressConfiguration>()?),
StructType::HostIpRouteConfig => Ok(from.as_any_box().downcast::<HostIpRouteConfig>()?),
StructType::HostIpRouteConfigSpec => Ok(from.as_any_box().downcast::<HostIpRouteConfigSpec>()?),
StructType::HostIpRouteEntry => Ok(from.as_any_box().downcast::<HostIpRouteEntry>()?),
StructType::HostIpRouteOp => Ok(from.as_any_box().downcast::<HostIpRouteOp>()?),
StructType::HostIpRouteTableConfig => Ok(from.as_any_box().downcast::<HostIpRouteTableConfig>()?),
StructType::HostIpRouteTableInfo => Ok(from.as_any_box().downcast::<HostIpRouteTableInfo>()?),
StructType::HostIpmiInfo => Ok(from.as_any_box().downcast::<HostIpmiInfo>()?),
StructType::IscsiDependencyEntity => Ok(from.as_any_box().downcast::<IscsiDependencyEntity>()?),
StructType::IscsiMigrationDependency => Ok(from.as_any_box().downcast::<IscsiMigrationDependency>()?),
StructType::IscsiPortInfo => Ok(from.as_any_box().downcast::<IscsiPortInfo>()?),
StructType::IscsiStatus => Ok(from.as_any_box().downcast::<IscsiStatus>()?),
StructType::KernelModuleInfo => Ok(from.as_any_box().downcast::<KernelModuleInfo>()?),
StructType::KernelModuleSectionInfo => Ok(from.as_any_box().downcast::<KernelModuleSectionInfo>()?),
StructType::LacpInfo => Ok(from.as_any_box().downcast::<LacpInfo>()?),
StructType::LagInfo => Ok(from.as_any_box().downcast::<LagInfo>()?),
StructType::LagUplinkInfo => Ok(from.as_any_box().downcast::<LagUplinkInfo>()?),
StructType::HostLicenseSpec => Ok(from.as_any_box().downcast::<HostLicenseSpec>()?),
StructType::LinkDiscoveryProtocolConfig => Ok(from.as_any_box().downcast::<LinkDiscoveryProtocolConfig>()?),
StructType::HostAccountSpec => Ok(from.as_any_box().downcast::<HostAccountSpec>()?),
StructType::HostPosixAccountSpec => Ok(from.as_any_box().downcast::<HostPosixAccountSpec>()?),
StructType::HostLocalFileSystemVolumeSpec => Ok(from.as_any_box().downcast::<HostLocalFileSystemVolumeSpec>()?),
StructType::HostLowLevelProvisioningManagerDiskLayoutSpec => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerDiskLayoutSpec>()?),
StructType::HostLowLevelProvisioningManagerFileDeleteResult => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerFileDeleteResult>()?),
StructType::HostLowLevelProvisioningManagerFileDeleteSpec => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerFileDeleteSpec>()?),
StructType::HostLowLevelProvisioningManagerFileReserveResult => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerFileReserveResult>()?),
StructType::HostLowLevelProvisioningManagerFileReserveSpec => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerFileReserveSpec>()?),
StructType::HostLowLevelProvisioningManagerSnapshotLayoutSpec => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerSnapshotLayoutSpec>()?),
StructType::HostLowLevelProvisioningManagerVmMigrationStatus => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerVmMigrationStatus>()?),
StructType::HostLowLevelProvisioningManagerVmRecoveryInfo => Ok(from.as_any_box().downcast::<HostLowLevelProvisioningManagerVmRecoveryInfo>()?),
StructType::HostMaintenanceSpec => Ok(from.as_any_box().downcast::<HostMaintenanceSpec>()?),
StructType::ServiceConsoleReservationInfo => Ok(from.as_any_box().downcast::<ServiceConsoleReservationInfo>()?),
StructType::VirtualMachineMemoryReservationInfo => Ok(from.as_any_box().downcast::<VirtualMachineMemoryReservationInfo>()?),
StructType::VirtualMachineMemoryReservationSpec => Ok(from.as_any_box().downcast::<VirtualMachineMemoryReservationSpec>()?),
StructType::HostMemorySpec => Ok(from.as_any_box().downcast::<HostMemorySpec>()?),
StructType::HostMemoryTierInfo => Ok(from.as_any_box().downcast::<HostMemoryTierInfo>()?),
StructType::HostMountInfo => Ok(from.as_any_box().downcast::<HostMountInfo>()?),
StructType::HostMultipathInfo => Ok(from.as_any_box().downcast::<HostMultipathInfo>()?),
StructType::HostMultipathInfoLogicalUnit => Ok(from.as_any_box().downcast::<HostMultipathInfoLogicalUnit>()?),
StructType::HostMultipathInfoLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoLogicalUnitPolicy>()?),
StructType::HostMultipathInfoFixedLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoFixedLogicalUnitPolicy>()?),
StructType::HostMultipathInfoHppLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoHppLogicalUnitPolicy>()?),
StructType::HostMultipathInfoLogicalUnitStorageArrayTypePolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoLogicalUnitStorageArrayTypePolicy>()?),
StructType::HostMultipathInfoPath => Ok(from.as_any_box().downcast::<HostMultipathInfoPath>()?),
StructType::HostMultipathStateInfo => Ok(from.as_any_box().downcast::<HostMultipathStateInfo>()?),
StructType::HostMultipathStateInfoPath => Ok(from.as_any_box().downcast::<HostMultipathStateInfoPath>()?),
StructType::HostNasVolumeConfig => Ok(from.as_any_box().downcast::<HostNasVolumeConfig>()?),
StructType::HostNasVolumeSpec => Ok(from.as_any_box().downcast::<HostNasVolumeSpec>()?),
StructType::HostNasVolumeUserInfo => Ok(from.as_any_box().downcast::<HostNasVolumeUserInfo>()?),
StructType::HostNatService => Ok(from.as_any_box().downcast::<HostNatService>()?),
StructType::HostNatServiceConfig => Ok(from.as_any_box().downcast::<HostNatServiceConfig>()?),
StructType::HostNatServiceNameServiceSpec => Ok(from.as_any_box().downcast::<HostNatServiceNameServiceSpec>()?),
StructType::HostNatServicePortForwardSpec => Ok(from.as_any_box().downcast::<HostNatServicePortForwardSpec>()?),
StructType::HostNatServiceSpec => Ok(from.as_any_box().downcast::<HostNatServiceSpec>()?),
StructType::HostNetCapabilities => Ok(from.as_any_box().downcast::<HostNetCapabilities>()?),
StructType::HostNetOffloadCapabilities => Ok(from.as_any_box().downcast::<HostNetOffloadCapabilities>()?),
StructType::HostNetStackInstance => Ok(from.as_any_box().downcast::<HostNetStackInstance>()?),
StructType::HostNetworkConfig => Ok(from.as_any_box().downcast::<HostNetworkConfig>()?),
StructType::HostNetworkConfigNetStackSpec => Ok(from.as_any_box().downcast::<HostNetworkConfigNetStackSpec>()?),
StructType::HostNetworkConfigResult => Ok(from.as_any_box().downcast::<HostNetworkConfigResult>()?),
StructType::HostNetworkInfo => Ok(from.as_any_box().downcast::<HostNetworkInfo>()?),
StructType::HostNetworkPolicy => Ok(from.as_any_box().downcast::<HostNetworkPolicy>()?),
StructType::HostNicFailureCriteria => Ok(from.as_any_box().downcast::<HostNicFailureCriteria>()?),
StructType::HostNicOrderPolicy => Ok(from.as_any_box().downcast::<HostNicOrderPolicy>()?),
StructType::HostNicTeamingPolicy => Ok(from.as_any_box().downcast::<HostNicTeamingPolicy>()?),
StructType::HostNetworkSecurityPolicy => Ok(from.as_any_box().downcast::<HostNetworkSecurityPolicy>()?),
StructType::HostNetworkTrafficShapingPolicy => Ok(from.as_any_box().downcast::<HostNetworkTrafficShapingPolicy>()?),
StructType::HostNtpConfig => Ok(from.as_any_box().downcast::<HostNtpConfig>()?),
StructType::HostNumaInfo => Ok(from.as_any_box().downcast::<HostNumaInfo>()?),
StructType::HostNumaNode => Ok(from.as_any_box().downcast::<HostNumaNode>()?),
StructType::HostNumericSensorInfo => Ok(from.as_any_box().downcast::<HostNumericSensorInfo>()?),
StructType::NvdimmDimmInfo => Ok(from.as_any_box().downcast::<NvdimmDimmInfo>()?),
StructType::NvdimmGuid => Ok(from.as_any_box().downcast::<NvdimmGuid>()?),
StructType::NvdimmHealthInfo => Ok(from.as_any_box().downcast::<NvdimmHealthInfo>()?),
StructType::NvdimmInterleaveSetInfo => Ok(from.as_any_box().downcast::<NvdimmInterleaveSetInfo>()?),
StructType::NvdimmNamespaceCreateSpec => Ok(from.as_any_box().downcast::<NvdimmNamespaceCreateSpec>()?),
StructType::NvdimmNamespaceDeleteSpec => Ok(from.as_any_box().downcast::<NvdimmNamespaceDeleteSpec>()?),
StructType::NvdimmNamespaceDetails => Ok(from.as_any_box().downcast::<NvdimmNamespaceDetails>()?),
StructType::NvdimmNamespaceInfo => Ok(from.as_any_box().downcast::<NvdimmNamespaceInfo>()?),
StructType::NvdimmSystemInfo => Ok(from.as_any_box().downcast::<NvdimmSystemInfo>()?),
StructType::NvdimmPMemNamespaceCreateSpec => Ok(from.as_any_box().downcast::<NvdimmPMemNamespaceCreateSpec>()?),
StructType::NvdimmRegionInfo => Ok(from.as_any_box().downcast::<NvdimmRegionInfo>()?),
StructType::NvdimmSummary => Ok(from.as_any_box().downcast::<NvdimmSummary>()?),
StructType::HostNvmeController => Ok(from.as_any_box().downcast::<HostNvmeController>()?),
StructType::HostNvmeDisconnectSpec => Ok(from.as_any_box().downcast::<HostNvmeDisconnectSpec>()?),
StructType::HostNvmeDiscoveryLog => Ok(from.as_any_box().downcast::<HostNvmeDiscoveryLog>()?),
StructType::HostNvmeDiscoveryLogEntry => Ok(from.as_any_box().downcast::<HostNvmeDiscoveryLogEntry>()?),
StructType::HostNvmeNamespace => Ok(from.as_any_box().downcast::<HostNvmeNamespace>()?),
StructType::HostNvmeSpec => Ok(from.as_any_box().downcast::<HostNvmeSpec>()?),
StructType::HostNvmeConnectSpec => Ok(from.as_any_box().downcast::<HostNvmeConnectSpec>()?),
StructType::HostNvmeDiscoverSpec => Ok(from.as_any_box().downcast::<HostNvmeDiscoverSpec>()?),
StructType::HostNvmeTopology => Ok(from.as_any_box().downcast::<HostNvmeTopology>()?),
StructType::HostNvmeTopologyInterface => Ok(from.as_any_box().downcast::<HostNvmeTopologyInterface>()?),
StructType::HostNvmeTransportParameters => Ok(from.as_any_box().downcast::<HostNvmeTransportParameters>()?),
StructType::HostNvmeOpaqueTransportParameters => Ok(from.as_any_box().downcast::<HostNvmeOpaqueTransportParameters>()?),
StructType::HostNvmeOverFibreChannelParameters => Ok(from.as_any_box().downcast::<HostNvmeOverFibreChannelParameters>()?),
StructType::HostNvmeOverRdmaParameters => Ok(from.as_any_box().downcast::<HostNvmeOverRdmaParameters>()?),
StructType::HostNvmeOverTcpParameters => Ok(from.as_any_box().downcast::<HostNvmeOverTcpParameters>()?),
StructType::HostOpaqueNetworkInfo => Ok(from.as_any_box().downcast::<HostOpaqueNetworkInfo>()?),
StructType::HostOpaqueSwitch => Ok(from.as_any_box().downcast::<HostOpaqueSwitch>()?),
StructType::HostOpaqueSwitchPhysicalNicZone => Ok(from.as_any_box().downcast::<HostOpaqueSwitchPhysicalNicZone>()?),
StructType::HostPartialMaintenanceModeRuntimeInfo => Ok(from.as_any_box().downcast::<HostPartialMaintenanceModeRuntimeInfo>()?),
StructType::HostPatchManagerLocator => Ok(from.as_any_box().downcast::<HostPatchManagerLocator>()?),
StructType::HostPatchManagerPatchManagerOperationSpec => Ok(from.as_any_box().downcast::<HostPatchManagerPatchManagerOperationSpec>()?),
StructType::HostPatchManagerResult => Ok(from.as_any_box().downcast::<HostPatchManagerResult>()?),
StructType::HostPatchManagerStatus => Ok(from.as_any_box().downcast::<HostPatchManagerStatus>()?),
StructType::HostPatchManagerStatusPrerequisitePatch => Ok(from.as_any_box().downcast::<HostPatchManagerStatusPrerequisitePatch>()?),
StructType::HostPathSelectionPolicyOption => Ok(from.as_any_box().downcast::<HostPathSelectionPolicyOption>()?),
StructType::HostPciDevice => Ok(from.as_any_box().downcast::<HostPciDevice>()?),
StructType::HostPciPassthruConfig => Ok(from.as_any_box().downcast::<HostPciPassthruConfig>()?),
StructType::HostSriovConfig => Ok(from.as_any_box().downcast::<HostSriovConfig>()?),
StructType::HostPciPassthruInfo => Ok(from.as_any_box().downcast::<HostPciPassthruInfo>()?),
StructType::HostSriovInfo => Ok(from.as_any_box().downcast::<HostSriovInfo>()?),
StructType::HostPersistentMemoryInfo => Ok(from.as_any_box().downcast::<HostPersistentMemoryInfo>()?),
StructType::PhysicalNic => Ok(from.as_any_box().downcast::<PhysicalNic>()?),
StructType::PhysicalNicCdpDeviceCapability => Ok(from.as_any_box().downcast::<PhysicalNicCdpDeviceCapability>()?),
StructType::PhysicalNicCdpInfo => Ok(from.as_any_box().downcast::<PhysicalNicCdpInfo>()?),
StructType::PhysicalNicConfig => Ok(from.as_any_box().downcast::<PhysicalNicConfig>()?),
StructType::PhysicalNicLinkInfo => Ok(from.as_any_box().downcast::<PhysicalNicLinkInfo>()?),
StructType::LinkLayerDiscoveryProtocolInfo => Ok(from.as_any_box().downcast::<LinkLayerDiscoveryProtocolInfo>()?),
StructType::PhysicalNicHintInfo => Ok(from.as_any_box().downcast::<PhysicalNicHintInfo>()?),
StructType::PhysicalNicHint => Ok(from.as_any_box().downcast::<PhysicalNicHint>()?),
StructType::PhysicalNicIpHint => Ok(from.as_any_box().downcast::<PhysicalNicIpHint>()?),
StructType::PhysicalNicNameHint => Ok(from.as_any_box().downcast::<PhysicalNicNameHint>()?),
StructType::PhysicalNicSpec => Ok(from.as_any_box().downcast::<PhysicalNicSpec>()?),
StructType::HostPlugStoreTopology => Ok(from.as_any_box().downcast::<HostPlugStoreTopology>()?),
StructType::HostPlugStoreTopologyAdapter => Ok(from.as_any_box().downcast::<HostPlugStoreTopologyAdapter>()?),
StructType::HostPlugStoreTopologyDevice => Ok(from.as_any_box().downcast::<HostPlugStoreTopologyDevice>()?),
StructType::HostPlugStoreTopologyPath => Ok(from.as_any_box().downcast::<HostPlugStoreTopologyPath>()?),
StructType::HostPlugStoreTopologyPlugin => Ok(from.as_any_box().downcast::<HostPlugStoreTopologyPlugin>()?),
StructType::HostPlugStoreTopologyTarget => Ok(from.as_any_box().downcast::<HostPlugStoreTopologyTarget>()?),
StructType::PnicTsoInfo => Ok(from.as_any_box().downcast::<PnicTsoInfo>()?),
StructType::HostPortGroup => Ok(from.as_any_box().downcast::<HostPortGroup>()?),
StructType::HostPortGroupConfig => Ok(from.as_any_box().downcast::<HostPortGroupConfig>()?),
StructType::HostPortGroupPort => Ok(from.as_any_box().downcast::<HostPortGroupPort>()?),
StructType::HostPortGroupSpec => Ok(from.as_any_box().downcast::<HostPortGroupSpec>()?),
StructType::PowerSystemCapability => Ok(from.as_any_box().downcast::<PowerSystemCapability>()?),
StructType::PowerSystemInfo => Ok(from.as_any_box().downcast::<PowerSystemInfo>()?),
StructType::HostPowerPolicy => Ok(from.as_any_box().downcast::<HostPowerPolicy>()?),
StructType::HostProtocolEndpoint => Ok(from.as_any_box().downcast::<HostProtocolEndpoint>()?),
StructType::HostPtpConfig => Ok(from.as_any_box().downcast::<HostPtpConfig>()?),
StructType::HostPtpConfigPtpPort => Ok(from.as_any_box().downcast::<HostPtpConfigPtpPort>()?),
StructType::HostQualifiedName => Ok(from.as_any_box().downcast::<HostQualifiedName>()?),
StructType::HostRdmaDevice => Ok(from.as_any_box().downcast::<HostRdmaDevice>()?),
StructType::HostRdmaDeviceBacking => Ok(from.as_any_box().downcast::<HostRdmaDeviceBacking>()?),
StructType::HostRdmaDevicePnicBacking => Ok(from.as_any_box().downcast::<HostRdmaDevicePnicBacking>()?),
StructType::HostRdmaDeviceCapability => Ok(from.as_any_box().downcast::<HostRdmaDeviceCapability>()?),
StructType::HostRdmaDeviceConnectionInfo => Ok(from.as_any_box().downcast::<HostRdmaDeviceConnectionInfo>()?),
StructType::HostReliableMemoryInfo => Ok(from.as_any_box().downcast::<HostReliableMemoryInfo>()?),
StructType::HostResignatureRescanResult => Ok(from.as_any_box().downcast::<HostResignatureRescanResult>()?),
StructType::HostFirewallRuleset => Ok(from.as_any_box().downcast::<HostFirewallRuleset>()?),
StructType::HostFirewallRulesetIpList => Ok(from.as_any_box().downcast::<HostFirewallRulesetIpList>()?),
StructType::HostFirewallRulesetIpNetwork => Ok(from.as_any_box().downcast::<HostFirewallRulesetIpNetwork>()?),
StructType::HostFirewallRule => Ok(from.as_any_box().downcast::<HostFirewallRule>()?),
StructType::HostFirewallRulesetRulesetSpec => Ok(from.as_any_box().downcast::<HostFirewallRulesetRulesetSpec>()?),
StructType::HostRuntimeInfo => Ok(from.as_any_box().downcast::<HostRuntimeInfo>()?),
StructType::HostRuntimeInfoNetStackInstanceRuntimeInfo => Ok(from.as_any_box().downcast::<HostRuntimeInfoNetStackInstanceRuntimeInfo>()?),
StructType::HostNetworkResourceRuntime => Ok(from.as_any_box().downcast::<HostNetworkResourceRuntime>()?),
StructType::HostRuntimeInfoNetworkRuntimeInfo => Ok(from.as_any_box().downcast::<HostRuntimeInfoNetworkRuntimeInfo>()?),
StructType::HostPlacedVirtualNicIdentifier => Ok(from.as_any_box().downcast::<HostPlacedVirtualNicIdentifier>()?),
StructType::HostPnicNetworkResourceInfo => Ok(from.as_any_box().downcast::<HostPnicNetworkResourceInfo>()?),
StructType::HostRuntimeInfoStateEncryptionInfo => Ok(from.as_any_box().downcast::<HostRuntimeInfoStateEncryptionInfo>()?),
StructType::HostScsiDiskPartition => Ok(from.as_any_box().downcast::<HostScsiDiskPartition>()?),
StructType::ScsiLunCapabilities => Ok(from.as_any_box().downcast::<ScsiLunCapabilities>()?),
StructType::ScsiLunDescriptor => Ok(from.as_any_box().downcast::<ScsiLunDescriptor>()?),
StructType::ScsiLunDurableName => Ok(from.as_any_box().downcast::<ScsiLunDurableName>()?),
StructType::HostScsiTopology => Ok(from.as_any_box().downcast::<HostScsiTopology>()?),
StructType::HostScsiTopologyInterface => Ok(from.as_any_box().downcast::<HostScsiTopologyInterface>()?),
StructType::HostScsiTopologyLun => Ok(from.as_any_box().downcast::<HostScsiTopologyLun>()?),
StructType::HostScsiTopologyTarget => Ok(from.as_any_box().downcast::<HostScsiTopologyTarget>()?),
StructType::HostSecuritySpec => Ok(from.as_any_box().downcast::<HostSecuritySpec>()?),
StructType::HostService => Ok(from.as_any_box().downcast::<HostService>()?),
StructType::HostServiceSourcePackage => Ok(from.as_any_box().downcast::<HostServiceSourcePackage>()?),
StructType::HostServiceConfig => Ok(from.as_any_box().downcast::<HostServiceConfig>()?),
StructType::HostServiceInfo => Ok(from.as_any_box().downcast::<HostServiceInfo>()?),
StructType::HostSevInfo => Ok(from.as_any_box().downcast::<HostSevInfo>()?),
StructType::HostSgxInfo => Ok(from.as_any_box().downcast::<HostSgxInfo>()?),
StructType::HostSgxRegistrationInfo => Ok(from.as_any_box().downcast::<HostSgxRegistrationInfo>()?),
StructType::HostSharedGpuCapabilities => Ok(from.as_any_box().downcast::<HostSharedGpuCapabilities>()?),
StructType::HostSnmpSystemAgentLimits => Ok(from.as_any_box().downcast::<HostSnmpSystemAgentLimits>()?),
StructType::HostSnmpConfigSpec => Ok(from.as_any_box().downcast::<HostSnmpConfigSpec>()?),
StructType::HostSnmpDestination => Ok(from.as_any_box().downcast::<HostSnmpDestination>()?),
StructType::SoftwarePackage => Ok(from.as_any_box().downcast::<SoftwarePackage>()?),
StructType::SoftwarePackageCapability => Ok(from.as_any_box().downcast::<SoftwarePackageCapability>()?),
StructType::Relation => Ok(from.as_any_box().downcast::<Relation>()?),
StructType::HostSriovDevicePoolInfo => Ok(from.as_any_box().downcast::<HostSriovDevicePoolInfo>()?),
StructType::HostSriovNetworkDevicePoolInfo => Ok(from.as_any_box().downcast::<HostSriovNetworkDevicePoolInfo>()?),
StructType::HostSslThumbprintInfo => Ok(from.as_any_box().downcast::<HostSslThumbprintInfo>()?),
StructType::HostStorageArrayTypePolicyOption => Ok(from.as_any_box().downcast::<HostStorageArrayTypePolicyOption>()?),
StructType::HostStorageDeviceInfo => Ok(from.as_any_box().downcast::<HostStorageDeviceInfo>()?),
StructType::HostStorageSystemDiskLocatorLedResult => Ok(from.as_any_box().downcast::<HostStorageSystemDiskLocatorLedResult>()?),
StructType::HostStorageSystemScsiLunResult => Ok(from.as_any_box().downcast::<HostStorageSystemScsiLunResult>()?),
StructType::HostStorageSystemVmfsVolumeResult => Ok(from.as_any_box().downcast::<HostStorageSystemVmfsVolumeResult>()?),
StructType::HostListSummary => Ok(from.as_any_box().downcast::<HostListSummary>()?),
StructType::HostConfigSummary => Ok(from.as_any_box().downcast::<HostConfigSummary>()?),
StructType::HostListSummaryGatewaySummary => Ok(from.as_any_box().downcast::<HostListSummaryGatewaySummary>()?),
StructType::HostHardwareSummary => Ok(from.as_any_box().downcast::<HostHardwareSummary>()?),
StructType::HostListSummaryQuickStats => Ok(from.as_any_box().downcast::<HostListSummaryQuickStats>()?),
StructType::SystemEventInfo => Ok(from.as_any_box().downcast::<SystemEventInfo>()?),
StructType::HostSystemHealthInfo => Ok(from.as_any_box().downcast::<HostSystemHealthInfo>()?),
StructType::HostSystemIdentificationInfo => Ok(from.as_any_box().downcast::<HostSystemIdentificationInfo>()?),
StructType::HostSystemInfo => Ok(from.as_any_box().downcast::<HostSystemInfo>()?),
StructType::HostSystemResourceInfo => Ok(from.as_any_box().downcast::<HostSystemResourceInfo>()?),
StructType::HostSystemSwapConfiguration => Ok(from.as_any_box().downcast::<HostSystemSwapConfiguration>()?),
StructType::HostSystemSwapConfigurationSystemSwapOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationSystemSwapOption>()?),
StructType::HostSystemSwapConfigurationDatastoreOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationDatastoreOption>()?),
StructType::HostSystemSwapConfigurationDisabledOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationDisabledOption>()?),
StructType::HostSystemSwapConfigurationHostCacheOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationHostCacheOption>()?),
StructType::HostSystemSwapConfigurationHostLocalSwapOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationHostLocalSwapOption>()?),
StructType::HostTargetTransport => Ok(from.as_any_box().downcast::<HostTargetTransport>()?),
StructType::HostBlockAdapterTargetTransport => Ok(from.as_any_box().downcast::<HostBlockAdapterTargetTransport>()?),
StructType::HostFibreChannelTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetTargetTransport>()?),
StructType::HostInternetScsiTargetTransport => Ok(from.as_any_box().downcast::<HostInternetScsiTargetTransport>()?),
StructType::HostParallelScsiTargetTransport => Ok(from.as_any_box().downcast::<HostParallelScsiTargetTransport>()?),
StructType::HostPcieTargetTransport => Ok(from.as_any_box().downcast::<HostPcieTargetTransport>()?),
StructType::HostRdmaTargetTransport => Ok(from.as_any_box().downcast::<HostRdmaTargetTransport>()?),
StructType::HostSerialAttachedTargetTransport => Ok(from.as_any_box().downcast::<HostSerialAttachedTargetTransport>()?),
StructType::HostTcpTargetTransport => Ok(from.as_any_box().downcast::<HostTcpTargetTransport>()?),
StructType::HostTdxInfo => Ok(from.as_any_box().downcast::<HostTdxInfo>()?),
StructType::HostTpmAttestationInfo => Ok(from.as_any_box().downcast::<HostTpmAttestationInfo>()?),
StructType::HostTpmAttestationReport => Ok(from.as_any_box().downcast::<HostTpmAttestationReport>()?),
StructType::HostTpmEventDetails => Ok(from.as_any_box().downcast::<HostTpmEventDetails>()?),
StructType::HostTpmBootCompleteEventDetails => Ok(from.as_any_box().downcast::<HostTpmBootCompleteEventDetails>()?),
StructType::HostTpmBootSecurityOptionEventDetails => Ok(from.as_any_box().downcast::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Ok(from.as_any_box().downcast::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Ok(from.as_any_box().downcast::<HostTpmSignerEventDetails>()?),
StructType::HostTpmCommandEventDetails => Ok(from.as_any_box().downcast::<HostTpmCommandEventDetails>()?),
StructType::HostTpmOptionEventDetails => Ok(from.as_any_box().downcast::<HostTpmOptionEventDetails>()?),
StructType::HostTpmSoftwareComponentEventDetails => Ok(from.as_any_box().downcast::<HostTpmSoftwareComponentEventDetails>()?),
StructType::HostTpmVersionEventDetails => Ok(from.as_any_box().downcast::<HostTpmVersionEventDetails>()?),
StructType::HostTpmEventLogEntry => Ok(from.as_any_box().downcast::<HostTpmEventLogEntry>()?),
StructType::HostTrustAuthorityAttestationInfo => Ok(from.as_any_box().downcast::<HostTrustAuthorityAttestationInfo>()?),
StructType::HostUnresolvedVmfsExtent => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsExtent>()?),
StructType::HostUnresolvedVmfsResignatureSpec => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsResignatureSpec>()?),
StructType::HostUnresolvedVmfsResolutionResult => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsResolutionResult>()?),
StructType::HostUnresolvedVmfsResolutionSpec => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsResolutionSpec>()?),
StructType::HostUnresolvedVmfsVolume => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsVolume>()?),
StructType::HostUnresolvedVmfsVolumeResolveStatus => Ok(from.as_any_box().downcast::<HostUnresolvedVmfsVolumeResolveStatus>()?),
StructType::HostVFlashManagerVFlashCacheConfigInfo => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashCacheConfigInfo>()?),
StructType::HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption>()?),
StructType::HostVFlashManagerVFlashCacheConfigSpec => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashCacheConfigSpec>()?),
StructType::HostVFlashManagerVFlashConfigInfo => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashConfigInfo>()?),
StructType::HostVFlashManagerVFlashResourceConfigInfo => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashResourceConfigInfo>()?),
StructType::HostVFlashManagerVFlashResourceConfigSpec => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashResourceConfigSpec>()?),
StructType::HostVFlashManagerVFlashResourceRunTimeInfo => Ok(from.as_any_box().downcast::<HostVFlashManagerVFlashResourceRunTimeInfo>()?),
StructType::HostVFlashResourceConfigurationResult => Ok(from.as_any_box().downcast::<HostVFlashResourceConfigurationResult>()?),
StructType::HostVMotionConfig => Ok(from.as_any_box().downcast::<HostVMotionConfig>()?),
StructType::HostVMotionInfo => Ok(from.as_any_box().downcast::<HostVMotionInfo>()?),
StructType::HostVMotionManagerDstInstantCloneResult => Ok(from.as_any_box().downcast::<HostVMotionManagerDstInstantCloneResult>()?),
StructType::HostVMotionManagerSrcInstantCloneResult => Ok(from.as_any_box().downcast::<HostVMotionManagerSrcInstantCloneResult>()?),
StructType::HostVMotionNetConfig => Ok(from.as_any_box().downcast::<HostVMotionNetConfig>()?),
StructType::VimHostVsanStretchedClusterHostCapability => Ok(from.as_any_box().downcast::<VimHostVsanStretchedClusterHostCapability>()?),
StructType::HostVffsSpec => Ok(from.as_any_box().downcast::<HostVffsSpec>()?),
StructType::HostVirtualNic => Ok(from.as_any_box().downcast::<HostVirtualNic>()?),
StructType::HostVirtualNicConfig => Ok(from.as_any_box().downcast::<HostVirtualNicConfig>()?),
StructType::HostVirtualNicIpRouteSpec => Ok(from.as_any_box().downcast::<HostVirtualNicIpRouteSpec>()?),
StructType::HostVirtualNicOpaqueNetworkSpec => Ok(from.as_any_box().downcast::<HostVirtualNicOpaqueNetworkSpec>()?),
StructType::HostVirtualNicSpec => Ok(from.as_any_box().downcast::<HostVirtualNicSpec>()?),
StructType::HostVirtualNicConnection => Ok(from.as_any_box().downcast::<HostVirtualNicConnection>()?),
StructType::VirtualNicManagerNetConfig => Ok(from.as_any_box().downcast::<VirtualNicManagerNetConfig>()?),
StructType::HostVirtualNicManagerNicTypeSelection => Ok(from.as_any_box().downcast::<HostVirtualNicManagerNicTypeSelection>()?),
StructType::HostVirtualNicManagerInfo => Ok(from.as_any_box().downcast::<HostVirtualNicManagerInfo>()?),
StructType::HostVirtualSwitch => Ok(from.as_any_box().downcast::<HostVirtualSwitch>()?),
StructType::HostVirtualSwitchBeaconConfig => Ok(from.as_any_box().downcast::<HostVirtualSwitchBeaconConfig>()?),
StructType::HostVirtualSwitchBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchBridge>()?),
StructType::HostVirtualSwitchAutoBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchAutoBridge>()?),
StructType::HostVirtualSwitchBondBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchBondBridge>()?),
StructType::HostVirtualSwitchSimpleBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchSimpleBridge>()?),
StructType::HostVirtualSwitchConfig => Ok(from.as_any_box().downcast::<HostVirtualSwitchConfig>()?),
StructType::HostVirtualSwitchSpec => Ok(from.as_any_box().downcast::<HostVirtualSwitchSpec>()?),
StructType::HostVmciAccessManagerAccessSpec => Ok(from.as_any_box().downcast::<HostVmciAccessManagerAccessSpec>()?),
StructType::VmfsDatastoreOption => Ok(from.as_any_box().downcast::<VmfsDatastoreOption>()?),
StructType::VmfsDatastoreBaseOption => Ok(from.as_any_box().downcast::<VmfsDatastoreBaseOption>()?),
StructType::VmfsDatastoreMultipleExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreMultipleExtentOption>()?),
StructType::VmfsDatastoreSingleExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreAllExtentOption>()?),
StructType::VmfsDatastoreSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreSpec>()?),
StructType::VmfsDatastoreCreateSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreCreateSpec>()?),
StructType::VmfsDatastoreExpandSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreExpandSpec>()?),
StructType::VmfsDatastoreExtendSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreExtendSpec>()?),
StructType::HostVmfsRescanResult => Ok(from.as_any_box().downcast::<HostVmfsRescanResult>()?),
StructType::VmfsConfigOption => Ok(from.as_any_box().downcast::<VmfsConfigOption>()?),
StructType::HostVmfsSpec => Ok(from.as_any_box().downcast::<HostVmfsSpec>()?),
StructType::VmfsUnmapBandwidthSpec => Ok(from.as_any_box().downcast::<VmfsUnmapBandwidthSpec>()?),
StructType::VsanBasicDeviceInfo => Ok(from.as_any_box().downcast::<VsanBasicDeviceInfo>()?),
StructType::VsanClusterMembershipInfo => Ok(from.as_any_box().downcast::<VsanClusterMembershipInfo>()?),
StructType::VsanDaemonHealth => Ok(from.as_any_box().downcast::<VsanDaemonHealth>()?),
StructType::VsanDiskEncryptionHealth => Ok(from.as_any_box().downcast::<VsanDiskEncryptionHealth>()?),
StructType::VsanDiskRebalanceResult => Ok(from.as_any_box().downcast::<VsanDiskRebalanceResult>()?),
StructType::VsanDitEncryptionHealthSummary => Ok(from.as_any_box().downcast::<VsanDitEncryptionHealthSummary>()?),
StructType::VsanEncryptionHealthSummary => Ok(from.as_any_box().downcast::<VsanEncryptionHealthSummary>()?),
StructType::VsanFailedRepairObjectResult => Ok(from.as_any_box().downcast::<VsanFailedRepairObjectResult>()?),
StructType::VsanFileServerHealthSummary => Ok(from.as_any_box().downcast::<VsanFileServerHealthSummary>()?),
StructType::VsanFileServiceBalanceHealth => Ok(from.as_any_box().downcast::<VsanFileServiceBalanceHealth>()?),
StructType::VsanFileServiceHealthSummary => Ok(from.as_any_box().downcast::<VsanFileServiceHealthSummary>()?),
StructType::VsanFileServiceRootFsHealth => Ok(from.as_any_box().downcast::<VsanFileServiceRootFsHealth>()?),
StructType::VsanFileServiceShareHealthSummary => Ok(from.as_any_box().downcast::<VsanFileServiceShareHealthSummary>()?),
StructType::VsanHclCommonDeviceInfo => Ok(from.as_any_box().downcast::<VsanHclCommonDeviceInfo>()?),
StructType::VsanHclNicInfo => Ok(from.as_any_box().downcast::<VsanHclNicInfo>()?),
StructType::VsanHclComputeResource => Ok(from.as_any_box().downcast::<VsanHclComputeResource>()?),
StructType::VsanHclControllerInfo => Ok(from.as_any_box().downcast::<VsanHclControllerInfo>()?),
StructType::VsanHclDiskInfo => Ok(from.as_any_box().downcast::<VsanHclDiskInfo>()?),
StructType::VsanHclFirmwareFile => Ok(from.as_any_box().downcast::<VsanHclFirmwareFile>()?),
StructType::VsanHclFirmwareUpdateSpec => Ok(from.as_any_box().downcast::<VsanHclFirmwareUpdateSpec>()?),
StructType::VsanHclMemInfo => Ok(from.as_any_box().downcast::<VsanHclMemInfo>()?),
StructType::VsanHealthQuerySpec => Ok(from.as_any_box().downcast::<VsanHealthQuerySpec>()?),
StructType::VsanHostCimProviderInfo => Ok(from.as_any_box().downcast::<VsanHostCimProviderInfo>()?),
StructType::VsanHostEmmSummary => Ok(from.as_any_box().downcast::<VsanHostEmmSummary>()?),
StructType::VsanHostFwComponent => Ok(from.as_any_box().downcast::<VsanHostFwComponent>()?),
StructType::VsanHostGlobalDedupConfigHealthSummary => Ok(from.as_any_box().downcast::<VsanHostGlobalDedupConfigHealthSummary>()?),
StructType::VsanHostHclInfo => Ok(from.as_any_box().downcast::<VsanHostHclInfo>()?),
StructType::VsanHostHealthSystemStatusResult => Ok(from.as_any_box().downcast::<VsanHostHealthSystemStatusResult>()?),
StructType::VsanHostHwDeviceId => Ok(from.as_any_box().downcast::<VsanHostHwDeviceId>()?),
StructType::VsanHostIoInsightInfo => Ok(from.as_any_box().downcast::<VsanHostIoInsightInfo>()?),
StructType::VsanHostQueryCheckLimitsSpec => Ok(from.as_any_box().downcast::<VsanHostQueryCheckLimitsSpec>()?),
StructType::VsanHostReference => Ok(from.as_any_box().downcast::<VsanHostReference>()?),
StructType::VsanHostVirtualApplianceInfo => Ok(from.as_any_box().downcast::<VsanHostVirtualApplianceInfo>()?),
StructType::VsanHostVmdkLoadTestResult => Ok(from.as_any_box().downcast::<VsanHostVmdkLoadTestResult>()?),
StructType::VsanHwToVcgInfoMapping => Ok(from.as_any_box().downcast::<VsanHwToVcgInfoMapping>()?),
StructType::HostVsanInternalSystemCmmdsQuery => Ok(from.as_any_box().downcast::<HostVsanInternalSystemCmmdsQuery>()?),
StructType::HostVsanInternalSystemDeleteVsanObjectsResult => Ok(from.as_any_box().downcast::<HostVsanInternalSystemDeleteVsanObjectsResult>()?),
StructType::VsanNewPolicyBatch => Ok(from.as_any_box().downcast::<VsanNewPolicyBatch>()?),
StructType::VsanPolicyChangeBatch => Ok(from.as_any_box().downcast::<VsanPolicyChangeBatch>()?),
StructType::VsanPolicyCost => Ok(from.as_any_box().downcast::<VsanPolicyCost>()?),
StructType::VsanPolicySatisfiability => Ok(from.as_any_box().downcast::<VsanPolicySatisfiability>()?),
StructType::HostVsanInternalSystemVsanObjectOperationResult => Ok(from.as_any_box().downcast::<HostVsanInternalSystemVsanObjectOperationResult>()?),
StructType::HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult => Ok(from.as_any_box().downcast::<HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult>()?),
StructType::VsanIoInsightInfo => Ok(from.as_any_box().downcast::<VsanIoInsightInfo>()?),
StructType::VsanIperfClientSpec => Ok(from.as_any_box().downcast::<VsanIperfClientSpec>()?),
StructType::VsanKmsHealth => Ok(from.as_any_box().downcast::<VsanKmsHealth>()?),
StructType::VsanLimitHealthResult => Ok(from.as_any_box().downcast::<VsanLimitHealthResult>()?),
StructType::VsanNetworkDiagnosticsHealthInfo => Ok(from.as_any_box().downcast::<VsanNetworkDiagnosticsHealthInfo>()?),
StructType::VsanNetworkHealthResult => Ok(from.as_any_box().downcast::<VsanNetworkHealthResult>()?),
StructType::VsanNetworkLoadTestResult => Ok(from.as_any_box().downcast::<VsanNetworkLoadTestResult>()?),
StructType::VsanNetworkPeerHealthResult => Ok(from.as_any_box().downcast::<VsanNetworkPeerHealthResult>()?),
StructType::VsanNicRdmaInfo => Ok(from.as_any_box().downcast::<VsanNicRdmaInfo>()?),
StructType::VsanObjectHealth => Ok(from.as_any_box().downcast::<VsanObjectHealth>()?),
StructType::VsanObjectOverallHealth => Ok(from.as_any_box().downcast::<VsanObjectOverallHealth>()?),
StructType::VsanPhysicalDiskHealth => Ok(from.as_any_box().downcast::<VsanPhysicalDiskHealth>()?),
StructType::VsanPhysicalDiskHealthSummary => Ok(from.as_any_box().downcast::<VsanPhysicalDiskHealthSummary>()?),
StructType::VsanProactiveRebalanceInfoEx => Ok(from.as_any_box().downcast::<VsanProactiveRebalanceInfoEx>()?),
StructType::VsanQueryResultHostInfo => Ok(from.as_any_box().downcast::<VsanQueryResultHostInfo>()?),
StructType::VsanRepairObjectsResult => Ok(from.as_any_box().downcast::<VsanRepairObjectsResult>()?),
StructType::VsanResourceHealth => Ok(from.as_any_box().downcast::<VsanResourceHealth>()?),
StructType::VsanServerClusterInfo => Ok(from.as_any_box().downcast::<VsanServerClusterInfo>()?),
StructType::VsanSmartDiskStats => Ok(from.as_any_box().downcast::<VsanSmartDiskStats>()?),
StructType::VsanSmartParameter => Ok(from.as_any_box().downcast::<VsanSmartParameter>()?),
StructType::VsanSmartStatsHostSummary => Ok(from.as_any_box().downcast::<VsanSmartStatsHostSummary>()?),
StructType::VsanVcgDeviceInfo => Ok(from.as_any_box().downcast::<VsanVcgDeviceInfo>()?),
StructType::VsanVmdkIoLoadSpec => Ok(from.as_any_box().downcast::<VsanVmdkIoLoadSpec>()?),
StructType::VsanVmdkLoadTestResult => Ok(from.as_any_box().downcast::<VsanVmdkLoadTestResult>()?),
StructType::VsanVmdkLoadTestSpec => Ok(from.as_any_box().downcast::<VsanVmdkLoadTestSpec>()?),
StructType::VsanVsanPcapResult => Ok(from.as_any_box().downcast::<VsanVsanPcapResult>()?),
StructType::HostVvolNqn => Ok(from.as_any_box().downcast::<HostVvolNqn>()?),
StructType::VVolHostPe => Ok(from.as_any_box().downcast::<VVolHostPe>()?),
StructType::HostVvolVolumeHostVvolNqn => Ok(from.as_any_box().downcast::<HostVvolVolumeHostVvolNqn>()?),
StructType::HostVvolVolumeSpecification => Ok(from.as_any_box().downcast::<HostVvolVolumeSpecification>()?),
StructType::NetDhcpConfigInfo => Ok(from.as_any_box().downcast::<NetDhcpConfigInfo>()?),
StructType::NetDhcpConfigInfoDhcpOptions => Ok(from.as_any_box().downcast::<NetDhcpConfigInfoDhcpOptions>()?),
StructType::NetDhcpConfigSpec => Ok(from.as_any_box().downcast::<NetDhcpConfigSpec>()?),
StructType::NetDhcpConfigSpecDhcpOptionsSpec => Ok(from.as_any_box().downcast::<NetDhcpConfigSpecDhcpOptionsSpec>()?),
StructType::NetDnsConfigInfo => Ok(from.as_any_box().downcast::<NetDnsConfigInfo>()?),
StructType::NetDnsConfigSpec => Ok(from.as_any_box().downcast::<NetDnsConfigSpec>()?),
StructType::NetIpConfigInfo => Ok(from.as_any_box().downcast::<NetIpConfigInfo>()?),
StructType::NetIpConfigInfoIpAddress => Ok(from.as_any_box().downcast::<NetIpConfigInfoIpAddress>()?),
StructType::NetIpConfigSpec => Ok(from.as_any_box().downcast::<NetIpConfigSpec>()?),
StructType::NetIpConfigSpecIpAddressSpec => Ok(from.as_any_box().downcast::<NetIpConfigSpecIpAddressSpec>()?),
StructType::NetIpRouteConfigInfo => Ok(from.as_any_box().downcast::<NetIpRouteConfigInfo>()?),
StructType::NetIpRouteConfigInfoGateway => Ok(from.as_any_box().downcast::<NetIpRouteConfigInfoGateway>()?),
StructType::NetIpRouteConfigInfoIpRoute => Ok(from.as_any_box().downcast::<NetIpRouteConfigInfoIpRoute>()?),
StructType::NetIpRouteConfigSpec => Ok(from.as_any_box().downcast::<NetIpRouteConfigSpec>()?),
StructType::NetIpRouteConfigSpecGatewaySpec => Ok(from.as_any_box().downcast::<NetIpRouteConfigSpecGatewaySpec>()?),
StructType::NetIpRouteConfigSpecIpRouteSpec => Ok(from.as_any_box().downcast::<NetIpRouteConfigSpecIpRouteSpec>()?),
StructType::NetIpStackInfo => Ok(from.as_any_box().downcast::<NetIpStackInfo>()?),
StructType::NetIpStackInfoDefaultRouter => Ok(from.as_any_box().downcast::<NetIpStackInfoDefaultRouter>()?),
StructType::NetIpStackInfoNetToMedia => Ok(from.as_any_box().downcast::<NetIpStackInfoNetToMedia>()?),
StructType::NetBiosConfigInfo => Ok(from.as_any_box().downcast::<NetBiosConfigInfo>()?),
StructType::WinNetBiosConfigInfo => Ok(from.as_any_box().downcast::<WinNetBiosConfigInfo>()?),
StructType::ArrayUpdateSpec => Ok(from.as_any_box().downcast::<ArrayUpdateSpec>()?),
StructType::ClusterDasVmConfigSpec => Ok(from.as_any_box().downcast::<ClusterDasVmConfigSpec>()?),
StructType::ClusterDatastoreUpdateSpec => Ok(from.as_any_box().downcast::<ClusterDatastoreUpdateSpec>()?),
StructType::ClusterDpmHostConfigSpec => Ok(from.as_any_box().downcast::<ClusterDpmHostConfigSpec>()?),
StructType::ClusterDrsVmConfigSpec => Ok(from.as_any_box().downcast::<ClusterDrsVmConfigSpec>()?),
StructType::ClusterGroupSpec => Ok(from.as_any_box().downcast::<ClusterGroupSpec>()?),
StructType::ClusterPreemptibleVmPairSpec => Ok(from.as_any_box().downcast::<ClusterPreemptibleVmPairSpec>()?),
StructType::ClusterRuleSpec => Ok(from.as_any_box().downcast::<ClusterRuleSpec>()?),
StructType::ClusterTagCategoryUpdateSpec => Ok(from.as_any_box().downcast::<ClusterTagCategoryUpdateSpec>()?),
StructType::ClusterVmOrchestrationSpec => Ok(from.as_any_box().downcast::<ClusterVmOrchestrationSpec>()?),
StructType::StorageDrsOptionSpec => Ok(from.as_any_box().downcast::<StorageDrsOptionSpec>()?),
StructType::StorageDrsVmConfigSpec => Ok(from.as_any_box().downcast::<StorageDrsVmConfigSpec>()?),
StructType::VAppOvfSectionSpec => Ok(from.as_any_box().downcast::<VAppOvfSectionSpec>()?),
StructType::VAppProductSpec => Ok(from.as_any_box().downcast::<VAppProductSpec>()?),
StructType::VAppPropertySpec => Ok(from.as_any_box().downcast::<VAppPropertySpec>()?),
StructType::VirtualMachineCpuIdInfoSpec => Ok(from.as_any_box().downcast::<VirtualMachineCpuIdInfoSpec>()?),
StructType::OptionType => Ok(from.as_any_box().downcast::<OptionType>()?),
StructType::BoolOption => Ok(from.as_any_box().downcast::<BoolOption>()?),
StructType::ChoiceOption => Ok(from.as_any_box().downcast::<ChoiceOption>()?),
StructType::FloatOption => Ok(from.as_any_box().downcast::<FloatOption>()?),
StructType::IntOption => Ok(from.as_any_box().downcast::<IntOption>()?),
StructType::LongOption => Ok(from.as_any_box().downcast::<LongOption>()?),
StructType::StringOption => Ok(from.as_any_box().downcast::<StringOption>()?),
StructType::OptionValue => Ok(from.as_any_box().downcast::<OptionValue>()?),
StructType::HostInternetScsiHbaParamValue => Ok(from.as_any_box().downcast::<HostInternetScsiHbaParamValue>()?),
StructType::ApplyProfile => Ok(from.as_any_box().downcast::<ApplyProfile>()?),
StructType::ProfileApplyProfileElement => Ok(from.as_any_box().downcast::<ProfileApplyProfileElement>()?),
StructType::ActiveDirectoryProfile => Ok(from.as_any_box().downcast::<ActiveDirectoryProfile>()?),
StructType::AuthenticationProfile => Ok(from.as_any_box().downcast::<AuthenticationProfile>()?),
StructType::DateTimeProfile => Ok(from.as_any_box().downcast::<DateTimeProfile>()?),
StructType::DvsProfile => Ok(from.as_any_box().downcast::<DvsProfile>()?),
StructType::DvsVNicProfile => Ok(from.as_any_box().downcast::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Ok(from.as_any_box().downcast::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Ok(from.as_any_box().downcast::<DvsServiceConsoleVNicProfile>()?),
StructType::FirewallProfile => Ok(from.as_any_box().downcast::<FirewallProfile>()?),
StructType::FirewallProfileRulesetProfile => Ok(from.as_any_box().downcast::<FirewallProfileRulesetProfile>()?),
StructType::HostApplyProfile => Ok(from.as_any_box().downcast::<HostApplyProfile>()?),
StructType::HostMemoryProfile => Ok(from.as_any_box().downcast::<HostMemoryProfile>()?),
StructType::IpAddressProfile => Ok(from.as_any_box().downcast::<IpAddressProfile>()?),
StructType::IpRouteProfile => Ok(from.as_any_box().downcast::<IpRouteProfile>()?),
StructType::NasStorageProfile => Ok(from.as_any_box().downcast::<NasStorageProfile>()?),
StructType::NetStackInstanceProfile => Ok(from.as_any_box().downcast::<NetStackInstanceProfile>()?),
StructType::NetworkPolicyProfile => Ok(from.as_any_box().downcast::<NetworkPolicyProfile>()?),
StructType::NetworkProfile => Ok(from.as_any_box().downcast::<NetworkProfile>()?),
StructType::NetworkProfileDnsConfigProfile => Ok(from.as_any_box().downcast::<NetworkProfileDnsConfigProfile>()?),
StructType::NsxHostVNicProfile => Ok(from.as_any_box().downcast::<NsxHostVNicProfile>()?),
StructType::OpaqueSwitchProfile => Ok(from.as_any_box().downcast::<OpaqueSwitchProfile>()?),
StructType::OptionProfile => Ok(from.as_any_box().downcast::<OptionProfile>()?),
StructType::PermissionProfile => Ok(from.as_any_box().downcast::<PermissionProfile>()?),
StructType::PhysicalNicProfile => Ok(from.as_any_box().downcast::<PhysicalNicProfile>()?),
StructType::PnicUplinkProfile => Ok(from.as_any_box().downcast::<PnicUplinkProfile>()?),
StructType::PortGroupProfile => Ok(from.as_any_box().downcast::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Ok(from.as_any_box().downcast::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Ok(from.as_any_box().downcast::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Ok(from.as_any_box().downcast::<VmPortGroupProfile>()?),
StructType::VirtualSwitchSelectionProfile => Ok(from.as_any_box().downcast::<VirtualSwitchSelectionProfile>()?),
StructType::VlanProfile => Ok(from.as_any_box().downcast::<VlanProfile>()?),
StructType::SecurityProfile => Ok(from.as_any_box().downcast::<SecurityProfile>()?),
StructType::ServiceProfile => Ok(from.as_any_box().downcast::<ServiceProfile>()?),
StructType::StaticRouteProfile => Ok(from.as_any_box().downcast::<StaticRouteProfile>()?),
StructType::StorageProfile => Ok(from.as_any_box().downcast::<StorageProfile>()?),
StructType::UserGroupProfile => Ok(from.as_any_box().downcast::<UserGroupProfile>()?),
StructType::UserProfile => Ok(from.as_any_box().downcast::<UserProfile>()?),
StructType::VirtualSwitchProfile => Ok(from.as_any_box().downcast::<VirtualSwitchProfile>()?),
StructType::LinkProfile => Ok(from.as_any_box().downcast::<LinkProfile>()?),
StructType::NumPortsProfile => Ok(from.as_any_box().downcast::<NumPortsProfile>()?),
StructType::ProfileApplyProfileProperty => Ok(from.as_any_box().downcast::<ProfileApplyProfileProperty>()?),
StructType::ComplianceLocator => Ok(from.as_any_box().downcast::<ComplianceLocator>()?),
StructType::ComplianceProfile => Ok(from.as_any_box().downcast::<ComplianceProfile>()?),
StructType::ComplianceResult => Ok(from.as_any_box().downcast::<ComplianceResult>()?),
StructType::ComplianceFailure => Ok(from.as_any_box().downcast::<ComplianceFailure>()?),
StructType::ComplianceFailureComplianceFailureValues => Ok(from.as_any_box().downcast::<ComplianceFailureComplianceFailureValues>()?),
StructType::ProfileDeferredPolicyOptionParameter => Ok(from.as_any_box().downcast::<ProfileDeferredPolicyOptionParameter>()?),
StructType::ProfileExpression => Ok(from.as_any_box().downcast::<ProfileExpression>()?),
StructType::ProfileCompositeExpression => Ok(from.as_any_box().downcast::<ProfileCompositeExpression>()?),
StructType::ProfileSimpleExpression => Ok(from.as_any_box().downcast::<ProfileSimpleExpression>()?),
StructType::ProfileExpressionMetadata => Ok(from.as_any_box().downcast::<ProfileExpressionMetadata>()?),
StructType::ProfileParameterMetadata => Ok(from.as_any_box().downcast::<ProfileParameterMetadata>()?),
StructType::ProfileParameterMetadataParameterRelationMetadata => Ok(from.as_any_box().downcast::<ProfileParameterMetadataParameterRelationMetadata>()?),
StructType::ProfilePolicy => Ok(from.as_any_box().downcast::<ProfilePolicy>()?),
StructType::ProfilePolicyMetadata => Ok(from.as_any_box().downcast::<ProfilePolicyMetadata>()?),
StructType::PolicyOption => Ok(from.as_any_box().downcast::<PolicyOption>()?),
StructType::CompositePolicyOption => Ok(from.as_any_box().downcast::<CompositePolicyOption>()?),
StructType::ProfilePolicyOptionMetadata => Ok(from.as_any_box().downcast::<ProfilePolicyOptionMetadata>()?),
StructType::ProfileCompositePolicyOptionMetadata => Ok(from.as_any_box().downcast::<ProfileCompositePolicyOptionMetadata>()?),
StructType::UserInputRequiredParameterMetadata => Ok(from.as_any_box().downcast::<UserInputRequiredParameterMetadata>()?),
StructType::ProfileConfigInfo => Ok(from.as_any_box().downcast::<ProfileConfigInfo>()?),
StructType::ClusterProfileConfigInfo => Ok(from.as_any_box().downcast::<ClusterProfileConfigInfo>()?),
StructType::HostProfileConfigInfo => Ok(from.as_any_box().downcast::<HostProfileConfigInfo>()?),
StructType::ProfileCreateSpec => Ok(from.as_any_box().downcast::<ProfileCreateSpec>()?),
StructType::ProfileSerializedCreateSpec => Ok(from.as_any_box().downcast::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Ok(from.as_any_box().downcast::<HostProfileSerializedHostProfileSpec>()?),
StructType::ClusterProfileCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigServiceCreateSpec>()?),
StructType::HostProfileConfigSpec => Ok(from.as_any_box().downcast::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Ok(from.as_any_box().downcast::<HostProfileHostBasedConfigSpec>()?),
StructType::ProfileDescription => Ok(from.as_any_box().downcast::<ProfileDescription>()?),
StructType::ProfileDescriptionSection => Ok(from.as_any_box().downcast::<ProfileDescriptionSection>()?),
StructType::ProfileMetadata => Ok(from.as_any_box().downcast::<ProfileMetadata>()?),
StructType::ProfileMetadataProfileOperationMessage => Ok(from.as_any_box().downcast::<ProfileMetadataProfileOperationMessage>()?),
StructType::ProfileMetadataProfileSortSpec => Ok(from.as_any_box().downcast::<ProfileMetadataProfileSortSpec>()?),
StructType::ProfilePropertyPath => Ok(from.as_any_box().downcast::<ProfilePropertyPath>()?),
StructType::ProfileProfileStructure => Ok(from.as_any_box().downcast::<ProfileProfileStructure>()?),
StructType::ProfileProfileStructureProperty => Ok(from.as_any_box().downcast::<ProfileProfileStructureProperty>()?),
StructType::AnswerFile => Ok(from.as_any_box().downcast::<AnswerFile>()?),
StructType::AnswerFileStatusResult => Ok(from.as_any_box().downcast::<AnswerFileStatusResult>()?),
StructType::AnswerFileStatusError => Ok(from.as_any_box().downcast::<AnswerFileStatusError>()?),
StructType::ProfileExecuteResult => Ok(from.as_any_box().downcast::<ProfileExecuteResult>()?),
StructType::ApplyHostProfileConfigurationSpec => Ok(from.as_any_box().downcast::<ApplyHostProfileConfigurationSpec>()?),
StructType::ProfileExecuteError => Ok(from.as_any_box().downcast::<ProfileExecuteError>()?),
StructType::HostProfileValidationFailureInfo => Ok(from.as_any_box().downcast::<HostProfileValidationFailureInfo>()?),
StructType::HostSpecification => Ok(from.as_any_box().downcast::<HostSpecification>()?),
StructType::HostSubSpecification => Ok(from.as_any_box().downcast::<HostSubSpecification>()?),
StructType::AnswerFileCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileCreateSpec>()?),
StructType::AnswerFileOptionsCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileOptionsCreateSpec>()?),
StructType::AnswerFileSerializedCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileSerializedCreateSpec>()?),
StructType::ApplyHostProfileConfigurationResult => Ok(from.as_any_box().downcast::<ApplyHostProfileConfigurationResult>()?),
StructType::HostProfileManagerCompositionResult => Ok(from.as_any_box().downcast::<HostProfileManagerCompositionResult>()?),
StructType::HostProfileManagerCompositionResultResultElement => Ok(from.as_any_box().downcast::<HostProfileManagerCompositionResultResultElement>()?),
StructType::HostProfileManagerCompositionValidationResult => Ok(from.as_any_box().downcast::<HostProfileManagerCompositionValidationResult>()?),
StructType::HostProfileManagerCompositionValidationResultResultElement => Ok(from.as_any_box().downcast::<HostProfileManagerCompositionValidationResultResultElement>()?),
StructType::HostProfileManagerConfigTaskList => Ok(from.as_any_box().downcast::<HostProfileManagerConfigTaskList>()?),
StructType::HostProfilesEntityCustomizations => Ok(from.as_any_box().downcast::<HostProfilesEntityCustomizations>()?),
StructType::StructuredCustomizations => Ok(from.as_any_box().downcast::<StructuredCustomizations>()?),
StructType::HostProfileManagerHostToConfigSpecMap => Ok(from.as_any_box().downcast::<HostProfileManagerHostToConfigSpecMap>()?),
StructType::ScheduledTaskDescription => Ok(from.as_any_box().downcast::<ScheduledTaskDescription>()?),
StructType::ScheduledTaskSpec => Ok(from.as_any_box().downcast::<ScheduledTaskSpec>()?),
StructType::ScheduledTaskInfo => Ok(from.as_any_box().downcast::<ScheduledTaskInfo>()?),
StructType::TaskScheduler => Ok(from.as_any_box().downcast::<TaskScheduler>()?),
StructType::AfterStartupTaskScheduler => Ok(from.as_any_box().downcast::<AfterStartupTaskScheduler>()?),
StructType::OnceTaskScheduler => Ok(from.as_any_box().downcast::<OnceTaskScheduler>()?),
StructType::RecurrentTaskScheduler => Ok(from.as_any_box().downcast::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Ok(from.as_any_box().downcast::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Ok(from.as_any_box().downcast::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Ok(from.as_any_box().downcast::<WeeklyTaskScheduler>()?),
StructType::ApplyStorageRecommendationResult => Ok(from.as_any_box().downcast::<ApplyStorageRecommendationResult>()?),
StructType::StorageDrsAutomationConfig => Ok(from.as_any_box().downcast::<StorageDrsAutomationConfig>()?),
StructType::StorageDrsConfigInfo => Ok(from.as_any_box().downcast::<StorageDrsConfigInfo>()?),
StructType::StorageDrsConfigSpec => Ok(from.as_any_box().downcast::<StorageDrsConfigSpec>()?),
StructType::StorageDrsIoLoadBalanceConfig => Ok(from.as_any_box().downcast::<StorageDrsIoLoadBalanceConfig>()?),
StructType::PlacementAffinityRule => Ok(from.as_any_box().downcast::<PlacementAffinityRule>()?),
StructType::PlacementRankResult => Ok(from.as_any_box().downcast::<PlacementRankResult>()?),
StructType::PlacementRankSpec => Ok(from.as_any_box().downcast::<PlacementRankSpec>()?),
StructType::StorageDrsPlacementRankVmSpec => Ok(from.as_any_box().downcast::<StorageDrsPlacementRankVmSpec>()?),
StructType::StorageDrsPodConfigInfo => Ok(from.as_any_box().downcast::<StorageDrsPodConfigInfo>()?),
StructType::StorageDrsPodConfigSpec => Ok(from.as_any_box().downcast::<StorageDrsPodConfigSpec>()?),
StructType::StorageDrsPodSelectionSpec => Ok(from.as_any_box().downcast::<StorageDrsPodSelectionSpec>()?),
StructType::PodDiskLocator => Ok(from.as_any_box().downcast::<PodDiskLocator>()?),
StructType::VmPodConfigForPlacement => Ok(from.as_any_box().downcast::<VmPodConfigForPlacement>()?),
StructType::StorageDrsSpaceLoadBalanceConfig => Ok(from.as_any_box().downcast::<StorageDrsSpaceLoadBalanceConfig>()?),
StructType::StoragePlacementResult => Ok(from.as_any_box().downcast::<StoragePlacementResult>()?),
StructType::StoragePlacementSpec => Ok(from.as_any_box().downcast::<StoragePlacementSpec>()?),
StructType::StorageDrsVmConfigInfo => Ok(from.as_any_box().downcast::<StorageDrsVmConfigInfo>()?),
StructType::VAppCloneSpec => Ok(from.as_any_box().downcast::<VAppCloneSpec>()?),
StructType::VAppCloneSpecNetworkMappingPair => Ok(from.as_any_box().downcast::<VAppCloneSpecNetworkMappingPair>()?),
StructType::VAppCloneSpecResourceMap => Ok(from.as_any_box().downcast::<VAppCloneSpecResourceMap>()?),
StructType::VAppEntityConfigInfo => Ok(from.as_any_box().downcast::<VAppEntityConfigInfo>()?),
StructType::VAppIpAssignmentInfo => Ok(from.as_any_box().downcast::<VAppIpAssignmentInfo>()?),
StructType::IpPool => Ok(from.as_any_box().downcast::<IpPool>()?),
StructType::IpPoolAssociation => Ok(from.as_any_box().downcast::<IpPoolAssociation>()?),
StructType::IpPoolIpPoolConfigInfo => Ok(from.as_any_box().downcast::<IpPoolIpPoolConfigInfo>()?),
StructType::VAppOvfSectionInfo => Ok(from.as_any_box().downcast::<VAppOvfSectionInfo>()?),
StructType::VAppProductInfo => Ok(from.as_any_box().downcast::<VAppProductInfo>()?),
StructType::VAppPropertyInfo => Ok(from.as_any_box().downcast::<VAppPropertyInfo>()?),
StructType::VmConfigInfo => Ok(from.as_any_box().downcast::<VmConfigInfo>()?),
StructType::VAppConfigInfo => Ok(from.as_any_box().downcast::<VAppConfigInfo>()?),
StructType::VmConfigSpec => Ok(from.as_any_box().downcast::<VmConfigSpec>()?),
StructType::VAppConfigSpec => Ok(from.as_any_box().downcast::<VAppConfigSpec>()?),
StructType::ClusterNetworkConfigSpec => Ok(from.as_any_box().downcast::<ClusterNetworkConfigSpec>()?),
StructType::FailoverNodeInfo => Ok(from.as_any_box().downcast::<FailoverNodeInfo>()?),
StructType::NodeDeploymentSpec => Ok(from.as_any_box().downcast::<NodeDeploymentSpec>()?),
StructType::PassiveNodeDeploymentSpec => Ok(from.as_any_box().downcast::<PassiveNodeDeploymentSpec>()?),
StructType::NodeNetworkSpec => Ok(from.as_any_box().downcast::<NodeNetworkSpec>()?),
StructType::PassiveNodeNetworkSpec => Ok(from.as_any_box().downcast::<PassiveNodeNetworkSpec>()?),
StructType::SourceNodeSpec => Ok(from.as_any_box().downcast::<SourceNodeSpec>()?),
StructType::VchaClusterConfigInfo => Ok(from.as_any_box().downcast::<VchaClusterConfigInfo>()?),
StructType::VchaClusterConfigSpec => Ok(from.as_any_box().downcast::<VchaClusterConfigSpec>()?),
StructType::VchaClusterDeploymentSpec => Ok(from.as_any_box().downcast::<VchaClusterDeploymentSpec>()?),
StructType::VchaClusterNetworkSpec => Ok(from.as_any_box().downcast::<VchaClusterNetworkSpec>()?),
StructType::WitnessNodeInfo => Ok(from.as_any_box().downcast::<WitnessNodeInfo>()?),
StructType::VchaClusterHealth => Ok(from.as_any_box().downcast::<VchaClusterHealth>()?),
StructType::VchaClusterRuntimeInfo => Ok(from.as_any_box().downcast::<VchaClusterRuntimeInfo>()?),
StructType::VchaNodeRuntimeInfo => Ok(from.as_any_box().downcast::<VchaNodeRuntimeInfo>()?),
StructType::VirtualMachineAffinityInfo => Ok(from.as_any_box().downcast::<VirtualMachineAffinityInfo>()?),
StructType::VirtualMachineBaseIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineBaseIndependentFilterSpec>()?),
StructType::VirtualMachineEmptyIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineEmptyIndependentFilterSpec>()?),
StructType::VirtualMachineIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineIndependentFilterSpec>()?),
StructType::VirtualMachineBootOptions => Ok(from.as_any_box().downcast::<VirtualMachineBootOptions>()?),
StructType::VirtualMachineBootOptionsBootableDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableDevice>()?),
StructType::VirtualMachineBootOptionsBootableCdromDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableCdromDevice>()?),
StructType::VirtualMachineBootOptionsBootableDiskDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableDiskDevice>()?),
StructType::VirtualMachineBootOptionsBootableEthernetDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableEthernetDevice>()?),
StructType::VirtualMachineBootOptionsBootableFloppyDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableFloppyDevice>()?),
StructType::VirtualMachineCapability => Ok(from.as_any_box().downcast::<VirtualMachineCapability>()?),
StructType::VirtualMachineCertThumbprint => Ok(from.as_any_box().downcast::<VirtualMachineCertThumbprint>()?),
StructType::VirtualMachineCloneSpec => Ok(from.as_any_box().downcast::<VirtualMachineCloneSpec>()?),
StructType::VirtualMachineConfigInfo => Ok(from.as_any_box().downcast::<VirtualMachineConfigInfo>()?),
StructType::VirtualMachineConfigInfoDatastoreUrlPair => Ok(from.as_any_box().downcast::<VirtualMachineConfigInfoDatastoreUrlPair>()?),
StructType::VirtualMachineConfigInfoOverheadInfo => Ok(from.as_any_box().downcast::<VirtualMachineConfigInfoOverheadInfo>()?),
StructType::VirtualMachineConfigOption => Ok(from.as_any_box().downcast::<VirtualMachineConfigOption>()?),
StructType::VirtualMachineConfigOptionDescriptor => Ok(from.as_any_box().downcast::<VirtualMachineConfigOptionDescriptor>()?),
StructType::VirtualMachineConfigSpec => Ok(from.as_any_box().downcast::<VirtualMachineConfigSpec>()?),
StructType::ConfigTarget => Ok(from.as_any_box().downcast::<ConfigTarget>()?),
StructType::VirtualMachineConsolePreferences => Ok(from.as_any_box().downcast::<VirtualMachineConsolePreferences>()?),
StructType::VirtualMachineContentLibraryItemInfo => Ok(from.as_any_box().downcast::<VirtualMachineContentLibraryItemInfo>()?),
StructType::DatastoreOption => Ok(from.as_any_box().downcast::<DatastoreOption>()?),
StructType::VirtualMachineDatastoreVolumeOption => Ok(from.as_any_box().downcast::<VirtualMachineDatastoreVolumeOption>()?),
StructType::VirtualMachineDefaultPowerOpInfo => Ok(from.as_any_box().downcast::<VirtualMachineDefaultPowerOpInfo>()?),
StructType::VirtualMachineDeviceRuntimeInfo => Ok(from.as_any_box().downcast::<VirtualMachineDeviceRuntimeInfo>()?),
StructType::VirtualMachineDeviceRuntimeInfoDeviceRuntimeState => Ok(from.as_any_box().downcast::<VirtualMachineDeviceRuntimeInfoDeviceRuntimeState>()?),
StructType::VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState => Ok(from.as_any_box().downcast::<VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState>()?),
StructType::VirtualMachineDvxClassInfo => Ok(from.as_any_box().downcast::<VirtualMachineDvxClassInfo>()?),
StructType::FaultToleranceConfigInfo => Ok(from.as_any_box().downcast::<FaultToleranceConfigInfo>()?),
StructType::FaultTolerancePrimaryConfigInfo => Ok(from.as_any_box().downcast::<FaultTolerancePrimaryConfigInfo>()?),
StructType::FaultToleranceSecondaryConfigInfo => Ok(from.as_any_box().downcast::<FaultToleranceSecondaryConfigInfo>()?),
StructType::FaultToleranceConfigSpec => Ok(from.as_any_box().downcast::<FaultToleranceConfigSpec>()?),
StructType::FaultToleranceMetaSpec => Ok(from.as_any_box().downcast::<FaultToleranceMetaSpec>()?),
StructType::FaultToleranceSecondaryOpResult => Ok(from.as_any_box().downcast::<FaultToleranceSecondaryOpResult>()?),
StructType::FaultToleranceVmConfigSpec => Ok(from.as_any_box().downcast::<FaultToleranceVmConfigSpec>()?),
StructType::FaultToleranceDiskSpec => Ok(from.as_any_box().downcast::<FaultToleranceDiskSpec>()?),
StructType::VirtualMachineFeatureRequirement => Ok(from.as_any_box().downcast::<VirtualMachineFeatureRequirement>()?),
StructType::VirtualMachineFileInfo => Ok(from.as_any_box().downcast::<VirtualMachineFileInfo>()?),
StructType::VirtualMachineFileLayout => Ok(from.as_any_box().downcast::<VirtualMachineFileLayout>()?),
StructType::VirtualMachineFileLayoutDiskLayout => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutDiskLayout>()?),
StructType::VirtualMachineFileLayoutSnapshotLayout => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutSnapshotLayout>()?),
StructType::VirtualMachineFileLayoutEx => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutEx>()?),
StructType::VirtualMachineFileLayoutExDiskLayout => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutExDiskLayout>()?),
StructType::VirtualMachineFileLayoutExDiskUnit => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutExDiskUnit>()?),
StructType::VirtualMachineFileLayoutExFileInfo => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutExFileInfo>()?),
StructType::VirtualMachineFileLayoutExSnapshotLayout => Ok(from.as_any_box().downcast::<VirtualMachineFileLayoutExSnapshotLayout>()?),
StructType::VirtualMachineFlagInfo => Ok(from.as_any_box().downcast::<VirtualMachineFlagInfo>()?),
StructType::VirtualMachineForkConfigInfo => Ok(from.as_any_box().downcast::<VirtualMachineForkConfigInfo>()?),
StructType::GuestInfo => Ok(from.as_any_box().downcast::<GuestInfo>()?),
StructType::GuestInfoCustomizationInfo => Ok(from.as_any_box().downcast::<GuestInfoCustomizationInfo>()?),
StructType::GuestDiskInfo => Ok(from.as_any_box().downcast::<GuestDiskInfo>()?),
StructType::GuestInfoNamespaceGenerationInfo => Ok(from.as_any_box().downcast::<GuestInfoNamespaceGenerationInfo>()?),
StructType::GuestNicInfo => Ok(from.as_any_box().downcast::<GuestNicInfo>()?),
StructType::GuestScreenInfo => Ok(from.as_any_box().downcast::<GuestScreenInfo>()?),
StructType::GuestStackInfo => Ok(from.as_any_box().downcast::<GuestStackInfo>()?),
StructType::GuestInfoVirtualDiskMapping => Ok(from.as_any_box().downcast::<GuestInfoVirtualDiskMapping>()?),
StructType::VirtualMachineGuestIntegrityInfo => Ok(from.as_any_box().downcast::<VirtualMachineGuestIntegrityInfo>()?),
StructType::VirtualMachineGuestMonitoringModeInfo => Ok(from.as_any_box().downcast::<VirtualMachineGuestMonitoringModeInfo>()?),
StructType::GuestOsDescriptor => Ok(from.as_any_box().downcast::<GuestOsDescriptor>()?),
StructType::VirtualMachineGuestQuiesceSpec => Ok(from.as_any_box().downcast::<VirtualMachineGuestQuiesceSpec>()?),
StructType::VirtualMachineWindowsQuiesceSpec => Ok(from.as_any_box().downcast::<VirtualMachineWindowsQuiesceSpec>()?),
StructType::VirtualMachineIdeDiskDevicePartitionInfo => Ok(from.as_any_box().downcast::<VirtualMachineIdeDiskDevicePartitionInfo>()?),
StructType::VirtualMachineInstantCloneSpec => Ok(from.as_any_box().downcast::<VirtualMachineInstantCloneSpec>()?),
StructType::VirtualMachineLegacyNetworkSwitchInfo => Ok(from.as_any_box().downcast::<VirtualMachineLegacyNetworkSwitchInfo>()?),
StructType::VirtualMachineMessage => Ok(from.as_any_box().downcast::<VirtualMachineMessage>()?),
StructType::VirtualMachineMetadataManagerVmMetadata => Ok(from.as_any_box().downcast::<VirtualMachineMetadataManagerVmMetadata>()?),
StructType::VirtualMachineMetadataManagerVmMetadataInput => Ok(from.as_any_box().downcast::<VirtualMachineMetadataManagerVmMetadataInput>()?),
StructType::VirtualMachineMetadataManagerVmMetadataOwner => Ok(from.as_any_box().downcast::<VirtualMachineMetadataManagerVmMetadataOwner>()?),
StructType::VirtualMachineMetadataManagerVmMetadataResult => Ok(from.as_any_box().downcast::<VirtualMachineMetadataManagerVmMetadataResult>()?),
StructType::VirtualMachineNetworkShaperInfo => Ok(from.as_any_box().downcast::<VirtualMachineNetworkShaperInfo>()?),
StructType::VirtualMachineProfileDetails => Ok(from.as_any_box().downcast::<VirtualMachineProfileDetails>()?),
StructType::VirtualMachineProfileDetailsDiskProfileDetails => Ok(from.as_any_box().downcast::<VirtualMachineProfileDetailsDiskProfileDetails>()?),
StructType::VirtualMachineProfileRawData => Ok(from.as_any_box().downcast::<VirtualMachineProfileRawData>()?),
StructType::VirtualMachineProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineProfileSpec>()?),
StructType::VirtualMachineDefaultProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineDefaultProfileSpec>()?),
StructType::VirtualMachineDefinedProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineDefinedProfileSpec>()?),
StructType::VirtualMachineEmptyProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineEmptyProfileSpec>()?),
StructType::VirtualMachinePropertyRelation => Ok(from.as_any_box().downcast::<VirtualMachinePropertyRelation>()?),
StructType::VirtualMachineQuestionInfo => Ok(from.as_any_box().downcast::<VirtualMachineQuestionInfo>()?),
StructType::VirtualMachineRelocateSpec => Ok(from.as_any_box().downcast::<VirtualMachineRelocateSpec>()?),
StructType::VirtualMachineRelocateSpecDiskLocator => Ok(from.as_any_box().downcast::<VirtualMachineRelocateSpecDiskLocator>()?),
StructType::VirtualMachineRelocateSpecDiskLocatorBackingSpec => Ok(from.as_any_box().downcast::<VirtualMachineRelocateSpecDiskLocatorBackingSpec>()?),
StructType::ReplicationConfigSpec => Ok(from.as_any_box().downcast::<ReplicationConfigSpec>()?),
StructType::ReplicationInfoDiskSettings => Ok(from.as_any_box().downcast::<ReplicationInfoDiskSettings>()?),
StructType::VirtualMachineRuntimeInfo => Ok(from.as_any_box().downcast::<VirtualMachineRuntimeInfo>()?),
StructType::VirtualMachineRuntimeInfoDasProtectionState => Ok(from.as_any_box().downcast::<VirtualMachineRuntimeInfoDasProtectionState>()?),
StructType::ScheduledHardwareUpgradeInfo => Ok(from.as_any_box().downcast::<ScheduledHardwareUpgradeInfo>()?),
StructType::VirtualMachineSgxInfo => Ok(from.as_any_box().downcast::<VirtualMachineSgxInfo>()?),
StructType::VirtualMachineSnapshotInfo => Ok(from.as_any_box().downcast::<VirtualMachineSnapshotInfo>()?),
StructType::SnapshotSelectionSpec => Ok(from.as_any_box().downcast::<SnapshotSelectionSpec>()?),
StructType::VirtualMachineSnapshotTree => Ok(from.as_any_box().downcast::<VirtualMachineSnapshotTree>()?),
StructType::VirtualMachineSriovDevicePoolInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovDevicePoolInfo>()?),
StructType::VirtualMachineSriovNetworkDevicePoolInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovNetworkDevicePoolInfo>()?),
StructType::VirtualMachineStorageInfo => Ok(from.as_any_box().downcast::<VirtualMachineStorageInfo>()?),
StructType::VirtualMachineUsageOnDatastore => Ok(from.as_any_box().downcast::<VirtualMachineUsageOnDatastore>()?),
StructType::SubnetInfoFolderInfo => Ok(from.as_any_box().downcast::<SubnetInfoFolderInfo>()?),
StructType::VirtualMachineSummary => Ok(from.as_any_box().downcast::<VirtualMachineSummary>()?),
StructType::VirtualMachineConfigSummary => Ok(from.as_any_box().downcast::<VirtualMachineConfigSummary>()?),
StructType::VirtualMachineGuestSummary => Ok(from.as_any_box().downcast::<VirtualMachineGuestSummary>()?),
StructType::VirtualMachineQuickStats => Ok(from.as_any_box().downcast::<VirtualMachineQuickStats>()?),
StructType::VirtualMachineQuickStatsMemoryTierStats => Ok(from.as_any_box().downcast::<VirtualMachineQuickStatsMemoryTierStats>()?),
StructType::VirtualMachineStorageSummary => Ok(from.as_any_box().downcast::<VirtualMachineStorageSummary>()?),
StructType::VirtualMachineTargetInfo => Ok(from.as_any_box().downcast::<VirtualMachineTargetInfo>()?),
StructType::VirtualMachineCdromInfo => Ok(from.as_any_box().downcast::<VirtualMachineCdromInfo>()?),
StructType::VirtualMachineDatastoreInfo => Ok(from.as_any_box().downcast::<VirtualMachineDatastoreInfo>()?),
StructType::VirtualMachineDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineScsiDiskDeviceInfo>()?),
StructType::VirtualMachineDynamicPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachineDynamicPassthroughInfo>()?),
StructType::VirtualMachineFloppyInfo => Ok(from.as_any_box().downcast::<VirtualMachineFloppyInfo>()?),
StructType::VirtualMachineNetworkInfo => Ok(from.as_any_box().downcast::<VirtualMachineNetworkInfo>()?),
StructType::OpaqueNetworkTargetInfo => Ok(from.as_any_box().downcast::<OpaqueNetworkTargetInfo>()?),
StructType::VirtualMachineParallelInfo => Ok(from.as_any_box().downcast::<VirtualMachineParallelInfo>()?),
StructType::VirtualMachinePciPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovInfo>()?),
StructType::VirtualMachinePciSharedGpuPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachinePciSharedGpuPassthroughInfo>()?),
StructType::VirtualMachinePrecisionClockInfo => Ok(from.as_any_box().downcast::<VirtualMachinePrecisionClockInfo>()?),
StructType::VirtualMachineScsiPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachineScsiPassthroughInfo>()?),
StructType::VirtualMachineSerialInfo => Ok(from.as_any_box().downcast::<VirtualMachineSerialInfo>()?),
StructType::VirtualMachineSgxTargetInfo => Ok(from.as_any_box().downcast::<VirtualMachineSgxTargetInfo>()?),
StructType::VirtualMachineSoundInfo => Ok(from.as_any_box().downcast::<VirtualMachineSoundInfo>()?),
StructType::SubnetInfo => Ok(from.as_any_box().downcast::<SubnetInfo>()?),
StructType::VirtualMachineUsbInfo => Ok(from.as_any_box().downcast::<VirtualMachineUsbInfo>()?),
StructType::VirtualMachineVFlashModuleInfo => Ok(from.as_any_box().downcast::<VirtualMachineVFlashModuleInfo>()?),
StructType::VirtualMachineVMotionStunTimeInfo => Ok(from.as_any_box().downcast::<VirtualMachineVMotionStunTimeInfo>()?),
StructType::VirtualMachineVendorDeviceGroupInfo => Ok(from.as_any_box().downcast::<VirtualMachineVendorDeviceGroupInfo>()?),
StructType::VirtualMachineVgpuDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineVgpuDeviceInfo>()?),
StructType::VirtualMachineVgpuProfileInfo => Ok(from.as_any_box().downcast::<VirtualMachineVgpuProfileInfo>()?),
StructType::ToolsConfigInfo => Ok(from.as_any_box().downcast::<ToolsConfigInfo>()?),
StructType::ToolsConfigInfoToolsLastInstallInfo => Ok(from.as_any_box().downcast::<ToolsConfigInfoToolsLastInstallInfo>()?),
StructType::UsbScanCodeSpec => Ok(from.as_any_box().downcast::<UsbScanCodeSpec>()?),
StructType::UsbScanCodeSpecKeyEvent => Ok(from.as_any_box().downcast::<UsbScanCodeSpecKeyEvent>()?),
StructType::UsbScanCodeSpecModifierType => Ok(from.as_any_box().downcast::<UsbScanCodeSpecModifierType>()?),
StructType::VirtualMachineVcpuConfig => Ok(from.as_any_box().downcast::<VirtualMachineVcpuConfig>()?),
StructType::VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo>()?),
StructType::VirtualMachineVirtualDeviceGroups => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceGroups>()?),
StructType::VirtualMachineVirtualDeviceGroupsDeviceGroup => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceGroupsDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceGroupsVendorDeviceGroup => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceGroupsVendorDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceSwap => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceSwap>()?),
StructType::VirtualMachineVirtualDeviceSwapDeviceSwapInfo => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceSwapDeviceSwapInfo>()?),
StructType::VirtualHardware => Ok(from.as_any_box().downcast::<VirtualHardware>()?),
StructType::VirtualHardwareOption => Ok(from.as_any_box().downcast::<VirtualHardwareOption>()?),
StructType::VirtualMachineVirtualNuma => Ok(from.as_any_box().downcast::<VirtualMachineVirtualNuma>()?),
StructType::VirtualMachineVirtualNumaInfo => Ok(from.as_any_box().downcast::<VirtualMachineVirtualNumaInfo>()?),
StructType::VirtualMachineVirtualPMem => Ok(from.as_any_box().downcast::<VirtualMachineVirtualPMem>()?),
StructType::CheckResult => Ok(from.as_any_box().downcast::<CheckResult>()?),
StructType::CustomizationAdapterMapping => Ok(from.as_any_box().downcast::<CustomizationAdapterMapping>()?),
StructType::CustomizationGlobalIpSettings => Ok(from.as_any_box().downcast::<CustomizationGlobalIpSettings>()?),
StructType::CustomizationGuiRunOnce => Ok(from.as_any_box().downcast::<CustomizationGuiRunOnce>()?),
StructType::CustomizationGuiUnattended => Ok(from.as_any_box().downcast::<CustomizationGuiUnattended>()?),
StructType::CustomizationIpSettings => Ok(from.as_any_box().downcast::<CustomizationIpSettings>()?),
StructType::CustomizationIpSettingsIpV6AddressSpec => Ok(from.as_any_box().downcast::<CustomizationIpSettingsIpV6AddressSpec>()?),
StructType::CustomizationIdentification => Ok(from.as_any_box().downcast::<CustomizationIdentification>()?),
StructType::CustomizationIdentitySettings => Ok(from.as_any_box().downcast::<CustomizationIdentitySettings>()?),
StructType::CustomizationCloudinitPrep => Ok(from.as_any_box().downcast::<CustomizationCloudinitPrep>()?),
StructType::CustomizationLinuxPrep => Ok(from.as_any_box().downcast::<CustomizationLinuxPrep>()?),
StructType::CustomizationSysprep => Ok(from.as_any_box().downcast::<CustomizationSysprep>()?),
StructType::CustomizationSysprepText => Ok(from.as_any_box().downcast::<CustomizationSysprepText>()?),
StructType::CustomizationIpGenerator => Ok(from.as_any_box().downcast::<CustomizationIpGenerator>()?),
StructType::CustomizationCustomIpGenerator => Ok(from.as_any_box().downcast::<CustomizationCustomIpGenerator>()?),
StructType::CustomizationDhcpIpGenerator => Ok(from.as_any_box().downcast::<CustomizationDhcpIpGenerator>()?),
StructType::CustomizationFixedIp => Ok(from.as_any_box().downcast::<CustomizationFixedIp>()?),
StructType::CustomizationUnknownIpGenerator => Ok(from.as_any_box().downcast::<CustomizationUnknownIpGenerator>()?),
StructType::CustomizationIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationIpV6Generator>()?),
StructType::CustomizationAutoIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationAutoIpV6Generator>()?),
StructType::CustomizationCustomIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationCustomIpV6Generator>()?),
StructType::CustomizationDhcpIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationDhcpIpV6Generator>()?),
StructType::CustomizationFixedIpV6 => Ok(from.as_any_box().downcast::<CustomizationFixedIpV6>()?),
StructType::CustomizationStatelessIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationStatelessIpV6Generator>()?),
StructType::CustomizationUnknownIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationUnknownIpV6Generator>()?),
StructType::CustomizationLicenseFilePrintData => Ok(from.as_any_box().downcast::<CustomizationLicenseFilePrintData>()?),
StructType::CustomizationName => Ok(from.as_any_box().downcast::<CustomizationName>()?),
StructType::CustomizationCustomName => Ok(from.as_any_box().downcast::<CustomizationCustomName>()?),
StructType::CustomizationFixedName => Ok(from.as_any_box().downcast::<CustomizationFixedName>()?),
StructType::CustomizationPrefixName => Ok(from.as_any_box().downcast::<CustomizationPrefixName>()?),
StructType::CustomizationUnknownName => Ok(from.as_any_box().downcast::<CustomizationUnknownName>()?),
StructType::CustomizationVirtualMachineName => Ok(from.as_any_box().downcast::<CustomizationVirtualMachineName>()?),
StructType::CustomizationOptions => Ok(from.as_any_box().downcast::<CustomizationOptions>()?),
StructType::CustomizationLinuxOptions => Ok(from.as_any_box().downcast::<CustomizationLinuxOptions>()?),
StructType::CustomizationWinOptions => Ok(from.as_any_box().downcast::<CustomizationWinOptions>()?),
StructType::CustomizationPassword => Ok(from.as_any_box().downcast::<CustomizationPassword>()?),
StructType::CustomizationSpec => Ok(from.as_any_box().downcast::<CustomizationSpec>()?),
StructType::CustomizationUserData => Ok(from.as_any_box().downcast::<CustomizationUserData>()?),
StructType::HostDiskMappingInfo => Ok(from.as_any_box().downcast::<HostDiskMappingInfo>()?),
StructType::HostDiskMappingPartitionInfo => Ok(from.as_any_box().downcast::<HostDiskMappingPartitionInfo>()?),
StructType::HostDiskMappingOption => Ok(from.as_any_box().downcast::<HostDiskMappingOption>()?),
StructType::HostDiskMappingPartitionOption => Ok(from.as_any_box().downcast::<HostDiskMappingPartitionOption>()?),
StructType::VirtualDevice => Ok(from.as_any_box().downcast::<VirtualDevice>()?),
StructType::VirtualCdrom => Ok(from.as_any_box().downcast::<VirtualCdrom>()?),
StructType::VirtualController => Ok(from.as_any_box().downcast::<VirtualController>()?),
StructType::VirtualIdeController => Ok(from.as_any_box().downcast::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Ok(from.as_any_box().downcast::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Ok(from.as_any_box().downcast::<VirtualNvmeController>()?),
StructType::VirtualPciController => Ok(from.as_any_box().downcast::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Ok(from.as_any_box().downcast::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Ok(from.as_any_box().downcast::<VirtualSataController>()?),
StructType::VirtualAhciController => Ok(from.as_any_box().downcast::<VirtualAhciController>()?),
StructType::VirtualScsiController => Ok(from.as_any_box().downcast::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Ok(from.as_any_box().downcast::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Ok(from.as_any_box().downcast::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Ok(from.as_any_box().downcast::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Ok(from.as_any_box().downcast::<VirtualSioController>()?),
StructType::VirtualUsbController => Ok(from.as_any_box().downcast::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Ok(from.as_any_box().downcast::<VirtualUsbxhciController>()?),
StructType::VirtualDisk => Ok(from.as_any_box().downcast::<VirtualDisk>()?),
StructType::VirtualEthernetCard => Ok(from.as_any_box().downcast::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Ok(from.as_any_box().downcast::<VirtualE1000>()?),
StructType::VirtualE1000E => Ok(from.as_any_box().downcast::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Ok(from.as_any_box().downcast::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Ok(from.as_any_box().downcast::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Ok(from.as_any_box().downcast::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Ok(from.as_any_box().downcast::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Ok(from.as_any_box().downcast::<VirtualVmxnet3Vrdma>()?),
StructType::VirtualFloppy => Ok(from.as_any_box().downcast::<VirtualFloppy>()?),
StructType::VirtualKeyboard => Ok(from.as_any_box().downcast::<VirtualKeyboard>()?),
StructType::VirtualNvdimm => Ok(from.as_any_box().downcast::<VirtualNvdimm>()?),
StructType::VirtualPciPassthrough => Ok(from.as_any_box().downcast::<VirtualPciPassthrough>()?),
StructType::VirtualParallelPort => Ok(from.as_any_box().downcast::<VirtualParallelPort>()?),
StructType::VirtualPointingDevice => Ok(from.as_any_box().downcast::<VirtualPointingDevice>()?),
StructType::VirtualPrecisionClock => Ok(from.as_any_box().downcast::<VirtualPrecisionClock>()?),
StructType::VirtualScsiPassthrough => Ok(from.as_any_box().downcast::<VirtualScsiPassthrough>()?),
StructType::VirtualSerialPort => Ok(from.as_any_box().downcast::<VirtualSerialPort>()?),
StructType::VirtualSoundCard => Ok(from.as_any_box().downcast::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Ok(from.as_any_box().downcast::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16>()?),
StructType::VirtualTpm => Ok(from.as_any_box().downcast::<VirtualTpm>()?),
StructType::VirtualUsb => Ok(from.as_any_box().downcast::<VirtualUsb>()?),
StructType::VirtualMachineVmciDevice => Ok(from.as_any_box().downcast::<VirtualMachineVmciDevice>()?),
StructType::VirtualMachineVmirom => Ok(from.as_any_box().downcast::<VirtualMachineVmirom>()?),
StructType::VirtualMachineVideoCard => Ok(from.as_any_box().downcast::<VirtualMachineVideoCard>()?),
StructType::VirtualWdt => Ok(from.as_any_box().downcast::<VirtualWdt>()?),
StructType::VirtualDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceBackingInfo>()?),
StructType::VirtualDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingInfo>()?),
StructType::VirtualDeviceFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Ok(from.as_any_box().downcast::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingInfo>()?),
StructType::VirtualDevicePipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingInfo>()?),
StructType::VirtualDeviceRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingInfo>()?),
StructType::VirtualDeviceUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingInfo>()?),
StructType::VirtualEthernetCardDistributedVirtualPortBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardDistributedVirtualPortBackingInfo>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardOpaqueNetworkBackingInfo>()?),
StructType::VirtualPciPassthroughDvxBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDvxBackingInfo>()?),
StructType::VirtualPciPassthroughPluginBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingInfo>()?),
StructType::VirtualPrecisionClockSystemClockBackingInfo => Ok(from.as_any_box().downcast::<VirtualPrecisionClockSystemClockBackingInfo>()?),
StructType::VirtualSerialPortThinPrintBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortThinPrintBackingInfo>()?),
StructType::VirtualSriovEthernetCardSriovBackingInfo => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardSriovBackingInfo>()?),
StructType::VirtualDeviceBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualDeviceBusSlotInfo>()?),
StructType::VirtualDevicePciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualUsbControllerPciBusSlotInfo>()?),
StructType::VirtualDeviceConnectInfo => Ok(from.as_any_box().downcast::<VirtualDeviceConnectInfo>()?),
StructType::VirtualDeviceDeviceGroupInfo => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceGroupInfo>()?),
StructType::VirtualDeviceOption => Ok(from.as_any_box().downcast::<VirtualDeviceOption>()?),
StructType::VirtualCdromOption => Ok(from.as_any_box().downcast::<VirtualCdromOption>()?),
StructType::VirtualControllerOption => Ok(from.as_any_box().downcast::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Ok(from.as_any_box().downcast::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Ok(from.as_any_box().downcast::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Ok(from.as_any_box().downcast::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Ok(from.as_any_box().downcast::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Ok(from.as_any_box().downcast::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Ok(from.as_any_box().downcast::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Ok(from.as_any_box().downcast::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Ok(from.as_any_box().downcast::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Ok(from.as_any_box().downcast::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Ok(from.as_any_box().downcast::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbxhciControllerOption>()?),
StructType::VirtualDiskOption => Ok(from.as_any_box().downcast::<VirtualDiskOption>()?),
StructType::VirtualEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Ok(from.as_any_box().downcast::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Ok(from.as_any_box().downcast::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Ok(from.as_any_box().downcast::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Ok(from.as_any_box().downcast::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Ok(from.as_any_box().downcast::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Ok(from.as_any_box().downcast::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3VrdmaOption>()?),
StructType::VirtualFloppyOption => Ok(from.as_any_box().downcast::<VirtualFloppyOption>()?),
StructType::VirtualKeyboardOption => Ok(from.as_any_box().downcast::<VirtualKeyboardOption>()?),
StructType::VirtualNvdimmOption => Ok(from.as_any_box().downcast::<VirtualNvdimmOption>()?),
StructType::VirtualPciPassthroughOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughOption>()?),
StructType::VirtualParallelPortOption => Ok(from.as_any_box().downcast::<VirtualParallelPortOption>()?),
StructType::VirtualPointingDeviceOption => Ok(from.as_any_box().downcast::<VirtualPointingDeviceOption>()?),
StructType::VirtualPrecisionClockOption => Ok(from.as_any_box().downcast::<VirtualPrecisionClockOption>()?),
StructType::VirtualScsiPassthroughOption => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughOption>()?),
StructType::VirtualSerialPortOption => Ok(from.as_any_box().downcast::<VirtualSerialPortOption>()?),
StructType::VirtualSoundCardOption => Ok(from.as_any_box().downcast::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Ok(from.as_any_box().downcast::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16Option>()?),
StructType::VirtualTpmOption => Ok(from.as_any_box().downcast::<VirtualTpmOption>()?),
StructType::VirtualUsbOption => Ok(from.as_any_box().downcast::<VirtualUsbOption>()?),
StructType::VirtualMachineVmciDeviceOption => Ok(from.as_any_box().downcast::<VirtualMachineVmciDeviceOption>()?),
StructType::VirtualVmiromOption => Ok(from.as_any_box().downcast::<VirtualVmiromOption>()?),
StructType::VirtualVideoCardOption => Ok(from.as_any_box().downcast::<VirtualVideoCardOption>()?),
StructType::VirtualWdtOption => Ok(from.as_any_box().downcast::<VirtualWdtOption>()?),
StructType::VirtualDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceBackingOption>()?),
StructType::VirtualDeviceDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingOption>()?),
StructType::VirtualDeviceFileBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingOption>()?),
StructType::VirtualDevicePipeBackingOption => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingOption>()?),
StructType::VirtualDeviceRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingOption>()?),
StructType::VirtualDeviceUriBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingOption>()?),
StructType::VirtualEthernetCardDvPortBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardDvPortBackingOption>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardOpaqueNetworkBackingOption>()?),
StructType::VirtualPciPassthroughDvxBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDvxBackingOption>()?),
StructType::VirtualPciPassthroughPluginBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingOption>()?),
StructType::VirtualPrecisionClockSystemClockBackingOption => Ok(from.as_any_box().downcast::<VirtualPrecisionClockSystemClockBackingOption>()?),
StructType::VirtualSerialPortThinPrintBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortThinPrintBackingOption>()?),
StructType::VirtualSriovEthernetCardSriovBackingOption => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardSriovBackingOption>()?),
StructType::VirtualDeviceBusSlotOption => Ok(from.as_any_box().downcast::<VirtualDeviceBusSlotOption>()?),
StructType::VirtualDeviceConnectOption => Ok(from.as_any_box().downcast::<VirtualDeviceConnectOption>()?),
StructType::VirtualDeviceConfigSpec => Ok(from.as_any_box().downcast::<VirtualDeviceConfigSpec>()?),
StructType::VirtualDiskConfigSpec => Ok(from.as_any_box().downcast::<VirtualDiskConfigSpec>()?),
StructType::VirtualDeviceConfigSpecBackingSpec => Ok(from.as_any_box().downcast::<VirtualDeviceConfigSpecBackingSpec>()?),
StructType::VirtualDiskVFlashCacheConfigInfo => Ok(from.as_any_box().downcast::<VirtualDiskVFlashCacheConfigInfo>()?),
StructType::VirtualDiskId => Ok(from.as_any_box().downcast::<VirtualDiskId>()?),
StructType::VirtualDiskDeltaDiskFormatsSupported => Ok(from.as_any_box().downcast::<VirtualDiskDeltaDiskFormatsSupported>()?),
StructType::VirtualDiskOptionVFlashCacheConfigOption => Ok(from.as_any_box().downcast::<VirtualDiskOptionVFlashCacheConfigOption>()?),
StructType::VirtualEthernetCardResourceAllocation => Ok(from.as_any_box().downcast::<VirtualEthernetCardResourceAllocation>()?),
StructType::VirtualPciPassthroughAllowedDevice => Ok(from.as_any_box().downcast::<VirtualPciPassthroughAllowedDevice>()?),
StructType::VirtualMachineVmciDeviceFilterInfo => Ok(from.as_any_box().downcast::<VirtualMachineVmciDeviceFilterInfo>()?),
StructType::VirtualMachineVmciDeviceFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineVmciDeviceFilterSpec>()?),
StructType::VirtualMachineVmciDeviceOptionFilterSpecOption => Ok(from.as_any_box().downcast::<VirtualMachineVmciDeviceOptionFilterSpecOption>()?),
StructType::VirtualVmxnet3StrictLatencyConfig => Ok(from.as_any_box().downcast::<VirtualVmxnet3StrictLatencyConfig>()?),
StructType::VirtualVmxnet3OptionStrictLatencyConfigOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3OptionStrictLatencyConfigOption>()?),
StructType::GuestAliases => Ok(from.as_any_box().downcast::<GuestAliases>()?),
StructType::GuestAuthAliasInfo => Ok(from.as_any_box().downcast::<GuestAuthAliasInfo>()?),
StructType::GuestAuthSubject => Ok(from.as_any_box().downcast::<GuestAuthSubject>()?),
StructType::GuestAuthAnySubject => Ok(from.as_any_box().downcast::<GuestAuthAnySubject>()?),
StructType::GuestAuthNamedSubject => Ok(from.as_any_box().downcast::<GuestAuthNamedSubject>()?),
StructType::GuestMappedAliases => Ok(from.as_any_box().downcast::<GuestMappedAliases>()?),
StructType::GuestFileAttributes => Ok(from.as_any_box().downcast::<GuestFileAttributes>()?),
StructType::GuestPosixFileAttributes => Ok(from.as_any_box().downcast::<GuestPosixFileAttributes>()?),
StructType::GuestWindowsFileAttributes => Ok(from.as_any_box().downcast::<GuestWindowsFileAttributes>()?),
StructType::GuestFileInfo => Ok(from.as_any_box().downcast::<GuestFileInfo>()?),
StructType::FileTransferInformation => Ok(from.as_any_box().downcast::<FileTransferInformation>()?),
StructType::GuestListFileInfo => Ok(from.as_any_box().downcast::<GuestListFileInfo>()?),
StructType::GuestAuthentication => Ok(from.as_any_box().downcast::<GuestAuthentication>()?),
StructType::NamePasswordAuthentication => Ok(from.as_any_box().downcast::<NamePasswordAuthentication>()?),
StructType::SamlTokenAuthentication => Ok(from.as_any_box().downcast::<SamlTokenAuthentication>()?),
StructType::SspiAuthentication => Ok(from.as_any_box().downcast::<SspiAuthentication>()?),
StructType::TicketedSessionAuthentication => Ok(from.as_any_box().downcast::<TicketedSessionAuthentication>()?),
StructType::GuestProcessInfo => Ok(from.as_any_box().downcast::<GuestProcessInfo>()?),
StructType::GuestProgramSpec => Ok(from.as_any_box().downcast::<GuestProgramSpec>()?),
StructType::GuestWindowsProgramSpec => Ok(from.as_any_box().downcast::<GuestWindowsProgramSpec>()?),
StructType::GuestRegKeySpec => Ok(from.as_any_box().downcast::<GuestRegKeySpec>()?),
StructType::GuestRegKeyNameSpec => Ok(from.as_any_box().downcast::<GuestRegKeyNameSpec>()?),
StructType::GuestRegKeyRecordSpec => Ok(from.as_any_box().downcast::<GuestRegKeyRecordSpec>()?),
StructType::GuestRegValueSpec => Ok(from.as_any_box().downcast::<GuestRegValueSpec>()?),
StructType::GuestRegValueDataSpec => Ok(from.as_any_box().downcast::<GuestRegValueDataSpec>()?),
StructType::GuestRegValueBinarySpec => Ok(from.as_any_box().downcast::<GuestRegValueBinarySpec>()?),
StructType::GuestRegValueDwordSpec => Ok(from.as_any_box().downcast::<GuestRegValueDwordSpec>()?),
StructType::GuestRegValueExpandStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueExpandStringSpec>()?),
StructType::GuestRegValueMultiStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueMultiStringSpec>()?),
StructType::GuestRegValueQwordSpec => Ok(from.as_any_box().downcast::<GuestRegValueQwordSpec>()?),
StructType::GuestRegValueStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueStringSpec>()?),
StructType::GuestRegValueNameSpec => Ok(from.as_any_box().downcast::<GuestRegValueNameSpec>()?),
StructType::DeviceGroupId => Ok(from.as_any_box().downcast::<DeviceGroupId>()?),
StructType::FaultDomainId => Ok(from.as_any_box().downcast::<FaultDomainId>()?),
StructType::FaultDomainInfo => Ok(from.as_any_box().downcast::<FaultDomainInfo>()?),
StructType::ReplicationGroupId => Ok(from.as_any_box().downcast::<ReplicationGroupId>()?),
StructType::ReplicationSpec => Ok(from.as_any_box().downcast::<ReplicationSpec>()?),
StructType::VsanCapacityReservationInfo => Ok(from.as_any_box().downcast::<VsanCapacityReservationInfo>()?),
StructType::ClusterRuntimeInfo => Ok(from.as_any_box().downcast::<ClusterRuntimeInfo>()?),
StructType::VsanCompatibilityCheckResult => Ok(from.as_any_box().downcast::<VsanCompatibilityCheckResult>()?),
StructType::VimVsanDataEfficiencyCapacityState => Ok(from.as_any_box().downcast::<VimVsanDataEfficiencyCapacityState>()?),
StructType::VsanDataEfficiencyConfig => Ok(from.as_any_box().downcast::<VsanDataEfficiencyConfig>()?),
StructType::VsanDataEfficiencyConfigEx => Ok(from.as_any_box().downcast::<VsanDataEfficiencyConfigEx>()?),
StructType::VsanDataEncryptionConfig => Ok(from.as_any_box().downcast::<VsanDataEncryptionConfig>()?),
StructType::VsanDataInTransitEncryptionConfig => Ok(from.as_any_box().downcast::<VsanDataInTransitEncryptionConfig>()?),
StructType::VsanDatastoreConfig => Ok(from.as_any_box().downcast::<VsanDatastoreConfig>()?),
StructType::VsanAdvancedDatastoreConfig => Ok(from.as_any_box().downcast::<VsanAdvancedDatastoreConfig>()?),
StructType::VsanDatastoreSpec => Ok(from.as_any_box().downcast::<VsanDatastoreSpec>()?),
StructType::VsanClientDatastoreConfig => Ok(from.as_any_box().downcast::<VsanClientDatastoreConfig>()?),
StructType::VsanXvcClientConfig => Ok(from.as_any_box().downcast::<VsanXvcClientConfig>()?),
StructType::DefaultDatastorePolicySelectionInfo => Ok(from.as_any_box().downcast::<DefaultDatastorePolicySelectionInfo>()?),
StructType::VsanDirectoryServerConfig => Ok(from.as_any_box().downcast::<VsanDirectoryServerConfig>()?),
StructType::ActiveVsanDirectoryServerConfig => Ok(from.as_any_box().downcast::<ActiveVsanDirectoryServerConfig>()?),
StructType::DiskClaimConfiguration => Ok(from.as_any_box().downcast::<DiskClaimConfiguration>()?),
StructType::VsanEntityCompatibilityResult => Ok(from.as_any_box().downcast::<VsanEntityCompatibilityResult>()?),
StructType::EntityResourceCheckDetails => Ok(from.as_any_box().downcast::<EntityResourceCheckDetails>()?),
StructType::VsanDiskGroupResourceCheckResult => Ok(from.as_any_box().downcast::<VsanDiskGroupResourceCheckResult>()?),
StructType::VsanDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanStoragePoolDiskResourceCheckResult>()?),
StructType::VsanFaultDomainResourceCheckResult => Ok(from.as_any_box().downcast::<VsanFaultDomainResourceCheckResult>()?),
StructType::VsanHostResourceCheckResult => Ok(from.as_any_box().downcast::<VsanHostResourceCheckResult>()?),
StructType::VsanResourceCheckResult => Ok(from.as_any_box().downcast::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Ok(from.as_any_box().downcast::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Ok(from.as_any_box().downcast::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Ok(from.as_any_box().downcast::<VsanResourceCheckVsanResult>()?),
StructType::VsanStoragePoolResourceCheckResult => Ok(from.as_any_box().downcast::<VsanStoragePoolResourceCheckResult>()?),
StructType::VsanFileServiceConfig => Ok(from.as_any_box().downcast::<VsanFileServiceConfig>()?),
StructType::VsanFileServiceDomain => Ok(from.as_any_box().downcast::<VsanFileServiceDomain>()?),
StructType::VsanFileServiceDomainConfig => Ok(from.as_any_box().downcast::<VsanFileServiceDomainConfig>()?),
StructType::VsanFileServiceDomainQuerySpec => Ok(from.as_any_box().downcast::<VsanFileServiceDomainQuerySpec>()?),
StructType::VsanFileShare => Ok(from.as_any_box().downcast::<VsanFileShare>()?),
StructType::VsanFileShareConfig => Ok(from.as_any_box().downcast::<VsanFileShareConfig>()?),
StructType::VsanFileShareNetPermission => Ok(from.as_any_box().downcast::<VsanFileShareNetPermission>()?),
StructType::VsanFileShareQueryProperties => Ok(from.as_any_box().downcast::<VsanFileShareQueryProperties>()?),
StructType::FileShareQueryResult => Ok(from.as_any_box().downcast::<FileShareQueryResult>()?),
StructType::VsanFileShareQuerySpec => Ok(from.as_any_box().downcast::<VsanFileShareQuerySpec>()?),
StructType::VsanFileShareRuntimeInfo => Ok(from.as_any_box().downcast::<VsanFileShareRuntimeInfo>()?),
StructType::VsanFileShareSmbOptions => Ok(from.as_any_box().downcast::<VsanFileShareSmbOptions>()?),
StructType::VsanFileShareSnapshot => Ok(from.as_any_box().downcast::<VsanFileShareSnapshot>()?),
StructType::VsanFileShareSnapshotConfig => Ok(from.as_any_box().downcast::<VsanFileShareSnapshotConfig>()?),
StructType::VsanFileShareSnapshotQueryResult => Ok(from.as_any_box().downcast::<VsanFileShareSnapshotQueryResult>()?),
StructType::VsanFileShareSnapshotQuerySpec => Ok(from.as_any_box().downcast::<VsanFileShareSnapshotQuerySpec>()?),
StructType::VsanHciMeshDatastoreSource => Ok(from.as_any_box().downcast::<VsanHciMeshDatastoreSource>()?),
StructType::VsanIoDiagnosticsFailedCheck => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsFailedCheck>()?),
StructType::VsanIoDiagnosticsInstance => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsInstance>()?),
StructType::VsanIoDiagnosticsInstanceEvent => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsInstanceEvent>()?),
StructType::VsanIoDiagnosticsInstanceQuerySpec => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsInstanceQuerySpec>()?),
StructType::VsanIoDiagnosticsObjectLayout => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsObjectLayout>()?),
StructType::VsanIoDiagnosticsPrecheckResult => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsPrecheckResult>()?),
StructType::VsanIoDiagnosticsStats => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsStats>()?),
StructType::VsanIoDiagnosticsTarget => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsTarget>()?),
StructType::VsanIoDiagnosticsTargetStats => Ok(from.as_any_box().downcast::<VsanIoDiagnosticsTargetStats>()?),
StructType::VsanIoLatency => Ok(from.as_any_box().downcast::<VsanIoLatency>()?),
StructType::VsanIoLatencyMetrics => Ok(from.as_any_box().downcast::<VsanIoLatencyMetrics>()?),
StructType::LifecycleConfigDetails => Ok(from.as_any_box().downcast::<LifecycleConfigDetails>()?),
StructType::LifecycleFaultDomainDetails => Ok(from.as_any_box().downcast::<LifecycleFaultDomainDetails>()?),
StructType::LifecyclePreCheckResult => Ok(from.as_any_box().downcast::<LifecyclePreCheckResult>()?),
StructType::LifecycleWitnessDetails => Ok(from.as_any_box().downcast::<LifecycleWitnessDetails>()?),
StructType::VsanMetricProfile => Ok(from.as_any_box().downcast::<VsanMetricProfile>()?),
StructType::VsanMetricsConfig => Ok(from.as_any_box().downcast::<VsanMetricsConfig>()?),
StructType::VsanMountPrecheckItem => Ok(from.as_any_box().downcast::<VsanMountPrecheckItem>()?),
StructType::VsanDatastoreSourcePrecheckItem => Ok(from.as_any_box().downcast::<VsanDatastoreSourcePrecheckItem>()?),
StructType::VsanMountPrecheckNetworkConnectivityResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkConnectivityResult>()?),
StructType::VsanMountPrecheckNetworkLatencyResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkLatencyResult>()?),
StructType::VsanMountPrecheckNetworkConnectivity => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkConnectivity>()?),
StructType::VsanMountPrecheckNetworkConnectivityDetail => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkConnectivityDetail>()?),
StructType::VsanMountPrecheckNetworkLatency => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkLatency>()?),
StructType::VsanMountPrecheckNetworkLatencyDetail => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkLatencyDetail>()?),
StructType::VsanMountPrecheckResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckResult>()?),
StructType::VsanDatastoreSourcePrecheckResult => Ok(from.as_any_box().downcast::<VsanDatastoreSourcePrecheckResult>()?),
StructType::VsanObjectHealthTelemetrySummary => Ok(from.as_any_box().downcast::<VsanObjectHealthTelemetrySummary>()?),
StructType::VsanObjectIoStats => Ok(from.as_any_box().downcast::<VsanObjectIoStats>()?),
StructType::VsanProactiveRebalanceInfo => Ok(from.as_any_box().downcast::<VsanProactiveRebalanceInfo>()?),
StructType::VsanRdmaConfig => Ok(from.as_any_box().downcast::<VsanRdmaConfig>()?),
StructType::VsanRemoteVcInfo => Ok(from.as_any_box().downcast::<VsanRemoteVcInfo>()?),
StructType::VsanRemoteVcInfoStandalone => Ok(from.as_any_box().downcast::<VsanRemoteVcInfoStandalone>()?),
StructType::RemoteVsanSite => Ok(from.as_any_box().downcast::<RemoteVsanSite>()?),
StructType::RemoteVsanSiteAffinity => Ok(from.as_any_box().downcast::<RemoteVsanSiteAffinity>()?),
StructType::RepairTimerInfo => Ok(from.as_any_box().downcast::<RepairTimerInfo>()?),
StructType::VsanResourceCheckSpec => Ok(from.as_any_box().downcast::<VsanResourceCheckSpec>()?),
StructType::VsanResourceCheckStatus => Ok(from.as_any_box().downcast::<VsanResourceCheckStatus>()?),
StructType::VsanResourceCheckTaskDetails => Ok(from.as_any_box().downcast::<VsanResourceCheckTaskDetails>()?),
StructType::VsanDiskDataEvacuationResourceCheckTaskDetails => Ok(from.as_any_box().downcast::<VsanDiskDataEvacuationResourceCheckTaskDetails>()?),
StructType::ResyncIopsInfo => Ok(from.as_any_box().downcast::<ResyncIopsInfo>()?),
StructType::VsanRuntimeStatsHostMap => Ok(from.as_any_box().downcast::<VsanRuntimeStatsHostMap>()?),
StructType::SsdEnduranceThresholdSpec => Ok(from.as_any_box().downcast::<SsdEnduranceThresholdSpec>()?),
StructType::VsanServerHostUnicastInfo => Ok(from.as_any_box().downcast::<VsanServerHostUnicastInfo>()?),
StructType::VsanSharedWitnessCompatibilityResult => Ok(from.as_any_box().downcast::<VsanSharedWitnessCompatibilityResult>()?),
StructType::VsanSnapServiceConfig => Ok(from.as_any_box().downcast::<VsanSnapServiceConfig>()?),
StructType::VcRemoteVsanServerClusterConfig => Ok(from.as_any_box().downcast::<VcRemoteVsanServerClusterConfig>()?),
StructType::VcRemoteVsanServerClusterInfo => Ok(from.as_any_box().downcast::<VcRemoteVsanServerClusterInfo>()?),
StructType::VsanIscsiVipConfigSpec => Ok(from.as_any_box().downcast::<VsanIscsiVipConfigSpec>()?),
StructType::VsanIscsiVipConfig => Ok(from.as_any_box().downcast::<VsanIscsiVipConfig>()?),
StructType::VsanIscsiVipDVswitchConfig => Ok(from.as_any_box().downcast::<VsanIscsiVipDVswitchConfig>()?),
StructType::VsanVipNetworkConfig => Ok(from.as_any_box().downcast::<VsanVipNetworkConfig>()?),
StructType::VsanIscsiVipVswitchConfig => Ok(from.as_any_box().downcast::<VsanIscsiVipVswitchConfig>()?),
StructType::VsanBurnInTest => Ok(from.as_any_box().downcast::<VsanBurnInTest>()?),
StructType::VsanBurnInTestCheckResult => Ok(from.as_any_box().downcast::<VsanBurnInTestCheckResult>()?),
StructType::VsanCloudHealthStatus => Ok(from.as_any_box().downcast::<VsanCloudHealthStatus>()?),
StructType::VsanClusterBurnInTestResultList => Ok(from.as_any_box().downcast::<VsanClusterBurnInTestResultList>()?),
StructType::VsanCompliantDriver => Ok(from.as_any_box().downcast::<VsanCompliantDriver>()?),
StructType::VsanCompliantFirmware => Ok(from.as_any_box().downcast::<VsanCompliantFirmware>()?),
StructType::VsanConfigBaseIssue => Ok(from.as_any_box().downcast::<VsanConfigBaseIssue>()?),
StructType::VsanConfigNotAllDisksClaimedIssue => Ok(from.as_any_box().downcast::<VsanConfigNotAllDisksClaimedIssue>()?),
StructType::VsanConfigCheckResult => Ok(from.as_any_box().downcast::<VsanConfigCheckResult>()?),
StructType::VsanDatastoreDefaultPolicySelectionConfig => Ok(from.as_any_box().downcast::<VsanDatastoreDefaultPolicySelectionConfig>()?),
StructType::VsanDeconvergedNetConfig => Ok(from.as_any_box().downcast::<VsanDeconvergedNetConfig>()?),
StructType::VsanDiskModelInfo => Ok(from.as_any_box().downcast::<VsanDiskModelInfo>()?),
StructType::VsanDownloadItem => Ok(from.as_any_box().downcast::<VsanDownloadItem>()?),
StructType::VsanEsaConfig => Ok(from.as_any_box().downcast::<VsanEsaConfig>()?),
StructType::VsanEsaConfigInfo => Ok(from.as_any_box().downcast::<VsanEsaConfigInfo>()?),
StructType::VsanEsaDiskConfiguration => Ok(from.as_any_box().downcast::<VsanEsaDiskConfiguration>()?),
StructType::VsanExtendedConfig => Ok(from.as_any_box().downcast::<VsanExtendedConfig>()?),
StructType::VsanFileServiceOvfSpec => Ok(from.as_any_box().downcast::<VsanFileServiceOvfSpec>()?),
StructType::VsanFileServicePreflightCheckResult => Ok(from.as_any_box().downcast::<VsanFileServicePreflightCheckResult>()?),
StructType::VsanGenericClusterBaseIssue => Ok(from.as_any_box().downcast::<VsanGenericClusterBaseIssue>()?),
StructType::VsanGenericClusterBestPracticeHealth => Ok(from.as_any_box().downcast::<VsanGenericClusterBestPracticeHealth>()?),
StructType::VsanHclDeviceConstraint => Ok(from.as_any_box().downcast::<VsanHclDeviceConstraint>()?),
StructType::VsanHclDiskConstraint => Ok(from.as_any_box().downcast::<VsanHclDiskConstraint>()?),
StructType::VsanHclDriverInfo => Ok(from.as_any_box().downcast::<VsanHclDriverInfo>()?),
StructType::VsanHclMinFwConstraint => Ok(from.as_any_box().downcast::<VsanHclMinFwConstraint>()?),
StructType::VsanHclQuerySpec => Ok(from.as_any_box().downcast::<VsanHclQuerySpec>()?),
StructType::VsanHclReleaseConstraint => Ok(from.as_any_box().downcast::<VsanHclReleaseConstraint>()?),
StructType::VsanHealthConfigSpec => Ok(from.as_any_box().downcast::<VsanHealthConfigSpec>()?),
StructType::VsanHealthCustomizationSpec => Ok(from.as_any_box().downcast::<VsanHealthCustomizationSpec>()?),
StructType::VsanHealthThreshold => Ok(from.as_any_box().downcast::<VsanHealthThreshold>()?),
StructType::VsanHistoricalHealthConfig => Ok(from.as_any_box().downcast::<VsanHistoricalHealthConfig>()?),
StructType::VsanHostDeviceInfo => Ok(from.as_any_box().downcast::<VsanHostDeviceInfo>()?),
StructType::VsanHwToVcgInfoMappingSpec => Ok(from.as_any_box().downcast::<VsanHwToVcgInfoMappingSpec>()?),
StructType::VsanIoTripAnalyzerConfig => Ok(from.as_any_box().downcast::<VsanIoTripAnalyzerConfig>()?),
StructType::VsanIoTripAnalyzerRecurrence => Ok(from.as_any_box().downcast::<VsanIoTripAnalyzerRecurrence>()?),
StructType::VsanInternalExtendedConfig => Ok(from.as_any_box().downcast::<VsanInternalExtendedConfig>()?),
StructType::VsanNetworkConfigBaseIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigBaseIssue>()?),
StructType::VsanNetworkConfigPnicSpeedInconsistencyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigPnicSpeedInconsistencyIssue>()?),
StructType::VsanNetworkConfigPortgroupWithNoRedundancyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigPortgroupWithNoRedundancyIssue>()?),
StructType::VsanNetworkConfigVdsScopeIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVdsScopeIssue>()?),
StructType::VsanNetworkConfigVsanNotOnVdsIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVsanNotOnVdsIssue>()?),
StructType::VsanNetworkConfigVswitchWithNoRedundancyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVswitchWithNoRedundancyIssue>()?),
StructType::VsanNetworkVMotionVmknicNotFountIssue => Ok(from.as_any_box().downcast::<VsanNetworkVMotionVmknicNotFountIssue>()?),
StructType::VsanNetworkConfigBestPracticeHealth => Ok(from.as_any_box().downcast::<VsanNetworkConfigBestPracticeHealth>()?),
StructType::VsanObjSnapParams => Ok(from.as_any_box().downcast::<VsanObjSnapParams>()?),
StructType::VsanObjectDetail => Ok(from.as_any_box().downcast::<VsanObjectDetail>()?),
StructType::VsanObjectSnapshotId => Ok(from.as_any_box().downcast::<VsanObjectSnapshotId>()?),
StructType::VimVsanVsanPMemConfig => Ok(from.as_any_box().downcast::<VimVsanVsanPMemConfig>()?),
StructType::VsanPerfsvcHealthResult => Ok(from.as_any_box().downcast::<VsanPerfsvcHealthResult>()?),
StructType::VsanPrepareVsanForVcsaSpec => Ok(from.as_any_box().downcast::<VsanPrepareVsanForVcsaSpec>()?),
StructType::VsanSnapshotDetail => Ok(from.as_any_box().downcast::<VsanSnapshotDetail>()?),
StructType::VsanSnapshotQueryResult => Ok(from.as_any_box().downcast::<VsanSnapshotQueryResult>()?),
StructType::VsanSnapshotQuerySpec => Ok(from.as_any_box().downcast::<VsanSnapshotQuerySpec>()?),
StructType::VsanSpaceEfficiencyMetadataSize => Ok(from.as_any_box().downcast::<VsanSpaceEfficiencyMetadataSize>()?),
StructType::VsanSpaceEfficiencyRatio => Ok(from.as_any_box().downcast::<VsanSpaceEfficiencyRatio>()?),
StructType::VsanUnmapConfig => Ok(from.as_any_box().downcast::<VsanUnmapConfig>()?),
StructType::VsanUpdateItem => Ok(from.as_any_box().downcast::<VsanUpdateItem>()?),
StructType::VsanVcPostDeployConfigSpec => Ok(from.as_any_box().downcast::<VsanVcPostDeployConfigSpec>()?),
StructType::VsanVcStretchedClusterConfigSpec => Ok(from.as_any_box().downcast::<VsanVcStretchedClusterConfigSpec>()?),
StructType::VsanVcsaDeploymentProgress => Ok(from.as_any_box().downcast::<VsanVcsaDeploymentProgress>()?),
StructType::VsanVdsMigrationPlan => Ok(from.as_any_box().downcast::<VsanVdsMigrationPlan>()?),
StructType::VsanVdsPgMigrationHostInfo => Ok(from.as_any_box().downcast::<VsanVdsPgMigrationHostInfo>()?),
StructType::VsanVdsPgMigrationSpec => Ok(from.as_any_box().downcast::<VsanVdsPgMigrationSpec>()?),
StructType::VsanVdsPgMigrationVmInfo => Ok(from.as_any_box().downcast::<VsanVdsPgMigrationVmInfo>()?),
StructType::VsanVibInstallPreflightStatus => Ok(from.as_any_box().downcast::<VsanVibInstallPreflightStatus>()?),
StructType::VsanVibScanResult => Ok(from.as_any_box().downcast::<VsanVibScanResult>()?),
StructType::VsanVibSpec => Ok(from.as_any_box().downcast::<VsanVibSpec>()?),
StructType::VsanVmVdsMigrationSpec => Ok(from.as_any_box().downcast::<VsanVmVdsMigrationSpec>()?),
StructType::VsanVnicVdsMigrationSpec => Ok(from.as_any_box().downcast::<VsanVnicVdsMigrationSpec>()?),
StructType::VsanVumConfig => Ok(from.as_any_box().downcast::<VsanVumConfig>()?),
StructType::VsanWitnessHostConfig => Ok(from.as_any_box().downcast::<VsanWitnessHostConfig>()?),
StructType::VsanXvcClientInfo => Ok(from.as_any_box().downcast::<VsanXvcClientInfo>()?),
StructType::VsanXvcDatastoreConfig => Ok(from.as_any_box().downcast::<VsanXvcDatastoreConfig>()?),
StructType::VsanXvcDatastoreInfo => Ok(from.as_any_box().downcast::<VsanXvcDatastoreInfo>()?),
StructType::VsanXvcClientInfoSpec => Ok(from.as_any_box().downcast::<VsanXvcClientInfoSpec>()?),
StructType::VsanXvcQueryCriteria => Ok(from.as_any_box().downcast::<VsanXvcQueryCriteria>()?),
StructType::VsanXvcQueryFilter => Ok(from.as_any_box().downcast::<VsanXvcQueryFilter>()?),
StructType::VsanXvcQueryPropertyValue => Ok(from.as_any_box().downcast::<VsanXvcQueryPropertyValue>()?),
StructType::VsanXvcQueryResultSet => Ok(from.as_any_box().downcast::<VsanXvcQueryResultSet>()?),
StructType::VsanXvcQuerySpec => Ok(from.as_any_box().downcast::<VsanXvcQuerySpec>()?),
StructType::VsanXvcResultItem => Ok(from.as_any_box().downcast::<VsanXvcResultItem>()?),
StructType::VsanClusterConfigInfo => Ok(from.as_any_box().downcast::<VsanClusterConfigInfo>()?),
StructType::VsanConfigInfoEx => Ok(from.as_any_box().downcast::<VsanConfigInfoEx>()?),
StructType::VsanClusterConfigInfoHostDefaultInfo => Ok(from.as_any_box().downcast::<VsanClusterConfigInfoHostDefaultInfo>()?),
StructType::VsanClusterCoreConfig => Ok(from.as_any_box().downcast::<VsanClusterCoreConfig>()?),
StructType::VsanClusterCoreConfigSpec => Ok(from.as_any_box().downcast::<VsanClusterCoreConfigSpec>()?),
StructType::VsanHostAbortWipeDiskStatus => Ok(from.as_any_box().downcast::<VsanHostAbortWipeDiskStatus>()?),
StructType::VsanHostAboutInfoEx => Ok(from.as_any_box().downcast::<VsanHostAboutInfoEx>()?),
StructType::VsanAddStoragePoolDiskSpec => Ok(from.as_any_box().downcast::<VsanAddStoragePoolDiskSpec>()?),
StructType::VsanHostClusterStatus => Ok(from.as_any_box().downcast::<VsanHostClusterStatus>()?),
StructType::VsanHostClusterStatusState => Ok(from.as_any_box().downcast::<VsanHostClusterStatusState>()?),
StructType::VsanHostClusterStatusStateCompletionEstimate => Ok(from.as_any_box().downcast::<VsanHostClusterStatusStateCompletionEstimate>()?),
StructType::VsanComplianceDetail => Ok(from.as_any_box().downcast::<VsanComplianceDetail>()?),
StructType::VsanComplianceResult => Ok(from.as_any_box().downcast::<VsanComplianceResult>()?),
StructType::VsanHostConfigInfo => Ok(from.as_any_box().downcast::<VsanHostConfigInfo>()?),
StructType::VsanHostConfigInfoEx => Ok(from.as_any_box().downcast::<VsanHostConfigInfoEx>()?),
StructType::VsanHostConfigInfoClusterInfo => Ok(from.as_any_box().downcast::<VsanHostConfigInfoClusterInfo>()?),
StructType::VsanHostFaultDomainInfo => Ok(from.as_any_box().downcast::<VsanHostFaultDomainInfo>()?),
StructType::VsanHostConfigInfoNetworkInfo => Ok(from.as_any_box().downcast::<VsanHostConfigInfoNetworkInfo>()?),
StructType::VsanHostConfigInfoNetworkInfoPortConfig => Ok(from.as_any_box().downcast::<VsanHostConfigInfoNetworkInfoPortConfig>()?),
StructType::VsanHostPortConfigEx => Ok(from.as_any_box().downcast::<VsanHostPortConfigEx>()?),
StructType::VsanHostConfigInfoStorageInfo => Ok(from.as_any_box().downcast::<VsanHostConfigInfoStorageInfo>()?),
StructType::VsanHostCreateNativeKeyProviderSpec => Ok(from.as_any_box().downcast::<VsanHostCreateNativeKeyProviderSpec>()?),
StructType::VsanInTransitEncryptionInfo => Ok(from.as_any_box().downcast::<VsanInTransitEncryptionInfo>()?),
StructType::VsanHostDecommissionMode => Ok(from.as_any_box().downcast::<VsanHostDecommissionMode>()?),
StructType::VsanDeleteStoragePoolDiskSpec => Ok(from.as_any_box().downcast::<VsanDeleteStoragePoolDiskSpec>()?),
StructType::VsanHostDiskMapInfo => Ok(from.as_any_box().downcast::<VsanHostDiskMapInfo>()?),
StructType::VimVsanHostDiskMapInfoEx => Ok(from.as_any_box().downcast::<VimVsanHostDiskMapInfoEx>()?),
StructType::VsanHostDiskMapResult => Ok(from.as_any_box().downcast::<VsanHostDiskMapResult>()?),
StructType::VsanHostDiskMapping => Ok(from.as_any_box().downcast::<VsanHostDiskMapping>()?),
StructType::VimVsanHostDiskMappingCreationSpec => Ok(from.as_any_box().downcast::<VimVsanHostDiskMappingCreationSpec>()?),
StructType::VsanHostDiskResult => Ok(from.as_any_box().downcast::<VsanHostDiskResult>()?),
StructType::VimVsanHostDiskResultEx => Ok(from.as_any_box().downcast::<VimVsanHostDiskResultEx>()?),
StructType::VsanHostDrsStats => Ok(from.as_any_box().downcast::<VsanHostDrsStats>()?),
StructType::VsanHostEncryptionInfo => Ok(from.as_any_box().downcast::<VsanHostEncryptionInfo>()?),
StructType::VsanHostIpConfig => Ok(from.as_any_box().downcast::<VsanHostIpConfig>()?),
StructType::VsanHostIpConfigEx => Ok(from.as_any_box().downcast::<VsanHostIpConfigEx>()?),
StructType::VsanHostMembershipInfo => Ok(from.as_any_box().downcast::<VsanHostMembershipInfo>()?),
StructType::VsanPolicyStatus => Ok(from.as_any_box().downcast::<VsanPolicyStatus>()?),
StructType::VimVsanHostQueryVsanDisksSpec => Ok(from.as_any_box().downcast::<VimVsanHostQueryVsanDisksSpec>()?),
StructType::RemoteVsanServerClusterConfig => Ok(from.as_any_box().downcast::<RemoteVsanServerClusterConfig>()?),
StructType::VsanHostRuntimeStats => Ok(from.as_any_box().downcast::<VsanHostRuntimeStats>()?),
StructType::VsanHostServerClusterUnicastConfig => Ok(from.as_any_box().downcast::<VsanHostServerClusterUnicastConfig>()?),
StructType::VsanHostServerClusterUnicastInfo => Ok(from.as_any_box().downcast::<VsanHostServerClusterUnicastInfo>()?),
StructType::SiteAffinityInfo => Ok(from.as_any_box().downcast::<SiteAffinityInfo>()?),
StructType::VsanStoragePoolDisk => Ok(from.as_any_box().downcast::<VsanStoragePoolDisk>()?),
StructType::VimVsanHostStoragePoolDiskInfo => Ok(from.as_any_box().downcast::<VimVsanHostStoragePoolDiskInfo>()?),
StructType::VimVsanHostStoragePoolInfo => Ok(from.as_any_box().downcast::<VimVsanHostStoragePoolInfo>()?),
StructType::VimVsanHostTrimDiskEntry => Ok(from.as_any_box().downcast::<VimVsanHostTrimDiskEntry>()?),
StructType::VimVsanHostTrimDiskSpec => Ok(from.as_any_box().downcast::<VimVsanHostTrimDiskSpec>()?),
StructType::VimVsanHostUpdateStoragePoolDiskSpec => Ok(from.as_any_box().downcast::<VimVsanHostUpdateStoragePoolDiskSpec>()?),
StructType::VsanHostAssociatedObjects => Ok(from.as_any_box().downcast::<VsanHostAssociatedObjects>()?),
StructType::VsanHostAssociatedObjectsResult => Ok(from.as_any_box().downcast::<VsanHostAssociatedObjectsResult>()?),
StructType::VsanComplianceQuerySpec => Ok(from.as_any_box().downcast::<VsanComplianceQuerySpec>()?),
StructType::VsanHostComponentSyncState => Ok(from.as_any_box().downcast::<VsanHostComponentSyncState>()?),
StructType::VimVsanHostVsanDirectStorage => Ok(from.as_any_box().downcast::<VimVsanHostVsanDirectStorage>()?),
StructType::VsanHostVsanDiskInfo => Ok(from.as_any_box().downcast::<VsanHostVsanDiskInfo>()?),
StructType::VimVsanHostVsanDiskManagementSystemCapability => Ok(from.as_any_box().downcast::<VimVsanHostVsanDiskManagementSystemCapability>()?),
StructType::VimVsanHostVsanHostCapability => Ok(from.as_any_box().downcast::<VimVsanHostVsanHostCapability>()?),
StructType::VimVsanHostVsanManagedDisksInfo => Ok(from.as_any_box().downcast::<VimVsanHostVsanManagedDisksInfo>()?),
StructType::VimVsanHostVsanManagedPMemInfo => Ok(from.as_any_box().downcast::<VimVsanHostVsanManagedPMemInfo>()?),
StructType::VsanObjectProfileInfo => Ok(from.as_any_box().downcast::<VsanObjectProfileInfo>()?),
StructType::VsanHostVsanObjectSyncState => Ok(from.as_any_box().downcast::<VsanHostVsanObjectSyncState>()?),
StructType::VsanHostRuntimeInfo => Ok(from.as_any_box().downcast::<VsanHostRuntimeInfo>()?),
StructType::VsanHostRuntimeInfoDiskIssue => Ok(from.as_any_box().downcast::<VsanHostRuntimeInfoDiskIssue>()?),
StructType::VimVsanHostVsanScsiDisk => Ok(from.as_any_box().downcast::<VimVsanHostVsanScsiDisk>()?),
StructType::VsanHostVsanObjectSyncQueryResult => Ok(from.as_any_box().downcast::<VsanHostVsanObjectSyncQueryResult>()?),
StructType::VsanSyncingObjectRecoveryDetails => Ok(from.as_any_box().downcast::<VsanSyncingObjectRecoveryDetails>()?),
StructType::VsanWhatIfEvacDetail => Ok(from.as_any_box().downcast::<VsanWhatIfEvacDetail>()?),
StructType::VsanWhatIfEvacResult => Ok(from.as_any_box().downcast::<VsanWhatIfEvacResult>()?),
StructType::VsanHostWipeDiskStatus => Ok(from.as_any_box().downcast::<VsanHostWipeDiskStatus>()?),
StructType::BaseConfigInfo => Ok(from.as_any_box().downcast::<BaseConfigInfo>()?),
StructType::VStorageObjectConfigInfo => Ok(from.as_any_box().downcast::<VStorageObjectConfigInfo>()?),
StructType::BaseConfigInfoBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoBackingInfo>()?),
StructType::BaseConfigInfoFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
StructType::VslmCreateSpec => Ok(from.as_any_box().downcast::<VslmCreateSpec>()?),
StructType::VslmCreateSpecBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecBackingSpec>()?),
StructType::VslmCreateSpecDiskFileBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecDiskFileBackingSpec>()?),
StructType::VslmCreateSpecRawDiskMappingBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecRawDiskMappingBackingSpec>()?),
StructType::DiskCryptoSpec => Ok(from.as_any_box().downcast::<DiskCryptoSpec>()?),
StructType::Id => Ok(from.as_any_box().downcast::<Id>()?),
StructType::VslmInfrastructureObjectPolicy => Ok(from.as_any_box().downcast::<VslmInfrastructureObjectPolicy>()?),
StructType::VslmInfrastructureObjectPolicySpec => Ok(from.as_any_box().downcast::<VslmInfrastructureObjectPolicySpec>()?),
StructType::VslmMigrateSpec => Ok(from.as_any_box().downcast::<VslmMigrateSpec>()?),
StructType::VslmCloneSpec => Ok(from.as_any_box().downcast::<VslmCloneSpec>()?),
StructType::VslmRelocateSpec => Ok(from.as_any_box().downcast::<VslmRelocateSpec>()?),
StructType::VStorageObjectReconcileResult => Ok(from.as_any_box().downcast::<VStorageObjectReconcileResult>()?),
StructType::VStorageObjectReconcileResultInvalidDiskPath => Ok(from.as_any_box().downcast::<VStorageObjectReconcileResultInvalidDiskPath>()?),
StructType::VStorageObjectReconcileResultReconcileDetail => Ok(from.as_any_box().downcast::<VStorageObjectReconcileResultReconcileDetail>()?),
StructType::VStorageObjectReconcileSpec => Ok(from.as_any_box().downcast::<VStorageObjectReconcileSpec>()?),
StructType::VStorageObjectStateInfo => Ok(from.as_any_box().downcast::<VStorageObjectStateInfo>()?),
StructType::VslmTagEntry => Ok(from.as_any_box().downcast::<VslmTagEntry>()?),
StructType::VslmVClockInfo => Ok(from.as_any_box().downcast::<VslmVClockInfo>()?),
StructType::VStorageObject => Ok(from.as_any_box().downcast::<VStorageObject>()?),
StructType::VStorageObjectSnapshot => Ok(from.as_any_box().downcast::<VStorageObjectSnapshot>()?),
StructType::VStorageObjectSnapshotDetails => Ok(from.as_any_box().downcast::<VStorageObjectSnapshotDetails>()?),
StructType::VStorageObjectSnapshotInfo => Ok(from.as_any_box().downcast::<VStorageObjectSnapshotInfo>()?),
StructType::VStorageObjectSnapshotInfoVStorageObjectSnapshot => Ok(from.as_any_box().downcast::<VStorageObjectSnapshotInfoVStorageObjectSnapshot>()?),
StructType::RetrieveVStorageObjSpec => Ok(from.as_any_box().downcast::<RetrieveVStorageObjSpec>()?),
StructType::VStorageObjectAssociations => Ok(from.as_any_box().downcast::<VStorageObjectAssociations>()?),
StructType::VStorageObjectAssociationsVmDiskAssociations => Ok(from.as_any_box().downcast::<VStorageObjectAssociationsVmDiskAssociations>()?),
StructType::DynamicArray => Ok(from.as_any_box().downcast::<DynamicArray>()?),
StructType::DynamicProperty => Ok(from.as_any_box().downcast::<DynamicProperty>()?),
StructType::KeyAnyValue => Ok(from.as_any_box().downcast::<KeyAnyValue>()?),
StructType::LocalizableMessage => Ok(from.as_any_box().downcast::<LocalizableMessage>()?),
StructType::LocalizedMethodFault => Ok(from.as_any_box().downcast::<LocalizedMethodFault>()?),
StructType::PropertyChange => Ok(from.as_any_box().downcast::<PropertyChange>()?),
StructType::PropertyFilterSpec => Ok(from.as_any_box().downcast::<PropertyFilterSpec>()?),
StructType::PropertyFilterUpdate => Ok(from.as_any_box().downcast::<PropertyFilterUpdate>()?),
StructType::MissingObject => Ok(from.as_any_box().downcast::<MissingObject>()?),
StructType::MissingProperty => Ok(from.as_any_box().downcast::<MissingProperty>()?),
StructType::ObjectContent => Ok(from.as_any_box().downcast::<ObjectContent>()?),
StructType::ObjectSpec => Ok(from.as_any_box().downcast::<ObjectSpec>()?),
StructType::ObjectUpdate => Ok(from.as_any_box().downcast::<ObjectUpdate>()?),
StructType::PropertySpec => Ok(from.as_any_box().downcast::<PropertySpec>()?),
StructType::RetrieveOptions => Ok(from.as_any_box().downcast::<RetrieveOptions>()?),
StructType::RetrieveResult => Ok(from.as_any_box().downcast::<RetrieveResult>()?),
StructType::SelectionSpec => Ok(from.as_any_box().downcast::<SelectionSpec>()?),
StructType::TraversalSpec => Ok(from.as_any_box().downcast::<TraversalSpec>()?),
StructType::UpdateSet => Ok(from.as_any_box().downcast::<UpdateSet>()?),
StructType::WaitOptions => Ok(from.as_any_box().downcast::<WaitOptions>()?),
StructType::VslmAboutInfo => Ok(from.as_any_box().downcast::<VslmAboutInfo>()?),
StructType::VslmQueryDatastoreInfoResult => Ok(from.as_any_box().downcast::<VslmQueryDatastoreInfoResult>()?),
StructType::VslmServiceInstanceContent => Ok(from.as_any_box().downcast::<VslmServiceInstanceContent>()?),
StructType::VslmTaskInfo => Ok(from.as_any_box().downcast::<VslmTaskInfo>()?),
StructType::VslmTaskReason => Ok(from.as_any_box().downcast::<VslmTaskReason>()?),
StructType::VslmTaskReasonAlarm => Ok(from.as_any_box().downcast::<VslmTaskReasonAlarm>()?),
StructType::VslmTaskReasonSchedule => Ok(from.as_any_box().downcast::<VslmTaskReasonSchedule>()?),
StructType::VslmTaskReasonSystem => Ok(from.as_any_box().downcast::<VslmTaskReasonSystem>()?),
StructType::VslmTaskReasonUser => Ok(from.as_any_box().downcast::<VslmTaskReasonUser>()?),
StructType::VslmDatastoreSyncStatus => Ok(from.as_any_box().downcast::<VslmDatastoreSyncStatus>()?),
StructType::VslmVsoVStorageObjectAssociations => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectAssociations>()?),
StructType::VslmVsoVStorageObjectAssociationsVmDiskAssociation => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectAssociationsVmDiskAssociation>()?),
StructType::VslmVsoVStorageObjectQueryResult => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectQueryResult>()?),
StructType::VslmVsoVStorageObjectQuerySpec => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectQuerySpec>()?),
StructType::VslmVsoVStorageObjectResult => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectResult>()?),
StructType::VslmVsoVStorageObjectSnapshotResult => Ok(from.as_any_box().downcast::<VslmVsoVStorageObjectSnapshotResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM APIs.
///
/// Scope specifies which where to deploy agents.
///
/// This structure may be used only with operations rendered under `/eam`.
///
/// ### How to access
/// - `Agency::config.scope?`
/// - `Agency::query_config().scope?`
/// - `Agency::update(config).scope?`
/// - `EsxAgentManager::create_agency(agency_config_info).scope?`
pub trait AgencyScopeTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn AgencyScopeTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AgencyScopeTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AgencyScopeTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AgencyScope"),
__out: &mut self.out,
}))
}
}
struct AgencyScopeTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AgencyScopeTrait>>,
}
impl miniserde::de::Map for AgencyScopeTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AgencyScopeTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AgencyScopeTrait for AgencyScope {
}
impl AgencyScopeTrait for AgencyComputeResourceScope {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AgencyScopeTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AgencyScope => Some(from.as_any_ref().downcast_ref::<AgencyScope>()?),
StructType::AgencyComputeResourceScope => Some(from.as_any_ref().downcast_ref::<AgencyComputeResourceScope>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AgencyScope => Ok(from.as_any_box().downcast::<AgencyScope>()?),
StructType::AgencyComputeResourceScope => Ok(from.as_any_box().downcast::<AgencyComputeResourceScope>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM APIs.
///
/// Specifies an SSL trust policy.
///
/// This structure may be used only with operations rendered under `/eam`.
///
/// ***Since:*** vEAM API 8.2
///
/// ### How to access
/// - `Agent::config.ovf_ssl_trust?`
/// - `Agent::config.vib_ssl_trust?`
/// - `Agency::config.agent_config?[*].ovf_ssl_trust?`
/// - `Agency::config.agent_config?[*].vib_ssl_trust?`
/// - `Agent::agent_query_config().ovf_ssl_trust?`
/// - `Agent::agent_query_config().vib_ssl_trust?`
/// - `Agency::query_config().agent_config?[*].ovf_ssl_trust?`
/// - `Agency::query_config().agent_config?[*].vib_ssl_trust?`
/// - `Agency::update(config).agent_config?[*].ovf_ssl_trust?`
/// - `EsxAgentManager::create_agency(agency_config_info).agent_config?[*].ovf_ssl_trust?`
///
/// *(10 of 12 paths)*
pub trait AgentSslTrustTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn AgentSslTrustTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AgentSslTrustTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AgentSslTrustTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AgentSslTrust"),
__out: &mut self.out,
}))
}
}
struct AgentSslTrustTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AgentSslTrustTrait>>,
}
impl miniserde::de::Map for AgentSslTrustTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AgentSslTrustTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AgentSslTrustTrait for AgentSslTrust {
}
impl AgentSslTrustTrait for AgentAnyCertificate {
}
impl AgentSslTrustTrait for AgentPinnedPemCertificate {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AgentSslTrustTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AgentSslTrust => Some(from.as_any_ref().downcast_ref::<AgentSslTrust>()?),
StructType::AgentAnyCertificate => Some(from.as_any_ref().downcast_ref::<AgentAnyCertificate>()?),
StructType::AgentPinnedPemCertificate => Some(from.as_any_ref().downcast_ref::<AgentPinnedPemCertificate>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AgentSslTrust => Ok(from.as_any_box().downcast::<AgentSslTrust>()?),
StructType::AgentAnyCertificate => Ok(from.as_any_box().downcast::<AgentAnyCertificate>()?),
StructType::AgentPinnedPemCertificate => Ok(from.as_any_box().downcast::<AgentPinnedPemCertificate>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM APIs.
///
/// Specifies the storage policies configured on Agent VMs.
///
/// This structure may be used only with operations rendered under `/eam`.
///
/// ### How to access
/// - `Agent::config.vm_storage_policies?[*]`
/// - `Agency::config.agent_config?[*].vm_storage_policies?[*]`
/// - `Agent::agent_query_config().vm_storage_policies?[*]`
/// - `Agency::query_config().agent_config?[*].vm_storage_policies?[*]`
/// - `Agency::update(config).agent_config?[*].vm_storage_policies?[*]`
/// - `EsxAgentManager::create_agency(agency_config_info).agent_config?[*].vm_storage_policies?[*]`
pub trait AgentStoragePolicyTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn AgentStoragePolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AgentStoragePolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AgentStoragePolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AgentStoragePolicy"),
__out: &mut self.out,
}))
}
}
struct AgentStoragePolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AgentStoragePolicyTrait>>,
}
impl miniserde::de::Map for AgentStoragePolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AgentStoragePolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AgentStoragePolicyTrait for AgentStoragePolicy {
}
impl AgentStoragePolicyTrait for AgentVsanStoragePolicy {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AgentStoragePolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AgentStoragePolicy => Some(from.as_any_ref().downcast_ref::<AgentStoragePolicy>()?),
StructType::AgentVsanStoragePolicy => Some(from.as_any_ref().downcast_ref::<AgentVsanStoragePolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AgentStoragePolicy => Ok(from.as_any_box().downcast::<AgentStoragePolicy>()?),
StructType::AgentVsanStoragePolicy => Ok(from.as_any_box().downcast::<AgentVsanStoragePolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM APIs.
///
/// The <code>RuntimeInfo</code> represents the runtime information of the vSphere ESX Agent
/// Manager managed
/// objects *Agency* and *Agent*.
///
/// The runtime information provides
/// two kinds of information, namely, the
/// desired goal state of the entity and the status with regards to conforming
/// to that goal state.
///
/// This structure may be used only with operations rendered under `/eam`.
///
/// ### How to access
/// - `Agency::runtime`
/// - `Agency::agency_query_runtime()`
pub trait EamObjectRuntimeInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the EamObjectRuntimeInfo parent struct
fn get_eam_object_runtime_info(&self) -> &super::structs::EamObjectRuntimeInfo;
/// Get a mutable reference to the EamObjectRuntimeInfo parent struct
fn get_eam_object_runtime_info_mut(&mut self) -> &mut super::structs::EamObjectRuntimeInfo;
}
impl std::ops::Deref for dyn EamObjectRuntimeInfoTrait {
type Target = super::structs::EamObjectRuntimeInfo;
fn deref(&self) -> &Self::Target {
self.get_eam_object_runtime_info()
}
}
impl std::ops::DerefMut for dyn EamObjectRuntimeInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_eam_object_runtime_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn EamObjectRuntimeInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn EamObjectRuntimeInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(EamObjectRuntimeInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("EamObjectRuntimeInfo"),
__out: &mut self.out,
}))
}
}
struct EamObjectRuntimeInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn EamObjectRuntimeInfoTrait>>,
}
impl miniserde::de::Map for EamObjectRuntimeInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn EamObjectRuntimeInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl EamObjectRuntimeInfoTrait for EamObjectRuntimeInfo {
fn get_eam_object_runtime_info(&self) -> &super::structs::EamObjectRuntimeInfo { &self }
fn get_eam_object_runtime_info_mut(&mut self) -> &mut super::structs::EamObjectRuntimeInfo { self }
}
impl EamObjectRuntimeInfoTrait for AgentRuntimeInfo {
fn get_eam_object_runtime_info(&self) -> &super::structs::EamObjectRuntimeInfo { &self.eam_object_runtime_info_ }
fn get_eam_object_runtime_info_mut(&mut self) -> &mut super::structs::EamObjectRuntimeInfo { &mut self.eam_object_runtime_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn EamObjectRuntimeInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::EamObjectRuntimeInfo => Some(from.as_any_ref().downcast_ref::<EamObjectRuntimeInfo>()?),
StructType::AgentRuntimeInfo => Some(from.as_any_ref().downcast_ref::<AgentRuntimeInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::EamObjectRuntimeInfo => Ok(from.as_any_box().downcast::<EamObjectRuntimeInfo>()?),
StructType::AgentRuntimeInfo => Ok(from.as_any_box().downcast::<AgentRuntimeInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An issue represents a problem encountered while deploying and configurating agents
/// in a vCenter installation.
///
/// An issue conveys the type of problem and the
/// entitity on which the problem has been encountered. Most issues are related to agents,
/// but they can also relate to an agency or a host.
///
/// The set of issues provided by the vSphere ESX Agent Manager describes the discrepency between
/// the _desired_ agent deployment state, as defined by the agency configurations,
/// and the _actual_ deployment. The (@link EamObject.RuntimeInfo.Status.status)
/// of an agency or agent is green if it has reached its goal state. It is
/// marked as yellow if the vSphere ESX Agent Manager is actively working to bring the object
/// to its goal state. It is red if there is a discrepency between the current state and
/// the desired state. In the red state, a set of issues are filed on the object that
/// describe the reason for the discrepency between the desired and actual states.
///
/// Issues are characterized as either active or passive remediable issues. For an active
/// remediable issue, the vSphere ESX Agent Manager can actively try to solve the issue. For
/// example, by deploying a new agent, removing an agent, changing its power state, and so
/// on. For a passive remediable issue, the vSphere ESX Agent Manager is not able to solve the
/// problem directly, and can only report the problem. For example, this could be
/// caused by an incomplete host configuration.
///
/// When <code>resolve</code> is called for an active remediable issue, the vSphere ESX Agent Manager
/// starts performing the appropiate remediation steps for the particular issue. For a passive
/// remediable issue, the EAM manager simply checks if the condition
/// still exists, and if not it removes the issue.
///
/// The vSphere ESX Agent Manager actively monitors most conditions relating to both
/// active and passive issues. Thus, it often automatically discovers when an
/// issue has been remediated and removes the issue without needing to explicitly
/// call <code>resolve</code> on an issue.
///
/// The complete Issue hierarchy is shown below:
/// - *Issue*
/// - *AgencyIssue*
/// - *AgentIssue*
/// - *ManagedHostNotReachable*
/// - *VmNotDeployed*
/// - *CannotAccessAgentOVF*
/// - *IncompatibleHostVersion*
/// - *InsufficientResources*
/// - *InsufficientSpace*
/// - *OvfInvalidFormat*
/// - *NoAgentVmDatastore*
/// - *NoAgentVmNetwork*
/// - *VmIssue*
/// - *OvfInvalidProperty*
/// - *VmDeployed*
/// - *HostInMaintenanceMode*
/// - *HostInStandbyMode*
/// - *VmCorrupted*
/// - *VmOrphaned*
/// - *VmPoweredOff*
/// - *InsufficientIpAddresses*
/// - *MissingAgentIpPool*
/// - *VmPoweredOn*
/// - *VmSuspended*
/// - *VibIssue*
/// - *VibCannotPutHostInMaintenanceMode*
/// - *VibNotInstalled*
/// - *CannotAccessAgentVib*
/// - *VibDependenciesNotMetByHost*
/// - *VibInvalidFormat*
/// - *VibRequirementsNotMetByHost*
/// - *VibRequiresHostInMaintenanceMode*
/// - *VibRequiresHostReboot*
/// - *VibRequiresManualInstallation*
/// - *VibRequiresManualUninstallation*
/// - *ImmediateHostRebootRequired*
/// - *OrphanedAgency*
/// - *IntegrityAgencyVUMIssue*
/// - *IntegrityAgencyVUMUnavailable*
/// - *IntegrityAgencyCannotStageSoftware*
/// - *IntegrityAgencyCannotDeleteSoftware*
/// - *ClusterAgentAgentIssue*
/// - *ClusterAgentVmIssue*
/// - *ClusterAgentVmNotRemoved*
/// - *ClusterAgentVmPoweredOff*
/// - *ClusterAgentInsufficientClusterResources*
/// - *ClusterAgentVmNotDeployed*
/// - *ClusterAgentInsufficientClusterSpace*
/// - *ClusterAgentMissingClusterVmDatastore*
/// - *ClusterAgentMissingClusterVmNetwork*
///
/// See also *EamObject.Resolve*, *EamObject.ResolveAll*.
///
/// This structure may be used only with operations rendered under `/eam`.
///
/// ### How to access
/// - `EsxAgentManager::issue`
/// - `Agency::runtime.issue?[*]`
/// - `Agency::add_issue()`
/// - `Agency::add_issue(issue)`
/// - `Agency::query_issue()`
/// - `Agent::query_issue()`
/// - `EamObject::query_issue()`
/// - `EsxAgentManager::query_issue()`
/// - `Agency::agency_query_runtime().issue?[*]`
pub trait IssueTrait : super::traits::DataObjectTrait {
/// Get a reference to the Issue parent struct
fn get_issue(&self) -> &super::structs::Issue;
/// Get a mutable reference to the Issue parent struct
fn get_issue_mut(&mut self) -> &mut super::structs::Issue;
}
impl std::ops::Deref for dyn IssueTrait {
type Target = super::structs::Issue;
fn deref(&self) -> &Self::Target {
self.get_issue()
}
}
impl std::ops::DerefMut for dyn IssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn IssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn IssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(IssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("Issue"),
__out: &mut self.out,
}))
}
}
struct IssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn IssueTrait>>,
}
impl miniserde::de::Map for IssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn IssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl IssueTrait for Issue {
fn get_issue(&self) -> &super::structs::Issue { &self }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { self }
}
impl IssueTrait for AgencyIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.issue_ }
}
impl IssueTrait for AgencyDisabled {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for AgentIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for EamCertificateNotTrusted {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for HostInPartialMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ManagedHostNotReachable {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for MissingDvFilterSwitch {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for OvfInvalidProperty {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for TransitionFailed {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ImmediateHostRebootRequired {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibCannotPutHostInMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibCannotPutHostOutOfMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibNotInstalled {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for CannotAccessAgentVib {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibDependenciesNotMetByHost {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibInvalidFormat {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibRequirementsNotMetByHost {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibRequiresHostInMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibRequiresHostReboot {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibRequiresManualInstallation {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VibRequiresManualUninstallation {
fn get_issue(&self) -> &super::structs::Issue { &self.vib_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vib_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for InvalidConfig {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmCorrupted {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmDeployed {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for HostInMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for HostInStandbyMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for HostPoweredOff {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmHookFailed {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmHookTimedout {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmInaccessible {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmMarkedAsTemplate {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmOrphaned {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmPoweredOff {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for InsufficientIpAddresses {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for MissingAgentIpPool {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmPoweredOn {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmProtected {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmSuspended {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmWrongFolder {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmWrongResourcePool {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmNotDeployed {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for CannotAccessAgentOvf {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for IncompatibleHostVersion {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for InsufficientResources {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for InsufficientSpace {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoAgentVmDatastore {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoCustomAgentVmDatastore {
fn get_issue(&self) -> &super::structs::Issue { &self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoAgentVmNetwork {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoCustomAgentVmNetwork {
fn get_issue(&self) -> &super::structs::Issue { &self.no_agent_vm_network_.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.no_agent_vm_network_.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoDiscoverableAgentVmDatastore {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for NoDiscoverableAgentVmNetwork {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for OvfInvalidFormat {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for VmRequiresHostOutOfMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgentPmIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgentAwaitingPmRemediation {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agent_pm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agent_pm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgentBlockedByAgencyOperation {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agent_pm_issue_.agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agent_pm_issue_.agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for OrphanedAgency {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentAgentIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentOvfInvalidProperty {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentTransitionFailed {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentHostInMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentHostInPartialMaintenanceMode {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentInvalidConfig {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmHookFailed {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmHookTimedout {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmInaccessible {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmNotRemoved {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmPoweredOff {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentInsufficientClusterResources {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmPoweredOn {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmProtected {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmSuspended {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentVmNotDeployed {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentCertificateNotTrusted {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentInsufficientClusterSpace {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentMissingClusterVmDatastore {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ClusterAgentMissingClusterVmNetwork {
fn get_issue(&self) -> &super::structs::Issue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_.issue_ }
}
impl IssueTrait for IntegrityAgencyVumIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for IntegrityAgencyCannotDeleteSoftware {
fn get_issue(&self) -> &super::structs::Issue { &self.integrity_agency_vum_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.integrity_agency_vum_issue_.agency_issue_.issue_ }
}
impl IssueTrait for IntegrityAgencyCannotStageSoftware {
fn get_issue(&self) -> &super::structs::Issue { &self.integrity_agency_vum_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.integrity_agency_vum_issue_.agency_issue_.issue_ }
}
impl IssueTrait for IntegrityAgencyVumUnavailable {
fn get_issue(&self) -> &super::structs::Issue { &self.integrity_agency_vum_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.integrity_agency_vum_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyPmIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyCannotConfigureSolutions {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyDepotIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyCannotUploadDepot {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyInaccessibleDepot {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyInvalidDepot {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for PersonalityAgencyPmUnavailable {
fn get_issue(&self) -> &super::structs::Issue { &self.personality_agency_pm_issue_.agency_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.personality_agency_pm_issue_.agency_issue_.issue_ }
}
impl IssueTrait for ExtensibleIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.issue_ }
}
impl IssueTrait for HostIssue {
fn get_issue(&self) -> &super::structs::Issue { &self.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.issue_ }
}
impl IssueTrait for OrphanedDvFilterSwitch {
fn get_issue(&self) -> &super::structs::Issue { &self.host_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.host_issue_.issue_ }
}
impl IssueTrait for UnknownAgentVm {
fn get_issue(&self) -> &super::structs::Issue { &self.host_issue_.issue_ }
fn get_issue_mut(&mut self) -> &mut super::structs::Issue { &mut self.host_issue_.issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn IssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::Issue => Some(from.as_any_ref().downcast_ref::<Issue>()?),
StructType::AgencyIssue => Some(from.as_any_ref().downcast_ref::<AgencyIssue>()?),
StructType::AgencyDisabled => Some(from.as_any_ref().downcast_ref::<AgencyDisabled>()?),
StructType::AgentIssue => Some(from.as_any_ref().downcast_ref::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Some(from.as_any_ref().downcast_ref::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Some(from.as_any_ref().downcast_ref::<TransitionFailed>()?),
StructType::VibIssue => Some(from.as_any_ref().downcast_ref::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Some(from.as_any_ref().downcast_ref::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Some(from.as_any_ref().downcast_ref::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Some(from.as_any_ref().downcast_ref::<VmIssue>()?),
StructType::InvalidConfig => Some(from.as_any_ref().downcast_ref::<InvalidConfig>()?),
StructType::VmCorrupted => Some(from.as_any_ref().downcast_ref::<VmCorrupted>()?),
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
StructType::VmHookFailed => Some(from.as_any_ref().downcast_ref::<VmHookFailed>()?),
StructType::VmHookTimedout => Some(from.as_any_ref().downcast_ref::<VmHookTimedout>()?),
StructType::VmInaccessible => Some(from.as_any_ref().downcast_ref::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Some(from.as_any_ref().downcast_ref::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Some(from.as_any_ref().downcast_ref::<VmOrphaned>()?),
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Some(from.as_any_ref().downcast_ref::<VmPoweredOn>()?),
StructType::VmProtected => Some(from.as_any_ref().downcast_ref::<VmProtected>()?),
StructType::VmSuspended => Some(from.as_any_ref().downcast_ref::<VmSuspended>()?),
StructType::VmWrongFolder => Some(from.as_any_ref().downcast_ref::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Some(from.as_any_ref().downcast_ref::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Some(from.as_any_ref().downcast_ref::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Some(from.as_any_ref().downcast_ref::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Some(from.as_any_ref().downcast_ref::<InsufficientResources>()?),
StructType::InsufficientSpace => Some(from.as_any_ref().downcast_ref::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Some(from.as_any_ref().downcast_ref::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Some(from.as_any_ref().downcast_ref::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Some(from.as_any_ref().downcast_ref::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmUnavailable>()?),
StructType::ExtensibleIssue => Some(from.as_any_ref().downcast_ref::<ExtensibleIssue>()?),
StructType::HostIssue => Some(from.as_any_ref().downcast_ref::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Some(from.as_any_ref().downcast_ref::<UnknownAgentVm>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::Issue => Ok(from.as_any_box().downcast::<Issue>()?),
StructType::AgencyIssue => Ok(from.as_any_box().downcast::<AgencyIssue>()?),
StructType::AgencyDisabled => Ok(from.as_any_box().downcast::<AgencyDisabled>()?),
StructType::AgentIssue => Ok(from.as_any_box().downcast::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Ok(from.as_any_box().downcast::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Ok(from.as_any_box().downcast::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Ok(from.as_any_box().downcast::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Ok(from.as_any_box().downcast::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Ok(from.as_any_box().downcast::<TransitionFailed>()?),
StructType::VibIssue => Ok(from.as_any_box().downcast::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Ok(from.as_any_box().downcast::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Ok(from.as_any_box().downcast::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Ok(from.as_any_box().downcast::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Ok(from.as_any_box().downcast::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Ok(from.as_any_box().downcast::<VmIssue>()?),
StructType::InvalidConfig => Ok(from.as_any_box().downcast::<InvalidConfig>()?),
StructType::VmCorrupted => Ok(from.as_any_box().downcast::<VmCorrupted>()?),
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
StructType::VmHookFailed => Ok(from.as_any_box().downcast::<VmHookFailed>()?),
StructType::VmHookTimedout => Ok(from.as_any_box().downcast::<VmHookTimedout>()?),
StructType::VmInaccessible => Ok(from.as_any_box().downcast::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Ok(from.as_any_box().downcast::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Ok(from.as_any_box().downcast::<VmOrphaned>()?),
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Ok(from.as_any_box().downcast::<VmPoweredOn>()?),
StructType::VmProtected => Ok(from.as_any_box().downcast::<VmProtected>()?),
StructType::VmSuspended => Ok(from.as_any_box().downcast::<VmSuspended>()?),
StructType::VmWrongFolder => Ok(from.as_any_box().downcast::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Ok(from.as_any_box().downcast::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Ok(from.as_any_box().downcast::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Ok(from.as_any_box().downcast::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Ok(from.as_any_box().downcast::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Ok(from.as_any_box().downcast::<InsufficientResources>()?),
StructType::InsufficientSpace => Ok(from.as_any_box().downcast::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Ok(from.as_any_box().downcast::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Ok(from.as_any_box().downcast::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Ok(from.as_any_box().downcast::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Ok(from.as_any_box().downcast::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Ok(from.as_any_box().downcast::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Ok(from.as_any_box().downcast::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Ok(from.as_any_box().downcast::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Ok(from.as_any_box().downcast::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Ok(from.as_any_box().downcast::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Ok(from.as_any_box().downcast::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Ok(from.as_any_box().downcast::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Ok(from.as_any_box().downcast::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Ok(from.as_any_box().downcast::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Ok(from.as_any_box().downcast::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Ok(from.as_any_box().downcast::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Ok(from.as_any_box().downcast::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Ok(from.as_any_box().downcast::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Ok(from.as_any_box().downcast::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Ok(from.as_any_box().downcast::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Ok(from.as_any_box().downcast::<PersonalityAgencyPmUnavailable>()?),
StructType::ExtensibleIssue => Ok(from.as_any_box().downcast::<ExtensibleIssue>()?),
StructType::HostIssue => Ok(from.as_any_box().downcast::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Ok(from.as_any_box().downcast::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Ok(from.as_any_box().downcast::<UnknownAgentVm>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all agency issues.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait AgencyIssueTrait : super::traits::IssueTrait {
/// Get a reference to the AgencyIssue parent struct
fn get_agency_issue(&self) -> &super::structs::AgencyIssue;
/// Get a mutable reference to the AgencyIssue parent struct
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue;
}
impl std::ops::Deref for dyn AgencyIssueTrait {
type Target = super::structs::AgencyIssue;
fn deref(&self) -> &Self::Target {
self.get_agency_issue()
}
}
impl std::ops::DerefMut for dyn AgencyIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_agency_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn AgencyIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AgencyIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AgencyIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AgencyIssue"),
__out: &mut self.out,
}))
}
}
struct AgencyIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AgencyIssueTrait>>,
}
impl miniserde::de::Map for AgencyIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AgencyIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AgencyIssueTrait for AgencyIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { self }
}
impl AgencyIssueTrait for AgencyDisabled {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for AgentIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for EamCertificateNotTrusted {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for HostInPartialMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ManagedHostNotReachable {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for MissingDvFilterSwitch {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for OvfInvalidProperty {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for TransitionFailed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ImmediateHostRebootRequired {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibCannotPutHostInMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibCannotPutHostOutOfMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibNotInstalled {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for CannotAccessAgentVib {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibDependenciesNotMetByHost {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibInvalidFormat {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibRequirementsNotMetByHost {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibRequiresHostInMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibRequiresHostReboot {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibRequiresManualInstallation {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VibRequiresManualUninstallation {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vib_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vib_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for InvalidConfig {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmCorrupted {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmDeployed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for HostInMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for HostInStandbyMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for HostPoweredOff {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmHookFailed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmHookTimedout {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmInaccessible {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmMarkedAsTemplate {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmOrphaned {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmPoweredOff {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for InsufficientIpAddresses {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for MissingAgentIpPool {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_powered_off_.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmPoweredOn {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmProtected {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmSuspended {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmWrongFolder {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmWrongResourcePool {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmNotDeployed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for CannotAccessAgentOvf {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for IncompatibleHostVersion {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for InsufficientResources {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for InsufficientSpace {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoAgentVmDatastore {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoCustomAgentVmDatastore {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoAgentVmNetwork {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoCustomAgentVmNetwork {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.no_agent_vm_network_.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.no_agent_vm_network_.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoDiscoverableAgentVmDatastore {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for NoDiscoverableAgentVmNetwork {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for OvfInvalidFormat {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for VmRequiresHostOutOfMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.vm_not_deployed_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.vm_not_deployed_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgentPmIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgentAwaitingPmRemediation {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agent_pm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agent_pm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgentBlockedByAgencyOperation {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agent_pm_issue_.agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agent_pm_issue_.agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for OrphanedAgency {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentAgentIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentOvfInvalidProperty {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentTransitionFailed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentHostInMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentHostInPartialMaintenanceMode {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentInvalidConfig {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmHookFailed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmHookTimedout {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmInaccessible {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmNotRemoved {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmPoweredOff {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentInsufficientClusterResources {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmPoweredOn {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmProtected {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmSuspended {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentVmNotDeployed {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentCertificateNotTrusted {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentInsufficientClusterSpace {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentMissingClusterVmDatastore {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for ClusterAgentMissingClusterVmNetwork {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_.agency_issue_ }
}
impl AgencyIssueTrait for IntegrityAgencyVumIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for IntegrityAgencyCannotDeleteSoftware {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.integrity_agency_vum_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.integrity_agency_vum_issue_.agency_issue_ }
}
impl AgencyIssueTrait for IntegrityAgencyCannotStageSoftware {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.integrity_agency_vum_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.integrity_agency_vum_issue_.agency_issue_ }
}
impl AgencyIssueTrait for IntegrityAgencyVumUnavailable {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.integrity_agency_vum_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.integrity_agency_vum_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyPmIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyCannotConfigureSolutions {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_pm_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyDepotIssue {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_pm_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyCannotUploadDepot {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyInaccessibleDepot {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyInvalidDepot {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_.agency_issue_ }
}
impl AgencyIssueTrait for PersonalityAgencyPmUnavailable {
fn get_agency_issue(&self) -> &super::structs::AgencyIssue { &self.personality_agency_pm_issue_.agency_issue_ }
fn get_agency_issue_mut(&mut self) -> &mut super::structs::AgencyIssue { &mut self.personality_agency_pm_issue_.agency_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AgencyIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AgencyIssue => Some(from.as_any_ref().downcast_ref::<AgencyIssue>()?),
StructType::AgencyDisabled => Some(from.as_any_ref().downcast_ref::<AgencyDisabled>()?),
StructType::AgentIssue => Some(from.as_any_ref().downcast_ref::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Some(from.as_any_ref().downcast_ref::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Some(from.as_any_ref().downcast_ref::<TransitionFailed>()?),
StructType::VibIssue => Some(from.as_any_ref().downcast_ref::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Some(from.as_any_ref().downcast_ref::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Some(from.as_any_ref().downcast_ref::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Some(from.as_any_ref().downcast_ref::<VmIssue>()?),
StructType::InvalidConfig => Some(from.as_any_ref().downcast_ref::<InvalidConfig>()?),
StructType::VmCorrupted => Some(from.as_any_ref().downcast_ref::<VmCorrupted>()?),
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
StructType::VmHookFailed => Some(from.as_any_ref().downcast_ref::<VmHookFailed>()?),
StructType::VmHookTimedout => Some(from.as_any_ref().downcast_ref::<VmHookTimedout>()?),
StructType::VmInaccessible => Some(from.as_any_ref().downcast_ref::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Some(from.as_any_ref().downcast_ref::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Some(from.as_any_ref().downcast_ref::<VmOrphaned>()?),
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Some(from.as_any_ref().downcast_ref::<VmPoweredOn>()?),
StructType::VmProtected => Some(from.as_any_ref().downcast_ref::<VmProtected>()?),
StructType::VmSuspended => Some(from.as_any_ref().downcast_ref::<VmSuspended>()?),
StructType::VmWrongFolder => Some(from.as_any_ref().downcast_ref::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Some(from.as_any_ref().downcast_ref::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Some(from.as_any_ref().downcast_ref::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Some(from.as_any_ref().downcast_ref::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Some(from.as_any_ref().downcast_ref::<InsufficientResources>()?),
StructType::InsufficientSpace => Some(from.as_any_ref().downcast_ref::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Some(from.as_any_ref().downcast_ref::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Some(from.as_any_ref().downcast_ref::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Some(from.as_any_ref().downcast_ref::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmUnavailable>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AgencyIssue => Ok(from.as_any_box().downcast::<AgencyIssue>()?),
StructType::AgencyDisabled => Ok(from.as_any_box().downcast::<AgencyDisabled>()?),
StructType::AgentIssue => Ok(from.as_any_box().downcast::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Ok(from.as_any_box().downcast::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Ok(from.as_any_box().downcast::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Ok(from.as_any_box().downcast::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Ok(from.as_any_box().downcast::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Ok(from.as_any_box().downcast::<TransitionFailed>()?),
StructType::VibIssue => Ok(from.as_any_box().downcast::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Ok(from.as_any_box().downcast::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Ok(from.as_any_box().downcast::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Ok(from.as_any_box().downcast::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Ok(from.as_any_box().downcast::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Ok(from.as_any_box().downcast::<VmIssue>()?),
StructType::InvalidConfig => Ok(from.as_any_box().downcast::<InvalidConfig>()?),
StructType::VmCorrupted => Ok(from.as_any_box().downcast::<VmCorrupted>()?),
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
StructType::VmHookFailed => Ok(from.as_any_box().downcast::<VmHookFailed>()?),
StructType::VmHookTimedout => Ok(from.as_any_box().downcast::<VmHookTimedout>()?),
StructType::VmInaccessible => Ok(from.as_any_box().downcast::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Ok(from.as_any_box().downcast::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Ok(from.as_any_box().downcast::<VmOrphaned>()?),
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Ok(from.as_any_box().downcast::<VmPoweredOn>()?),
StructType::VmProtected => Ok(from.as_any_box().downcast::<VmProtected>()?),
StructType::VmSuspended => Ok(from.as_any_box().downcast::<VmSuspended>()?),
StructType::VmWrongFolder => Ok(from.as_any_box().downcast::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Ok(from.as_any_box().downcast::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Ok(from.as_any_box().downcast::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Ok(from.as_any_box().downcast::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Ok(from.as_any_box().downcast::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Ok(from.as_any_box().downcast::<InsufficientResources>()?),
StructType::InsufficientSpace => Ok(from.as_any_box().downcast::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Ok(from.as_any_box().downcast::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Ok(from.as_any_box().downcast::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Ok(from.as_any_box().downcast::<PersonalityAgentBlockedByAgencyOperation>()?),
StructType::OrphanedAgency => Ok(from.as_any_box().downcast::<OrphanedAgency>()?),
StructType::ClusterAgentAgentIssue => Ok(from.as_any_box().downcast::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Ok(from.as_any_box().downcast::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Ok(from.as_any_box().downcast::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Ok(from.as_any_box().downcast::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Ok(from.as_any_box().downcast::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Ok(from.as_any_box().downcast::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Ok(from.as_any_box().downcast::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Ok(from.as_any_box().downcast::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Ok(from.as_any_box().downcast::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Ok(from.as_any_box().downcast::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Ok(from.as_any_box().downcast::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Ok(from.as_any_box().downcast::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Ok(from.as_any_box().downcast::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmNetwork>()?),
StructType::IntegrityAgencyVumIssue => Ok(from.as_any_box().downcast::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Ok(from.as_any_box().downcast::<IntegrityAgencyVumUnavailable>()?),
StructType::PersonalityAgencyPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Ok(from.as_any_box().downcast::<PersonalityAgencyPmUnavailable>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all agent issues.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait AgentIssueTrait : super::traits::AgencyIssueTrait {
/// Get a reference to the AgentIssue parent struct
fn get_agent_issue(&self) -> &super::structs::AgentIssue;
/// Get a mutable reference to the AgentIssue parent struct
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue;
}
impl std::ops::Deref for dyn AgentIssueTrait {
type Target = super::structs::AgentIssue;
fn deref(&self) -> &Self::Target {
self.get_agent_issue()
}
}
impl std::ops::DerefMut for dyn AgentIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_agent_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn AgentIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AgentIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AgentIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AgentIssue"),
__out: &mut self.out,
}))
}
}
struct AgentIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AgentIssueTrait>>,
}
impl miniserde::de::Map for AgentIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AgentIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AgentIssueTrait for AgentIssue {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { self }
}
impl AgentIssueTrait for EamCertificateNotTrusted {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for HostInPartialMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for ManagedHostNotReachable {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for MissingDvFilterSwitch {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for OvfInvalidProperty {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for TransitionFailed {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for VibIssue {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for ImmediateHostRebootRequired {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibCannotPutHostInMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibCannotPutHostOutOfMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibNotInstalled {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for CannotAccessAgentVib {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_not_installed_.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibDependenciesNotMetByHost {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_not_installed_.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibInvalidFormat {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_not_installed_.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibRequirementsNotMetByHost {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_not_installed_.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_not_installed_.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibRequiresHostInMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibRequiresHostReboot {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibRequiresManualInstallation {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VibRequiresManualUninstallation {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vib_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vib_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmIssue {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for InvalidConfig {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmCorrupted {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmDeployed {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for HostInMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_deployed_.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for HostInStandbyMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_deployed_.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for HostPoweredOff {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_deployed_.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_deployed_.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmHookFailed {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmHookTimedout {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmInaccessible {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmMarkedAsTemplate {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmOrphaned {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmPoweredOff {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for InsufficientIpAddresses {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_powered_off_.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_powered_off_.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for MissingAgentIpPool {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_powered_off_.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_powered_off_.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmPoweredOn {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmProtected {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmSuspended {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmWrongFolder {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmWrongResourcePool {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_issue_.agent_issue_ }
}
impl AgentIssueTrait for VmNotDeployed {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for CannotAccessAgentOvf {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for IncompatibleHostVersion {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for InsufficientResources {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for InsufficientSpace {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoAgentVmDatastore {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoCustomAgentVmDatastore {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.no_agent_vm_datastore_.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoAgentVmNetwork {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoCustomAgentVmNetwork {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.no_agent_vm_network_.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.no_agent_vm_network_.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoDiscoverableAgentVmDatastore {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for NoDiscoverableAgentVmNetwork {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for OvfInvalidFormat {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for VmRequiresHostOutOfMaintenanceMode {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.vm_not_deployed_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.vm_not_deployed_.agent_issue_ }
}
impl AgentIssueTrait for PersonalityAgentPmIssue {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.agent_issue_ }
}
impl AgentIssueTrait for PersonalityAgentAwaitingPmRemediation {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.personality_agent_pm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.personality_agent_pm_issue_.agent_issue_ }
}
impl AgentIssueTrait for PersonalityAgentBlockedByAgencyOperation {
fn get_agent_issue(&self) -> &super::structs::AgentIssue { &self.personality_agent_pm_issue_.agent_issue_ }
fn get_agent_issue_mut(&mut self) -> &mut super::structs::AgentIssue { &mut self.personality_agent_pm_issue_.agent_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AgentIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AgentIssue => Some(from.as_any_ref().downcast_ref::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Some(from.as_any_ref().downcast_ref::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Some(from.as_any_ref().downcast_ref::<TransitionFailed>()?),
StructType::VibIssue => Some(from.as_any_ref().downcast_ref::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Some(from.as_any_ref().downcast_ref::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Some(from.as_any_ref().downcast_ref::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Some(from.as_any_ref().downcast_ref::<VmIssue>()?),
StructType::InvalidConfig => Some(from.as_any_ref().downcast_ref::<InvalidConfig>()?),
StructType::VmCorrupted => Some(from.as_any_ref().downcast_ref::<VmCorrupted>()?),
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
StructType::VmHookFailed => Some(from.as_any_ref().downcast_ref::<VmHookFailed>()?),
StructType::VmHookTimedout => Some(from.as_any_ref().downcast_ref::<VmHookTimedout>()?),
StructType::VmInaccessible => Some(from.as_any_ref().downcast_ref::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Some(from.as_any_ref().downcast_ref::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Some(from.as_any_ref().downcast_ref::<VmOrphaned>()?),
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Some(from.as_any_ref().downcast_ref::<VmPoweredOn>()?),
StructType::VmProtected => Some(from.as_any_ref().downcast_ref::<VmProtected>()?),
StructType::VmSuspended => Some(from.as_any_ref().downcast_ref::<VmSuspended>()?),
StructType::VmWrongFolder => Some(from.as_any_ref().downcast_ref::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Some(from.as_any_ref().downcast_ref::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Some(from.as_any_ref().downcast_ref::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Some(from.as_any_ref().downcast_ref::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Some(from.as_any_ref().downcast_ref::<InsufficientResources>()?),
StructType::InsufficientSpace => Some(from.as_any_ref().downcast_ref::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Some(from.as_any_ref().downcast_ref::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentBlockedByAgencyOperation>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AgentIssue => Ok(from.as_any_box().downcast::<AgentIssue>()?),
StructType::EamCertificateNotTrusted => Ok(from.as_any_box().downcast::<EamCertificateNotTrusted>()?),
StructType::HostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<HostInPartialMaintenanceMode>()?),
StructType::ManagedHostNotReachable => Ok(from.as_any_box().downcast::<ManagedHostNotReachable>()?),
StructType::MissingDvFilterSwitch => Ok(from.as_any_box().downcast::<MissingDvFilterSwitch>()?),
StructType::OvfInvalidProperty => Ok(from.as_any_box().downcast::<OvfInvalidProperty>()?),
StructType::TransitionFailed => Ok(from.as_any_box().downcast::<TransitionFailed>()?),
StructType::VibIssue => Ok(from.as_any_box().downcast::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Ok(from.as_any_box().downcast::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Ok(from.as_any_box().downcast::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Ok(from.as_any_box().downcast::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Ok(from.as_any_box().downcast::<VibRequiresManualUninstallation>()?),
StructType::VmIssue => Ok(from.as_any_box().downcast::<VmIssue>()?),
StructType::InvalidConfig => Ok(from.as_any_box().downcast::<InvalidConfig>()?),
StructType::VmCorrupted => Ok(from.as_any_box().downcast::<VmCorrupted>()?),
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
StructType::VmHookFailed => Ok(from.as_any_box().downcast::<VmHookFailed>()?),
StructType::VmHookTimedout => Ok(from.as_any_box().downcast::<VmHookTimedout>()?),
StructType::VmInaccessible => Ok(from.as_any_box().downcast::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Ok(from.as_any_box().downcast::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Ok(from.as_any_box().downcast::<VmOrphaned>()?),
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Ok(from.as_any_box().downcast::<VmPoweredOn>()?),
StructType::VmProtected => Ok(from.as_any_box().downcast::<VmProtected>()?),
StructType::VmSuspended => Ok(from.as_any_box().downcast::<VmSuspended>()?),
StructType::VmWrongFolder => Ok(from.as_any_box().downcast::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Ok(from.as_any_box().downcast::<VmWrongResourcePool>()?),
StructType::VmNotDeployed => Ok(from.as_any_box().downcast::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Ok(from.as_any_box().downcast::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Ok(from.as_any_box().downcast::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Ok(from.as_any_box().downcast::<InsufficientResources>()?),
StructType::InsufficientSpace => Ok(from.as_any_box().downcast::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Ok(from.as_any_box().downcast::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VmRequiresHostOutOfMaintenanceMode>()?),
StructType::PersonalityAgentPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Ok(from.as_any_box().downcast::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Ok(from.as_any_box().downcast::<PersonalityAgentBlockedByAgencyOperation>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// Base class for all issues related to the VIB modules that belong to an agent.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VibIssueTrait : super::traits::AgentIssueTrait {
/// Get a reference to the VibIssue parent struct
fn get_vib_issue(&self) -> &super::structs::VibIssue;
/// Get a mutable reference to the VibIssue parent struct
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue;
}
impl std::ops::Deref for dyn VibIssueTrait {
type Target = super::structs::VibIssue;
fn deref(&self) -> &Self::Target {
self.get_vib_issue()
}
}
impl std::ops::DerefMut for dyn VibIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vib_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn VibIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VibIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VibIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VibIssue"),
__out: &mut self.out,
}))
}
}
struct VibIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VibIssueTrait>>,
}
impl miniserde::de::Map for VibIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VibIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VibIssueTrait for VibIssue {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { self }
}
impl VibIssueTrait for ImmediateHostRebootRequired {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibCannotPutHostInMaintenanceMode {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibCannotPutHostOutOfMaintenanceMode {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibNotInstalled {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for CannotAccessAgentVib {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_not_installed_.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_not_installed_.vib_issue_ }
}
impl VibIssueTrait for VibDependenciesNotMetByHost {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_not_installed_.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_not_installed_.vib_issue_ }
}
impl VibIssueTrait for VibInvalidFormat {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_not_installed_.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_not_installed_.vib_issue_ }
}
impl VibIssueTrait for VibRequirementsNotMetByHost {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_not_installed_.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_not_installed_.vib_issue_ }
}
impl VibIssueTrait for VibRequiresHostInMaintenanceMode {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibRequiresHostReboot {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibRequiresManualInstallation {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl VibIssueTrait for VibRequiresManualUninstallation {
fn get_vib_issue(&self) -> &super::structs::VibIssue { &self.vib_issue_ }
fn get_vib_issue_mut(&mut self) -> &mut super::structs::VibIssue { &mut self.vib_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VibIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VibIssue => Some(from.as_any_ref().downcast_ref::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Some(from.as_any_ref().downcast_ref::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Some(from.as_any_ref().downcast_ref::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Some(from.as_any_ref().downcast_ref::<VibRequiresManualUninstallation>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VibIssue => Ok(from.as_any_box().downcast::<VibIssue>()?),
StructType::ImmediateHostRebootRequired => Ok(from.as_any_box().downcast::<ImmediateHostRebootRequired>()?),
StructType::VibCannotPutHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostInMaintenanceMode>()?),
StructType::VibCannotPutHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VibCannotPutHostOutOfMaintenanceMode>()?),
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
StructType::VibRequiresHostInMaintenanceMode => Ok(from.as_any_box().downcast::<VibRequiresHostInMaintenanceMode>()?),
StructType::VibRequiresHostReboot => Ok(from.as_any_box().downcast::<VibRequiresHostReboot>()?),
StructType::VibRequiresManualInstallation => Ok(from.as_any_box().downcast::<VibRequiresManualInstallation>()?),
StructType::VibRequiresManualUninstallation => Ok(from.as_any_box().downcast::<VibRequiresManualUninstallation>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// A VIB module is expected to be installed/removed on a host, but it has not
/// been installed/removed.
///
/// Typically, a more specific issue (a subclass of this
/// issue) indicates the particular reason why the VIB module operation failed.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager
/// attempts the VIB operation again.
/// In case of unreachable host vSphere ESX Agent Manager will remediate the
/// issue automatically when the host becomes reachable.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VibNotInstalledTrait : super::traits::VibIssueTrait {
/// Get a reference to the VibNotInstalled parent struct
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled;
/// Get a mutable reference to the VibNotInstalled parent struct
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled;
}
impl std::ops::Deref for dyn VibNotInstalledTrait {
type Target = super::structs::VibNotInstalled;
fn deref(&self) -> &Self::Target {
self.get_vib_not_installed()
}
}
impl std::ops::DerefMut for dyn VibNotInstalledTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vib_not_installed_mut()
}
}
impl miniserde::Deserialize for Box<dyn VibNotInstalledTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VibNotInstalledTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VibNotInstalledTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VibNotInstalled"),
__out: &mut self.out,
}))
}
}
struct VibNotInstalledTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VibNotInstalledTrait>>,
}
impl miniserde::de::Map for VibNotInstalledTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VibNotInstalledTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VibNotInstalledTrait for VibNotInstalled {
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled { &self }
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled { self }
}
impl VibNotInstalledTrait for CannotAccessAgentVib {
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled { &self.vib_not_installed_ }
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled { &mut self.vib_not_installed_ }
}
impl VibNotInstalledTrait for VibDependenciesNotMetByHost {
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled { &self.vib_not_installed_ }
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled { &mut self.vib_not_installed_ }
}
impl VibNotInstalledTrait for VibInvalidFormat {
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled { &self.vib_not_installed_ }
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled { &mut self.vib_not_installed_ }
}
impl VibNotInstalledTrait for VibRequirementsNotMetByHost {
fn get_vib_not_installed(&self) -> &super::structs::VibNotInstalled { &self.vib_not_installed_ }
fn get_vib_not_installed_mut(&mut self) -> &mut super::structs::VibNotInstalled { &mut self.vib_not_installed_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VibNotInstalledTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VibNotInstalled => Some(from.as_any_ref().downcast_ref::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Some(from.as_any_ref().downcast_ref::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Some(from.as_any_ref().downcast_ref::<VibRequirementsNotMetByHost>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VibNotInstalled => Ok(from.as_any_box().downcast::<VibNotInstalled>()?),
StructType::CannotAccessAgentVib => Ok(from.as_any_box().downcast::<CannotAccessAgentVib>()?),
StructType::VibDependenciesNotMetByHost => Ok(from.as_any_box().downcast::<VibDependenciesNotMetByHost>()?),
StructType::VibInvalidFormat => Ok(from.as_any_box().downcast::<VibInvalidFormat>()?),
StructType::VibRequirementsNotMetByHost => Ok(from.as_any_box().downcast::<VibRequirementsNotMetByHost>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all issues related to the deployed virtual machine for a
/// particular agent.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VmIssueTrait : super::traits::AgentIssueTrait {
/// Get a reference to the VmIssue parent struct
fn get_vm_issue(&self) -> &super::structs::VmIssue;
/// Get a mutable reference to the VmIssue parent struct
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue;
}
impl std::ops::Deref for dyn VmIssueTrait {
type Target = super::structs::VmIssue;
fn deref(&self) -> &Self::Target {
self.get_vm_issue()
}
}
impl std::ops::DerefMut for dyn VmIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmIssue"),
__out: &mut self.out,
}))
}
}
struct VmIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmIssueTrait>>,
}
impl miniserde::de::Map for VmIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmIssueTrait for VmIssue {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { self }
}
impl VmIssueTrait for InvalidConfig {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmCorrupted {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmDeployed {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for HostInMaintenanceMode {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_deployed_.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_deployed_.vm_issue_ }
}
impl VmIssueTrait for HostInStandbyMode {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_deployed_.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_deployed_.vm_issue_ }
}
impl VmIssueTrait for HostPoweredOff {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_deployed_.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_deployed_.vm_issue_ }
}
impl VmIssueTrait for VmHookFailed {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmHookTimedout {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmInaccessible {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmMarkedAsTemplate {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmOrphaned {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmPoweredOff {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for InsufficientIpAddresses {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_powered_off_.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_powered_off_.vm_issue_ }
}
impl VmIssueTrait for MissingAgentIpPool {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_powered_off_.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_powered_off_.vm_issue_ }
}
impl VmIssueTrait for VmPoweredOn {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmProtected {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmSuspended {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmWrongFolder {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl VmIssueTrait for VmWrongResourcePool {
fn get_vm_issue(&self) -> &super::structs::VmIssue { &self.vm_issue_ }
fn get_vm_issue_mut(&mut self) -> &mut super::structs::VmIssue { &mut self.vm_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmIssue => Some(from.as_any_ref().downcast_ref::<VmIssue>()?),
StructType::InvalidConfig => Some(from.as_any_ref().downcast_ref::<InvalidConfig>()?),
StructType::VmCorrupted => Some(from.as_any_ref().downcast_ref::<VmCorrupted>()?),
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
StructType::VmHookFailed => Some(from.as_any_ref().downcast_ref::<VmHookFailed>()?),
StructType::VmHookTimedout => Some(from.as_any_ref().downcast_ref::<VmHookTimedout>()?),
StructType::VmInaccessible => Some(from.as_any_ref().downcast_ref::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Some(from.as_any_ref().downcast_ref::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Some(from.as_any_ref().downcast_ref::<VmOrphaned>()?),
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Some(from.as_any_ref().downcast_ref::<VmPoweredOn>()?),
StructType::VmProtected => Some(from.as_any_ref().downcast_ref::<VmProtected>()?),
StructType::VmSuspended => Some(from.as_any_ref().downcast_ref::<VmSuspended>()?),
StructType::VmWrongFolder => Some(from.as_any_ref().downcast_ref::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Some(from.as_any_ref().downcast_ref::<VmWrongResourcePool>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmIssue => Ok(from.as_any_box().downcast::<VmIssue>()?),
StructType::InvalidConfig => Ok(from.as_any_box().downcast::<InvalidConfig>()?),
StructType::VmCorrupted => Ok(from.as_any_box().downcast::<VmCorrupted>()?),
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
StructType::VmHookFailed => Ok(from.as_any_box().downcast::<VmHookFailed>()?),
StructType::VmHookTimedout => Ok(from.as_any_box().downcast::<VmHookTimedout>()?),
StructType::VmInaccessible => Ok(from.as_any_box().downcast::<VmInaccessible>()?),
StructType::VmMarkedAsTemplate => Ok(from.as_any_box().downcast::<VmMarkedAsTemplate>()?),
StructType::VmOrphaned => Ok(from.as_any_box().downcast::<VmOrphaned>()?),
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
StructType::VmPoweredOn => Ok(from.as_any_box().downcast::<VmPoweredOn>()?),
StructType::VmProtected => Ok(from.as_any_box().downcast::<VmProtected>()?),
StructType::VmSuspended => Ok(from.as_any_box().downcast::<VmSuspended>()?),
StructType::VmWrongFolder => Ok(from.as_any_box().downcast::<VmWrongFolder>()?),
StructType::VmWrongResourcePool => Ok(from.as_any_box().downcast::<VmWrongResourcePool>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An agent virtual machine is expected to be removed from a host, but the agent virtual machine has not
/// been removed.
///
/// Typically, a more specific issue (a subclass of this issue)
/// indicates the particular reason why vSphere ESX Agent Manager was unable to remove the
/// agent virtual machine, such as the host is in maintenance mode, powered off or in standby
/// mode.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VmDeployedTrait : super::traits::VmIssueTrait {
/// Get a reference to the VmDeployed parent struct
fn get_vm_deployed(&self) -> &super::structs::VmDeployed;
/// Get a mutable reference to the VmDeployed parent struct
fn get_vm_deployed_mut(&mut self) -> &mut super::structs::VmDeployed;
}
impl std::ops::Deref for dyn VmDeployedTrait {
type Target = super::structs::VmDeployed;
fn deref(&self) -> &Self::Target {
self.get_vm_deployed()
}
}
impl std::ops::DerefMut for dyn VmDeployedTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_deployed_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmDeployedTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmDeployedTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmDeployedTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmDeployed"),
__out: &mut self.out,
}))
}
}
struct VmDeployedTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmDeployedTrait>>,
}
impl miniserde::de::Map for VmDeployedTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmDeployedTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmDeployedTrait for VmDeployed {
fn get_vm_deployed(&self) -> &super::structs::VmDeployed { &self }
fn get_vm_deployed_mut(&mut self) -> &mut super::structs::VmDeployed { self }
}
impl VmDeployedTrait for HostInMaintenanceMode {
fn get_vm_deployed(&self) -> &super::structs::VmDeployed { &self.vm_deployed_ }
fn get_vm_deployed_mut(&mut self) -> &mut super::structs::VmDeployed { &mut self.vm_deployed_ }
}
impl VmDeployedTrait for HostInStandbyMode {
fn get_vm_deployed(&self) -> &super::structs::VmDeployed { &self.vm_deployed_ }
fn get_vm_deployed_mut(&mut self) -> &mut super::structs::VmDeployed { &mut self.vm_deployed_ }
}
impl VmDeployedTrait for HostPoweredOff {
fn get_vm_deployed(&self) -> &super::structs::VmDeployed { &self.vm_deployed_ }
fn get_vm_deployed_mut(&mut self) -> &mut super::structs::VmDeployed { &mut self.vm_deployed_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmDeployedTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmDeployed => Some(from.as_any_ref().downcast_ref::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Some(from.as_any_ref().downcast_ref::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Some(from.as_any_ref().downcast_ref::<HostPoweredOff>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmDeployed => Ok(from.as_any_box().downcast::<VmDeployed>()?),
StructType::HostInMaintenanceMode => Ok(from.as_any_box().downcast::<HostInMaintenanceMode>()?),
StructType::HostInStandbyMode => Ok(from.as_any_box().downcast::<HostInStandbyMode>()?),
StructType::HostPoweredOff => Ok(from.as_any_box().downcast::<HostPoweredOff>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An agent virtual machine is expected to be powered on, but the agent virtual machine is powered off.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager
/// powers on the agent virtual machine.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VmPoweredOffTrait : super::traits::VmIssueTrait {
/// Get a reference to the VmPoweredOff parent struct
fn get_vm_powered_off(&self) -> &super::structs::VmPoweredOff;
/// Get a mutable reference to the VmPoweredOff parent struct
fn get_vm_powered_off_mut(&mut self) -> &mut super::structs::VmPoweredOff;
}
impl std::ops::Deref for dyn VmPoweredOffTrait {
type Target = super::structs::VmPoweredOff;
fn deref(&self) -> &Self::Target {
self.get_vm_powered_off()
}
}
impl std::ops::DerefMut for dyn VmPoweredOffTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_powered_off_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmPoweredOffTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmPoweredOffTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmPoweredOffTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmPoweredOff"),
__out: &mut self.out,
}))
}
}
struct VmPoweredOffTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmPoweredOffTrait>>,
}
impl miniserde::de::Map for VmPoweredOffTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmPoweredOffTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmPoweredOffTrait for VmPoweredOff {
fn get_vm_powered_off(&self) -> &super::structs::VmPoweredOff { &self }
fn get_vm_powered_off_mut(&mut self) -> &mut super::structs::VmPoweredOff { self }
}
impl VmPoweredOffTrait for InsufficientIpAddresses {
fn get_vm_powered_off(&self) -> &super::structs::VmPoweredOff { &self.vm_powered_off_ }
fn get_vm_powered_off_mut(&mut self) -> &mut super::structs::VmPoweredOff { &mut self.vm_powered_off_ }
}
impl VmPoweredOffTrait for MissingAgentIpPool {
fn get_vm_powered_off(&self) -> &super::structs::VmPoweredOff { &self.vm_powered_off_ }
fn get_vm_powered_off_mut(&mut self) -> &mut super::structs::VmPoweredOff { &mut self.vm_powered_off_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmPoweredOffTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmPoweredOff => Some(from.as_any_ref().downcast_ref::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Some(from.as_any_ref().downcast_ref::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Some(from.as_any_ref().downcast_ref::<MissingAgentIpPool>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmPoweredOff => Ok(from.as_any_box().downcast::<VmPoweredOff>()?),
StructType::InsufficientIpAddresses => Ok(from.as_any_box().downcast::<InsufficientIpAddresses>()?),
StructType::MissingAgentIpPool => Ok(from.as_any_box().downcast::<MissingAgentIpPool>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An agent virtual machine is expected to be deployed on a host, but the agent virtual machine has not
/// been deployed.
///
/// Typically, a more specific issue (a subclass of this issue)
/// indicates the particular reason why vSphere ESX Agent Manager was unable to deploy the
/// agent, such as being unable to access the OVF package for the agent or a missing host
/// configuration. This issue can also happen if the agent virtual machine is explicitly deleted
/// from the host.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager redeploys the agent virtual machine.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait VmNotDeployedTrait : super::traits::AgentIssueTrait {
/// Get a reference to the VmNotDeployed parent struct
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed;
/// Get a mutable reference to the VmNotDeployed parent struct
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed;
}
impl std::ops::Deref for dyn VmNotDeployedTrait {
type Target = super::structs::VmNotDeployed;
fn deref(&self) -> &Self::Target {
self.get_vm_not_deployed()
}
}
impl std::ops::DerefMut for dyn VmNotDeployedTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_not_deployed_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmNotDeployedTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmNotDeployedTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmNotDeployedTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmNotDeployed"),
__out: &mut self.out,
}))
}
}
struct VmNotDeployedTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmNotDeployedTrait>>,
}
impl miniserde::de::Map for VmNotDeployedTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmNotDeployedTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmNotDeployedTrait for VmNotDeployed {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { self }
}
impl VmNotDeployedTrait for CannotAccessAgentOvf {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for IncompatibleHostVersion {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for InsufficientResources {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for InsufficientSpace {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoAgentVmDatastore {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoCustomAgentVmDatastore {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.no_agent_vm_datastore_.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.no_agent_vm_datastore_.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoAgentVmNetwork {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoCustomAgentVmNetwork {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.no_agent_vm_network_.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.no_agent_vm_network_.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoDiscoverableAgentVmDatastore {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for NoDiscoverableAgentVmNetwork {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for OvfInvalidFormat {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl VmNotDeployedTrait for VmRequiresHostOutOfMaintenanceMode {
fn get_vm_not_deployed(&self) -> &super::structs::VmNotDeployed { &self.vm_not_deployed_ }
fn get_vm_not_deployed_mut(&mut self) -> &mut super::structs::VmNotDeployed { &mut self.vm_not_deployed_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmNotDeployedTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmNotDeployed => Some(from.as_any_ref().downcast_ref::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Some(from.as_any_ref().downcast_ref::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Some(from.as_any_ref().downcast_ref::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Some(from.as_any_ref().downcast_ref::<InsufficientResources>()?),
StructType::InsufficientSpace => Some(from.as_any_ref().downcast_ref::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Some(from.as_any_ref().downcast_ref::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Some(from.as_any_ref().downcast_ref::<VmRequiresHostOutOfMaintenanceMode>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmNotDeployed => Ok(from.as_any_box().downcast::<VmNotDeployed>()?),
StructType::CannotAccessAgentOvf => Ok(from.as_any_box().downcast::<CannotAccessAgentOvf>()?),
StructType::IncompatibleHostVersion => Ok(from.as_any_box().downcast::<IncompatibleHostVersion>()?),
StructType::InsufficientResources => Ok(from.as_any_box().downcast::<InsufficientResources>()?),
StructType::InsufficientSpace => Ok(from.as_any_box().downcast::<InsufficientSpace>()?),
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
StructType::NoDiscoverableAgentVmDatastore => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmDatastore>()?),
StructType::NoDiscoverableAgentVmNetwork => Ok(from.as_any_box().downcast::<NoDiscoverableAgentVmNetwork>()?),
StructType::OvfInvalidFormat => Ok(from.as_any_box().downcast::<OvfInvalidFormat>()?),
StructType::VmRequiresHostOutOfMaintenanceMode => Ok(from.as_any_box().downcast::<VmRequiresHostOutOfMaintenanceMode>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An agent virtual machine is expected to be deployed on a host, but the agent cannot be
/// deployed because the agent datastore has not been configured on the host.
///
/// This is a passive remediable issue. The administrator must configure
/// the agent virtual machine datastore on the host.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait NoAgentVmDatastoreTrait : super::traits::VmNotDeployedTrait {
/// Get a reference to the NoAgentVmDatastore parent struct
fn get_no_agent_vm_datastore(&self) -> &super::structs::NoAgentVmDatastore;
/// Get a mutable reference to the NoAgentVmDatastore parent struct
fn get_no_agent_vm_datastore_mut(&mut self) -> &mut super::structs::NoAgentVmDatastore;
}
impl std::ops::Deref for dyn NoAgentVmDatastoreTrait {
type Target = super::structs::NoAgentVmDatastore;
fn deref(&self) -> &Self::Target {
self.get_no_agent_vm_datastore()
}
}
impl std::ops::DerefMut for dyn NoAgentVmDatastoreTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_no_agent_vm_datastore_mut()
}
}
impl miniserde::Deserialize for Box<dyn NoAgentVmDatastoreTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NoAgentVmDatastoreTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NoAgentVmDatastoreTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NoAgentVmDatastore"),
__out: &mut self.out,
}))
}
}
struct NoAgentVmDatastoreTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NoAgentVmDatastoreTrait>>,
}
impl miniserde::de::Map for NoAgentVmDatastoreTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NoAgentVmDatastoreTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NoAgentVmDatastoreTrait for NoAgentVmDatastore {
fn get_no_agent_vm_datastore(&self) -> &super::structs::NoAgentVmDatastore { &self }
fn get_no_agent_vm_datastore_mut(&mut self) -> &mut super::structs::NoAgentVmDatastore { self }
}
impl NoAgentVmDatastoreTrait for NoCustomAgentVmDatastore {
fn get_no_agent_vm_datastore(&self) -> &super::structs::NoAgentVmDatastore { &self.no_agent_vm_datastore_ }
fn get_no_agent_vm_datastore_mut(&mut self) -> &mut super::structs::NoAgentVmDatastore { &mut self.no_agent_vm_datastore_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NoAgentVmDatastoreTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NoAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmDatastore>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NoAgentVmDatastore => Ok(from.as_any_box().downcast::<NoAgentVmDatastore>()?),
StructType::NoCustomAgentVmDatastore => Ok(from.as_any_box().downcast::<NoCustomAgentVmDatastore>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An agent virtual machine is expected to be deployed on a host, but the agent cannot be
/// deployed because the agent network has not been configured on the host.
///
/// This is a passive remediable issue. The administrator must configure
/// the agent virtual machine network on the host.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait NoAgentVmNetworkTrait : super::traits::VmNotDeployedTrait {
/// Get a reference to the NoAgentVmNetwork parent struct
fn get_no_agent_vm_network(&self) -> &super::structs::NoAgentVmNetwork;
/// Get a mutable reference to the NoAgentVmNetwork parent struct
fn get_no_agent_vm_network_mut(&mut self) -> &mut super::structs::NoAgentVmNetwork;
}
impl std::ops::Deref for dyn NoAgentVmNetworkTrait {
type Target = super::structs::NoAgentVmNetwork;
fn deref(&self) -> &Self::Target {
self.get_no_agent_vm_network()
}
}
impl std::ops::DerefMut for dyn NoAgentVmNetworkTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_no_agent_vm_network_mut()
}
}
impl miniserde::Deserialize for Box<dyn NoAgentVmNetworkTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NoAgentVmNetworkTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NoAgentVmNetworkTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NoAgentVmNetwork"),
__out: &mut self.out,
}))
}
}
struct NoAgentVmNetworkTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NoAgentVmNetworkTrait>>,
}
impl miniserde::de::Map for NoAgentVmNetworkTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NoAgentVmNetworkTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NoAgentVmNetworkTrait for NoAgentVmNetwork {
fn get_no_agent_vm_network(&self) -> &super::structs::NoAgentVmNetwork { &self }
fn get_no_agent_vm_network_mut(&mut self) -> &mut super::structs::NoAgentVmNetwork { self }
}
impl NoAgentVmNetworkTrait for NoCustomAgentVmNetwork {
fn get_no_agent_vm_network(&self) -> &super::structs::NoAgentVmNetwork { &self.no_agent_vm_network_ }
fn get_no_agent_vm_network_mut(&mut self) -> &mut super::structs::NoAgentVmNetwork { &mut self.no_agent_vm_network_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NoAgentVmNetworkTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NoAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Some(from.as_any_ref().downcast_ref::<NoCustomAgentVmNetwork>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NoAgentVmNetwork => Ok(from.as_any_box().downcast::<NoAgentVmNetwork>()?),
StructType::NoCustomAgentVmNetwork => Ok(from.as_any_box().downcast::<NoCustomAgentVmNetwork>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// Base class for all issues which occurred during EAM communication with
/// Personality Manager.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait PersonalityAgentPmIssueTrait : super::traits::AgentIssueTrait {
/// Get a reference to the PersonalityAgentPmIssue parent struct
fn get_personality_agent_pm_issue(&self) -> &super::structs::PersonalityAgentPmIssue;
/// Get a mutable reference to the PersonalityAgentPmIssue parent struct
fn get_personality_agent_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgentPmIssue;
}
impl std::ops::Deref for dyn PersonalityAgentPmIssueTrait {
type Target = super::structs::PersonalityAgentPmIssue;
fn deref(&self) -> &Self::Target {
self.get_personality_agent_pm_issue()
}
}
impl std::ops::DerefMut for dyn PersonalityAgentPmIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_personality_agent_pm_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn PersonalityAgentPmIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PersonalityAgentPmIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PersonalityAgentPmIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PersonalityAgentPmIssue"),
__out: &mut self.out,
}))
}
}
struct PersonalityAgentPmIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PersonalityAgentPmIssueTrait>>,
}
impl miniserde::de::Map for PersonalityAgentPmIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PersonalityAgentPmIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PersonalityAgentPmIssueTrait for PersonalityAgentPmIssue {
fn get_personality_agent_pm_issue(&self) -> &super::structs::PersonalityAgentPmIssue { &self }
fn get_personality_agent_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgentPmIssue { self }
}
impl PersonalityAgentPmIssueTrait for PersonalityAgentAwaitingPmRemediation {
fn get_personality_agent_pm_issue(&self) -> &super::structs::PersonalityAgentPmIssue { &self.personality_agent_pm_issue_ }
fn get_personality_agent_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgentPmIssue { &mut self.personality_agent_pm_issue_ }
}
impl PersonalityAgentPmIssueTrait for PersonalityAgentBlockedByAgencyOperation {
fn get_personality_agent_pm_issue(&self) -> &super::structs::PersonalityAgentPmIssue { &self.personality_agent_pm_issue_ }
fn get_personality_agent_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgentPmIssue { &mut self.personality_agent_pm_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PersonalityAgentPmIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgentPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Some(from.as_any_ref().downcast_ref::<PersonalityAgentBlockedByAgencyOperation>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgentPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgentPmIssue>()?),
StructType::PersonalityAgentAwaitingPmRemediation => Ok(from.as_any_box().downcast::<PersonalityAgentAwaitingPmRemediation>()?),
StructType::PersonalityAgentBlockedByAgencyOperation => Ok(from.as_any_box().downcast::<PersonalityAgentBlockedByAgencyOperation>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all cluster bound agents.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait ClusterAgentAgentIssueTrait : super::traits::AgencyIssueTrait {
/// Get a reference to the ClusterAgentAgentIssue parent struct
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue;
/// Get a mutable reference to the ClusterAgentAgentIssue parent struct
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue;
}
impl std::ops::Deref for dyn ClusterAgentAgentIssueTrait {
type Target = super::structs::ClusterAgentAgentIssue;
fn deref(&self) -> &Self::Target {
self.get_cluster_agent_agent_issue()
}
}
impl std::ops::DerefMut for dyn ClusterAgentAgentIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_agent_agent_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterAgentAgentIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterAgentAgentIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterAgentAgentIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterAgentAgentIssue"),
__out: &mut self.out,
}))
}
}
struct ClusterAgentAgentIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterAgentAgentIssueTrait>>,
}
impl miniserde::de::Map for ClusterAgentAgentIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterAgentAgentIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterAgentAgentIssueTrait for ClusterAgentAgentIssue {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { self }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentOvfInvalidProperty {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentTransitionFailed {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmIssue {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentHostInMaintenanceMode {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentHostInPartialMaintenanceMode {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentInvalidConfig {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmHookFailed {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmHookTimedout {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmInaccessible {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmNotRemoved {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmPoweredOff {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentInsufficientClusterResources {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmPoweredOn {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmProtected {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmSuspended {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_issue_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentVmNotDeployed {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentCertificateNotTrusted {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentInsufficientClusterSpace {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentMissingClusterVmDatastore {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
}
impl ClusterAgentAgentIssueTrait for ClusterAgentMissingClusterVmNetwork {
fn get_cluster_agent_agent_issue(&self) -> &super::structs::ClusterAgentAgentIssue { &self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
fn get_cluster_agent_agent_issue_mut(&mut self) -> &mut super::structs::ClusterAgentAgentIssue { &mut self.cluster_agent_vm_not_deployed_.cluster_agent_agent_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterAgentAgentIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentAgentIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Some(from.as_any_ref().downcast_ref::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Some(from.as_any_ref().downcast_ref::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmNetwork>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentAgentIssue => Ok(from.as_any_box().downcast::<ClusterAgentAgentIssue>()?),
StructType::ClusterAgentOvfInvalidProperty => Ok(from.as_any_box().downcast::<ClusterAgentOvfInvalidProperty>()?),
StructType::ClusterAgentTransitionFailed => Ok(from.as_any_box().downcast::<ClusterAgentTransitionFailed>()?),
StructType::ClusterAgentVmIssue => Ok(from.as_any_box().downcast::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Ok(from.as_any_box().downcast::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Ok(from.as_any_box().downcast::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Ok(from.as_any_box().downcast::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Ok(from.as_any_box().downcast::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Ok(from.as_any_box().downcast::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Ok(from.as_any_box().downcast::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Ok(from.as_any_box().downcast::<ClusterAgentVmSuspended>()?),
StructType::ClusterAgentVmNotDeployed => Ok(from.as_any_box().downcast::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Ok(from.as_any_box().downcast::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmNetwork>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all cluster bound Virtual Machines.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait ClusterAgentVmIssueTrait : super::traits::ClusterAgentAgentIssueTrait {
/// Get a reference to the ClusterAgentVmIssue parent struct
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue;
/// Get a mutable reference to the ClusterAgentVmIssue parent struct
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue;
}
impl std::ops::Deref for dyn ClusterAgentVmIssueTrait {
type Target = super::structs::ClusterAgentVmIssue;
fn deref(&self) -> &Self::Target {
self.get_cluster_agent_vm_issue()
}
}
impl std::ops::DerefMut for dyn ClusterAgentVmIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_agent_vm_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterAgentVmIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterAgentVmIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterAgentVmIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterAgentVmIssue"),
__out: &mut self.out,
}))
}
}
struct ClusterAgentVmIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterAgentVmIssueTrait>>,
}
impl miniserde::de::Map for ClusterAgentVmIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterAgentVmIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmIssue {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { self }
}
impl ClusterAgentVmIssueTrait for ClusterAgentHostInMaintenanceMode {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentHostInPartialMaintenanceMode {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentInvalidConfig {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmHookFailed {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmHookTimedout {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmInaccessible {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmNotRemoved {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmPoweredOff {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentInsufficientClusterResources {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_powered_off_.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmPoweredOn {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmProtected {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl ClusterAgentVmIssueTrait for ClusterAgentVmSuspended {
fn get_cluster_agent_vm_issue(&self) -> &super::structs::ClusterAgentVmIssue { &self.cluster_agent_vm_issue_ }
fn get_cluster_agent_vm_issue_mut(&mut self) -> &mut super::structs::ClusterAgentVmIssue { &mut self.cluster_agent_vm_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterAgentVmIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmIssue => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Some(from.as_any_ref().downcast_ref::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Some(from.as_any_ref().downcast_ref::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmSuspended>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmIssue => Ok(from.as_any_box().downcast::<ClusterAgentVmIssue>()?),
StructType::ClusterAgentHostInMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInMaintenanceMode>()?),
StructType::ClusterAgentHostInPartialMaintenanceMode => Ok(from.as_any_box().downcast::<ClusterAgentHostInPartialMaintenanceMode>()?),
StructType::ClusterAgentInvalidConfig => Ok(from.as_any_box().downcast::<ClusterAgentInvalidConfig>()?),
StructType::ClusterAgentVmHookFailed => Ok(from.as_any_box().downcast::<ClusterAgentVmHookFailed>()?),
StructType::ClusterAgentVmHookTimedout => Ok(from.as_any_box().downcast::<ClusterAgentVmHookTimedout>()?),
StructType::ClusterAgentVmInaccessible => Ok(from.as_any_box().downcast::<ClusterAgentVmInaccessible>()?),
StructType::ClusterAgentVmNotRemoved => Ok(from.as_any_box().downcast::<ClusterAgentVmNotRemoved>()?),
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
StructType::ClusterAgentVmPoweredOn => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOn>()?),
StructType::ClusterAgentVmProtected => Ok(from.as_any_box().downcast::<ClusterAgentVmProtected>()?),
StructType::ClusterAgentVmSuspended => Ok(from.as_any_box().downcast::<ClusterAgentVmSuspended>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A cluster agent Virtual Machine is expected to be powered on, but the agent
/// Virtual Machine is powered off.
///
/// Typically more specific issue (a subclass of
/// this issue) indicates the particular reason why vSphere ESX Agent Manager was
/// unable to power on the cluster agent Virtual Machine.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager
/// powers on the cluster agent Virtual Machine.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait ClusterAgentVmPoweredOffTrait : super::traits::ClusterAgentVmIssueTrait {
/// Get a reference to the ClusterAgentVmPoweredOff parent struct
fn get_cluster_agent_vm_powered_off(&self) -> &super::structs::ClusterAgentVmPoweredOff;
/// Get a mutable reference to the ClusterAgentVmPoweredOff parent struct
fn get_cluster_agent_vm_powered_off_mut(&mut self) -> &mut super::structs::ClusterAgentVmPoweredOff;
}
impl std::ops::Deref for dyn ClusterAgentVmPoweredOffTrait {
type Target = super::structs::ClusterAgentVmPoweredOff;
fn deref(&self) -> &Self::Target {
self.get_cluster_agent_vm_powered_off()
}
}
impl std::ops::DerefMut for dyn ClusterAgentVmPoweredOffTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_agent_vm_powered_off_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterAgentVmPoweredOffTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterAgentVmPoweredOffTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterAgentVmPoweredOffTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterAgentVmPoweredOff"),
__out: &mut self.out,
}))
}
}
struct ClusterAgentVmPoweredOffTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterAgentVmPoweredOffTrait>>,
}
impl miniserde::de::Map for ClusterAgentVmPoweredOffTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterAgentVmPoweredOffTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterAgentVmPoweredOffTrait for ClusterAgentVmPoweredOff {
fn get_cluster_agent_vm_powered_off(&self) -> &super::structs::ClusterAgentVmPoweredOff { &self }
fn get_cluster_agent_vm_powered_off_mut(&mut self) -> &mut super::structs::ClusterAgentVmPoweredOff { self }
}
impl ClusterAgentVmPoweredOffTrait for ClusterAgentInsufficientClusterResources {
fn get_cluster_agent_vm_powered_off(&self) -> &super::structs::ClusterAgentVmPoweredOff { &self.cluster_agent_vm_powered_off_ }
fn get_cluster_agent_vm_powered_off_mut(&mut self) -> &mut super::structs::ClusterAgentVmPoweredOff { &mut self.cluster_agent_vm_powered_off_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterAgentVmPoweredOffTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmPoweredOff => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterResources>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmPoweredOff => Ok(from.as_any_box().downcast::<ClusterAgentVmPoweredOff>()?),
StructType::ClusterAgentInsufficientClusterResources => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterResources>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A cluster agent Virtual Machine is expected to be deployed on a cluster, but
/// the cluster agent Virtual Machine has not been deployed or has been exlicitly
/// deleted from the cluster.
///
/// Typically more specific issue (a subclass of this
/// issue) indicates the particular reason why vSphere ESX Agent Manager was
/// unable to deploy the cluster agent Virtual Machine.
///
/// This is an active remediable issue. To remediate, vSphere ESX Agent Manager
/// redeploys the cluster agent Virtual Machine.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait ClusterAgentVmNotDeployedTrait : super::traits::ClusterAgentAgentIssueTrait {
/// Get a reference to the ClusterAgentVmNotDeployed parent struct
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed;
/// Get a mutable reference to the ClusterAgentVmNotDeployed parent struct
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed;
}
impl std::ops::Deref for dyn ClusterAgentVmNotDeployedTrait {
type Target = super::structs::ClusterAgentVmNotDeployed;
fn deref(&self) -> &Self::Target {
self.get_cluster_agent_vm_not_deployed()
}
}
impl std::ops::DerefMut for dyn ClusterAgentVmNotDeployedTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_agent_vm_not_deployed_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterAgentVmNotDeployedTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterAgentVmNotDeployedTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterAgentVmNotDeployedTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterAgentVmNotDeployed"),
__out: &mut self.out,
}))
}
}
struct ClusterAgentVmNotDeployedTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterAgentVmNotDeployedTrait>>,
}
impl miniserde::de::Map for ClusterAgentVmNotDeployedTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterAgentVmNotDeployedTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterAgentVmNotDeployedTrait for ClusterAgentVmNotDeployed {
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed { &self }
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed { self }
}
impl ClusterAgentVmNotDeployedTrait for ClusterAgentCertificateNotTrusted {
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed { &self.cluster_agent_vm_not_deployed_ }
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed { &mut self.cluster_agent_vm_not_deployed_ }
}
impl ClusterAgentVmNotDeployedTrait for ClusterAgentInsufficientClusterSpace {
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed { &self.cluster_agent_vm_not_deployed_ }
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed { &mut self.cluster_agent_vm_not_deployed_ }
}
impl ClusterAgentVmNotDeployedTrait for ClusterAgentMissingClusterVmDatastore {
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed { &self.cluster_agent_vm_not_deployed_ }
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed { &mut self.cluster_agent_vm_not_deployed_ }
}
impl ClusterAgentVmNotDeployedTrait for ClusterAgentMissingClusterVmNetwork {
fn get_cluster_agent_vm_not_deployed(&self) -> &super::structs::ClusterAgentVmNotDeployed { &self.cluster_agent_vm_not_deployed_ }
fn get_cluster_agent_vm_not_deployed_mut(&mut self) -> &mut super::structs::ClusterAgentVmNotDeployed { &mut self.cluster_agent_vm_not_deployed_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterAgentVmNotDeployedTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmNotDeployed => Some(from.as_any_ref().downcast_ref::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Some(from.as_any_ref().downcast_ref::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Some(from.as_any_ref().downcast_ref::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Some(from.as_any_ref().downcast_ref::<ClusterAgentMissingClusterVmNetwork>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAgentVmNotDeployed => Ok(from.as_any_box().downcast::<ClusterAgentVmNotDeployed>()?),
StructType::ClusterAgentCertificateNotTrusted => Ok(from.as_any_box().downcast::<ClusterAgentCertificateNotTrusted>()?),
StructType::ClusterAgentInsufficientClusterSpace => Ok(from.as_any_box().downcast::<ClusterAgentInsufficientClusterSpace>()?),
StructType::ClusterAgentMissingClusterVmDatastore => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmDatastore>()?),
StructType::ClusterAgentMissingClusterVmNetwork => Ok(from.as_any_box().downcast::<ClusterAgentMissingClusterVmNetwork>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// Base class for all issues which occurred during EAM communication with
/// vSphere Update Manager (VUM).
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait IntegrityAgencyVumIssueTrait : super::traits::AgencyIssueTrait {
/// Get a reference to the IntegrityAgencyVumIssue parent struct
fn get_integrity_agency_vum_issue(&self) -> &super::structs::IntegrityAgencyVumIssue;
/// Get a mutable reference to the IntegrityAgencyVumIssue parent struct
fn get_integrity_agency_vum_issue_mut(&mut self) -> &mut super::structs::IntegrityAgencyVumIssue;
}
impl std::ops::Deref for dyn IntegrityAgencyVumIssueTrait {
type Target = super::structs::IntegrityAgencyVumIssue;
fn deref(&self) -> &Self::Target {
self.get_integrity_agency_vum_issue()
}
}
impl std::ops::DerefMut for dyn IntegrityAgencyVumIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_integrity_agency_vum_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn IntegrityAgencyVumIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn IntegrityAgencyVumIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(IntegrityAgencyVumIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("IntegrityAgencyVumIssue"),
__out: &mut self.out,
}))
}
}
struct IntegrityAgencyVumIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn IntegrityAgencyVumIssueTrait>>,
}
impl miniserde::de::Map for IntegrityAgencyVumIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn IntegrityAgencyVumIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl IntegrityAgencyVumIssueTrait for IntegrityAgencyVumIssue {
fn get_integrity_agency_vum_issue(&self) -> &super::structs::IntegrityAgencyVumIssue { &self }
fn get_integrity_agency_vum_issue_mut(&mut self) -> &mut super::structs::IntegrityAgencyVumIssue { self }
}
impl IntegrityAgencyVumIssueTrait for IntegrityAgencyCannotDeleteSoftware {
fn get_integrity_agency_vum_issue(&self) -> &super::structs::IntegrityAgencyVumIssue { &self.integrity_agency_vum_issue_ }
fn get_integrity_agency_vum_issue_mut(&mut self) -> &mut super::structs::IntegrityAgencyVumIssue { &mut self.integrity_agency_vum_issue_ }
}
impl IntegrityAgencyVumIssueTrait for IntegrityAgencyCannotStageSoftware {
fn get_integrity_agency_vum_issue(&self) -> &super::structs::IntegrityAgencyVumIssue { &self.integrity_agency_vum_issue_ }
fn get_integrity_agency_vum_issue_mut(&mut self) -> &mut super::structs::IntegrityAgencyVumIssue { &mut self.integrity_agency_vum_issue_ }
}
impl IntegrityAgencyVumIssueTrait for IntegrityAgencyVumUnavailable {
fn get_integrity_agency_vum_issue(&self) -> &super::structs::IntegrityAgencyVumIssue { &self.integrity_agency_vum_issue_ }
fn get_integrity_agency_vum_issue_mut(&mut self) -> &mut super::structs::IntegrityAgencyVumIssue { &mut self.integrity_agency_vum_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn IntegrityAgencyVumIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::IntegrityAgencyVumIssue => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Some(from.as_any_ref().downcast_ref::<IntegrityAgencyVumUnavailable>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::IntegrityAgencyVumIssue => Ok(from.as_any_box().downcast::<IntegrityAgencyVumIssue>()?),
StructType::IntegrityAgencyCannotDeleteSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotDeleteSoftware>()?),
StructType::IntegrityAgencyCannotStageSoftware => Ok(from.as_any_box().downcast::<IntegrityAgencyCannotStageSoftware>()?),
StructType::IntegrityAgencyVumUnavailable => Ok(from.as_any_box().downcast::<IntegrityAgencyVumUnavailable>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// Base class for all issues which occurred during EAM communication with
/// Personality Manager.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait PersonalityAgencyPmIssueTrait : super::traits::AgencyIssueTrait {
/// Get a reference to the PersonalityAgencyPmIssue parent struct
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue;
/// Get a mutable reference to the PersonalityAgencyPmIssue parent struct
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue;
}
impl std::ops::Deref for dyn PersonalityAgencyPmIssueTrait {
type Target = super::structs::PersonalityAgencyPmIssue;
fn deref(&self) -> &Self::Target {
self.get_personality_agency_pm_issue()
}
}
impl std::ops::DerefMut for dyn PersonalityAgencyPmIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_personality_agency_pm_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn PersonalityAgencyPmIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PersonalityAgencyPmIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PersonalityAgencyPmIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PersonalityAgencyPmIssue"),
__out: &mut self.out,
}))
}
}
struct PersonalityAgencyPmIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PersonalityAgencyPmIssueTrait>>,
}
impl miniserde::de::Map for PersonalityAgencyPmIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PersonalityAgencyPmIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyPmIssue {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { self }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyCannotConfigureSolutions {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_pm_issue_ }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyDepotIssue {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_pm_issue_ }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyCannotUploadDepot {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyInaccessibleDepot {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyInvalidDepot {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_depot_issue_.personality_agency_pm_issue_ }
}
impl PersonalityAgencyPmIssueTrait for PersonalityAgencyPmUnavailable {
fn get_personality_agency_pm_issue(&self) -> &super::structs::PersonalityAgencyPmIssue { &self.personality_agency_pm_issue_ }
fn get_personality_agency_pm_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyPmIssue { &mut self.personality_agency_pm_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PersonalityAgencyPmIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgencyPmIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyPmUnavailable>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgencyPmIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyPmIssue>()?),
StructType::PersonalityAgencyCannotConfigureSolutions => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotConfigureSolutions>()?),
StructType::PersonalityAgencyDepotIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInvalidDepot>()?),
StructType::PersonalityAgencyPmUnavailable => Ok(from.as_any_box().downcast::<PersonalityAgencyPmUnavailable>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere 9.0. Please refer to vLCM Image APIs.
///
/// Base class for all offline depot (VIB) issues while communicating with
/// Personality Manager.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait PersonalityAgencyDepotIssueTrait : super::traits::PersonalityAgencyPmIssueTrait {
/// Get a reference to the PersonalityAgencyDepotIssue parent struct
fn get_personality_agency_depot_issue(&self) -> &super::structs::PersonalityAgencyDepotIssue;
/// Get a mutable reference to the PersonalityAgencyDepotIssue parent struct
fn get_personality_agency_depot_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyDepotIssue;
}
impl std::ops::Deref for dyn PersonalityAgencyDepotIssueTrait {
type Target = super::structs::PersonalityAgencyDepotIssue;
fn deref(&self) -> &Self::Target {
self.get_personality_agency_depot_issue()
}
}
impl std::ops::DerefMut for dyn PersonalityAgencyDepotIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_personality_agency_depot_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn PersonalityAgencyDepotIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PersonalityAgencyDepotIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PersonalityAgencyDepotIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PersonalityAgencyDepotIssue"),
__out: &mut self.out,
}))
}
}
struct PersonalityAgencyDepotIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PersonalityAgencyDepotIssueTrait>>,
}
impl miniserde::de::Map for PersonalityAgencyDepotIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PersonalityAgencyDepotIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PersonalityAgencyDepotIssueTrait for PersonalityAgencyDepotIssue {
fn get_personality_agency_depot_issue(&self) -> &super::structs::PersonalityAgencyDepotIssue { &self }
fn get_personality_agency_depot_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyDepotIssue { self }
}
impl PersonalityAgencyDepotIssueTrait for PersonalityAgencyCannotUploadDepot {
fn get_personality_agency_depot_issue(&self) -> &super::structs::PersonalityAgencyDepotIssue { &self.personality_agency_depot_issue_ }
fn get_personality_agency_depot_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyDepotIssue { &mut self.personality_agency_depot_issue_ }
}
impl PersonalityAgencyDepotIssueTrait for PersonalityAgencyInaccessibleDepot {
fn get_personality_agency_depot_issue(&self) -> &super::structs::PersonalityAgencyDepotIssue { &self.personality_agency_depot_issue_ }
fn get_personality_agency_depot_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyDepotIssue { &mut self.personality_agency_depot_issue_ }
}
impl PersonalityAgencyDepotIssueTrait for PersonalityAgencyInvalidDepot {
fn get_personality_agency_depot_issue(&self) -> &super::structs::PersonalityAgencyDepotIssue { &self.personality_agency_depot_issue_ }
fn get_personality_agency_depot_issue_mut(&mut self) -> &mut super::structs::PersonalityAgencyDepotIssue { &mut self.personality_agency_depot_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PersonalityAgencyDepotIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgencyDepotIssue => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Some(from.as_any_ref().downcast_ref::<PersonalityAgencyInvalidDepot>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PersonalityAgencyDepotIssue => Ok(from.as_any_box().downcast::<PersonalityAgencyDepotIssue>()?),
StructType::PersonalityAgencyCannotUploadDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyCannotUploadDepot>()?),
StructType::PersonalityAgencyInaccessibleDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInaccessibleDepot>()?),
StructType::PersonalityAgencyInvalidDepot => Ok(from.as_any_box().downcast::<PersonalityAgencyInvalidDepot>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated all host issues were removed.
///
/// Base class for all host issues.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait HostIssueTrait : super::traits::IssueTrait {
/// Get a reference to the HostIssue parent struct
fn get_host_issue(&self) -> &super::structs::HostIssue;
/// Get a mutable reference to the HostIssue parent struct
fn get_host_issue_mut(&mut self) -> &mut super::structs::HostIssue;
}
impl std::ops::Deref for dyn HostIssueTrait {
type Target = super::structs::HostIssue;
fn deref(&self) -> &Self::Target {
self.get_host_issue()
}
}
impl std::ops::DerefMut for dyn HostIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostIssue"),
__out: &mut self.out,
}))
}
}
struct HostIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostIssueTrait>>,
}
impl miniserde::de::Map for HostIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostIssueTrait for HostIssue {
fn get_host_issue(&self) -> &super::structs::HostIssue { &self }
fn get_host_issue_mut(&mut self) -> &mut super::structs::HostIssue { self }
}
impl HostIssueTrait for OrphanedDvFilterSwitch {
fn get_host_issue(&self) -> &super::structs::HostIssue { &self.host_issue_ }
fn get_host_issue_mut(&mut self) -> &mut super::structs::HostIssue { &mut self.host_issue_ }
}
impl HostIssueTrait for UnknownAgentVm {
fn get_host_issue(&self) -> &super::structs::HostIssue { &self.host_issue_ }
fn get_host_issue_mut(&mut self) -> &mut super::structs::HostIssue { &mut self.host_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostIssue => Some(from.as_any_ref().downcast_ref::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Some(from.as_any_ref().downcast_ref::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Some(from.as_any_ref().downcast_ref::<UnknownAgentVm>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostIssue => Ok(from.as_any_box().downcast::<HostIssue>()?),
StructType::OrphanedDvFilterSwitch => Ok(from.as_any_box().downcast::<OrphanedDvFilterSwitch>()?),
StructType::UnknownAgentVm => Ok(from.as_any_box().downcast::<UnknownAgentVm>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies the acknowledgement type of a configured System Virtual
/// Machine's lifecycle hook.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait SolutionsHookAcknowledgeConfigTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SolutionsHookAcknowledgeConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SolutionsHookAcknowledgeConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SolutionsHookAcknowledgeConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SolutionsHookAcknowledgeConfig"),
__out: &mut self.out,
}))
}
}
struct SolutionsHookAcknowledgeConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SolutionsHookAcknowledgeConfigTrait>>,
}
impl miniserde::de::Map for SolutionsHookAcknowledgeConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SolutionsHookAcknowledgeConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SolutionsHookAcknowledgeConfigTrait for SolutionsHookAcknowledgeConfig {
}
impl SolutionsHookAcknowledgeConfigTrait for SolutionsInteractiveHookAcknowledgeConfig {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SolutionsHookAcknowledgeConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsHookAcknowledgeConfig => Some(from.as_any_ref().downcast_ref::<SolutionsHookAcknowledgeConfig>()?),
StructType::SolutionsInteractiveHookAcknowledgeConfig => Some(from.as_any_ref().downcast_ref::<SolutionsInteractiveHookAcknowledgeConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsHookAcknowledgeConfig => Ok(from.as_any_box().downcast::<SolutionsHookAcknowledgeConfig>()?),
StructType::SolutionsInteractiveHookAcknowledgeConfig => Ok(from.as_any_box().downcast::<SolutionsInteractiveHookAcknowledgeConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Storage policy to be applied during system Virtual Machine creation.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait SolutionsStoragePolicyTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SolutionsStoragePolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SolutionsStoragePolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SolutionsStoragePolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SolutionsStoragePolicy"),
__out: &mut self.out,
}))
}
}
struct SolutionsStoragePolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SolutionsStoragePolicyTrait>>,
}
impl miniserde::de::Map for SolutionsStoragePolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SolutionsStoragePolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SolutionsStoragePolicyTrait for SolutionsStoragePolicy {
}
impl SolutionsStoragePolicyTrait for SolutionsProfileIdStoragePolicy {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SolutionsStoragePolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsStoragePolicy => Some(from.as_any_ref().downcast_ref::<SolutionsStoragePolicy>()?),
StructType::SolutionsProfileIdStoragePolicy => Some(from.as_any_ref().downcast_ref::<SolutionsProfileIdStoragePolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsStoragePolicy => Ok(from.as_any_box().downcast::<SolutionsStoragePolicy>()?),
StructType::SolutionsProfileIdStoragePolicy => Ok(from.as_any_box().downcast::<SolutionsProfileIdStoragePolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies the specific solution configuration based on its type.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait SolutionsTypeSpecificSolutionConfigTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SolutionsTypeSpecificSolutionConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SolutionsTypeSpecificSolutionConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SolutionsTypeSpecificSolutionConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SolutionsTypeSpecificSolutionConfig"),
__out: &mut self.out,
}))
}
}
struct SolutionsTypeSpecificSolutionConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SolutionsTypeSpecificSolutionConfigTrait>>,
}
impl miniserde::de::Map for SolutionsTypeSpecificSolutionConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SolutionsTypeSpecificSolutionConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SolutionsTypeSpecificSolutionConfigTrait for SolutionsTypeSpecificSolutionConfig {
}
impl SolutionsTypeSpecificSolutionConfigTrait for SolutionsClusterBoundSolutionConfig {
}
impl SolutionsTypeSpecificSolutionConfigTrait for SolutionsHostBoundSolutionConfig {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SolutionsTypeSpecificSolutionConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsTypeSpecificSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsTypeSpecificSolutionConfig>()?),
StructType::SolutionsClusterBoundSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsClusterBoundSolutionConfig>()?),
StructType::SolutionsHostBoundSolutionConfig => Some(from.as_any_ref().downcast_ref::<SolutionsHostBoundSolutionConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsTypeSpecificSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsTypeSpecificSolutionConfig>()?),
StructType::SolutionsClusterBoundSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsClusterBoundSolutionConfig>()?),
StructType::SolutionsHostBoundSolutionConfig => Ok(from.as_any_box().downcast::<SolutionsHostBoundSolutionConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies how to find the files of the system Virtual Machine to be
/// created.
///
/// This structure may be used only with operations rendered under `/eam`.
pub trait SolutionsVmSourceTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SolutionsVmSourceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SolutionsVmSourceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SolutionsVmSourceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SolutionsVmSource"),
__out: &mut self.out,
}))
}
}
struct SolutionsVmSourceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SolutionsVmSourceTrait>>,
}
impl miniserde::de::Map for SolutionsVmSourceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SolutionsVmSourceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SolutionsVmSourceTrait for SolutionsVmSource {
}
impl SolutionsVmSourceTrait for SolutionsUrlVmSource {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SolutionsVmSourceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsVmSource => Some(from.as_any_ref().downcast_ref::<SolutionsVmSource>()?),
StructType::SolutionsUrlVmSource => Some(from.as_any_ref().downcast_ref::<SolutionsUrlVmSource>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SolutionsVmSource => Ok(from.as_any_box().downcast::<SolutionsVmSource>()?),
StructType::SolutionsUrlVmSource => Ok(from.as_any_box().downcast::<SolutionsUrlVmSource>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This structure may be used only with operations rendered under `/eam`.
///
/// ***Since:*** vEAM API 8.2
pub trait VibVibServicesSslTrustTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VibVibServicesSslTrustTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VibVibServicesSslTrustTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VibVibServicesSslTrustTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VibVibServicesSslTrust"),
__out: &mut self.out,
}))
}
}
struct VibVibServicesSslTrustTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VibVibServicesSslTrustTrait>>,
}
impl miniserde::de::Map for VibVibServicesSslTrustTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VibVibServicesSslTrustTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VibVibServicesSslTrustTrait for VibVibServicesSslTrust {
}
impl VibVibServicesSslTrustTrait for VibVibServicesAnyCertificate {
}
impl VibVibServicesSslTrustTrait for VibVibServicesPinnedPemCertificate {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VibVibServicesSslTrustTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VibVibServicesSslTrust => Some(from.as_any_ref().downcast_ref::<VibVibServicesSslTrust>()?),
StructType::VibVibServicesAnyCertificate => Some(from.as_any_ref().downcast_ref::<VibVibServicesAnyCertificate>()?),
StructType::VibVibServicesPinnedPemCertificate => Some(from.as_any_ref().downcast_ref::<VibVibServicesPinnedPemCertificate>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VibVibServicesSslTrust => Ok(from.as_any_box().downcast::<VibVibServicesSslTrust>()?),
StructType::VibVibServicesAnyCertificate => Ok(from.as_any_box().downcast::<VibVibServicesAnyCertificate>()?),
StructType::VibVibServicesPinnedPemCertificate => Ok(from.as_any_box().downcast::<VibVibServicesPinnedPemCertificate>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *PbmCapabilityTypeInfo* data object defines the datatype for a requirement
/// or capability property.
///
/// See *PbmCapabilityPropertyMetadata*.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmProfileProfileManager::pbm_fetch_capability_metadata().capability_metadata[*].property_metadata[*].r#type?`
/// - `PbmProfileProfileManager::pbm_fetch_capability_schema().capability_metadata_per_category[*].capability_metadata[*].property_metadata[*].r#type?`
pub trait PbmCapabilityTypeInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the PbmCapabilityTypeInfo parent struct
fn get_pbm_capability_type_info(&self) -> &super::structs::PbmCapabilityTypeInfo;
/// Get a mutable reference to the PbmCapabilityTypeInfo parent struct
fn get_pbm_capability_type_info_mut(&mut self) -> &mut super::structs::PbmCapabilityTypeInfo;
}
impl std::ops::Deref for dyn PbmCapabilityTypeInfoTrait {
type Target = super::structs::PbmCapabilityTypeInfo;
fn deref(&self) -> &Self::Target {
self.get_pbm_capability_type_info()
}
}
impl std::ops::DerefMut for dyn PbmCapabilityTypeInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_pbm_capability_type_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn PbmCapabilityTypeInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmCapabilityTypeInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmCapabilityTypeInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmCapabilityTypeInfo"),
__out: &mut self.out,
}))
}
}
struct PbmCapabilityTypeInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmCapabilityTypeInfoTrait>>,
}
impl miniserde::de::Map for PbmCapabilityTypeInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmCapabilityTypeInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmCapabilityTypeInfoTrait for PbmCapabilityTypeInfo {
fn get_pbm_capability_type_info(&self) -> &super::structs::PbmCapabilityTypeInfo { &self }
fn get_pbm_capability_type_info_mut(&mut self) -> &mut super::structs::PbmCapabilityTypeInfo { self }
}
impl PbmCapabilityTypeInfoTrait for PbmCapabilityGenericTypeInfo {
fn get_pbm_capability_type_info(&self) -> &super::structs::PbmCapabilityTypeInfo { &self.pbm_capability_type_info_ }
fn get_pbm_capability_type_info_mut(&mut self) -> &mut super::structs::PbmCapabilityTypeInfo { &mut self.pbm_capability_type_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmCapabilityTypeInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityTypeInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityTypeInfo>()?),
StructType::PbmCapabilityGenericTypeInfo => Some(from.as_any_ref().downcast_ref::<PbmCapabilityGenericTypeInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityTypeInfo => Ok(from.as_any_box().downcast::<PbmCapabilityTypeInfo>()?),
StructType::PbmCapabilityGenericTypeInfo => Ok(from.as_any_box().downcast::<PbmCapabilityGenericTypeInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Describes Line of Service of a capability provider.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmProfileProfileManager::pbm_fetch_capability_schema().line_of_service?`
pub trait PbmLineOfServiceInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the PbmLineOfServiceInfo parent struct
fn get_pbm_line_of_service_info(&self) -> &super::structs::PbmLineOfServiceInfo;
/// Get a mutable reference to the PbmLineOfServiceInfo parent struct
fn get_pbm_line_of_service_info_mut(&mut self) -> &mut super::structs::PbmLineOfServiceInfo;
}
impl std::ops::Deref for dyn PbmLineOfServiceInfoTrait {
type Target = super::structs::PbmLineOfServiceInfo;
fn deref(&self) -> &Self::Target {
self.get_pbm_line_of_service_info()
}
}
impl std::ops::DerefMut for dyn PbmLineOfServiceInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_pbm_line_of_service_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn PbmLineOfServiceInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmLineOfServiceInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmLineOfServiceInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmLineOfServiceInfo"),
__out: &mut self.out,
}))
}
}
struct PbmLineOfServiceInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmLineOfServiceInfoTrait>>,
}
impl miniserde::de::Map for PbmLineOfServiceInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmLineOfServiceInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmLineOfServiceInfoTrait for PbmLineOfServiceInfo {
fn get_pbm_line_of_service_info(&self) -> &super::structs::PbmLineOfServiceInfo { &self }
fn get_pbm_line_of_service_info_mut(&mut self) -> &mut super::structs::PbmLineOfServiceInfo { self }
}
impl PbmLineOfServiceInfoTrait for PbmPersistenceBasedDataServiceInfo {
fn get_pbm_line_of_service_info(&self) -> &super::structs::PbmLineOfServiceInfo { &self.pbm_line_of_service_info_ }
fn get_pbm_line_of_service_info_mut(&mut self) -> &mut super::structs::PbmLineOfServiceInfo { &mut self.pbm_line_of_service_info_ }
}
impl PbmLineOfServiceInfoTrait for PbmVaioDataServiceInfo {
fn get_pbm_line_of_service_info(&self) -> &super::structs::PbmLineOfServiceInfo { &self.pbm_line_of_service_info_ }
fn get_pbm_line_of_service_info_mut(&mut self) -> &mut super::structs::PbmLineOfServiceInfo { &mut self.pbm_line_of_service_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmLineOfServiceInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmLineOfServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmLineOfServiceInfo>()?),
StructType::PbmPersistenceBasedDataServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmPersistenceBasedDataServiceInfo>()?),
StructType::PbmVaioDataServiceInfo => Some(from.as_any_ref().downcast_ref::<PbmVaioDataServiceInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmLineOfServiceInfo => Ok(from.as_any_box().downcast::<PbmLineOfServiceInfo>()?),
StructType::PbmPersistenceBasedDataServiceInfo => Ok(from.as_any_box().downcast::<PbmPersistenceBasedDataServiceInfo>()?),
StructType::PbmVaioDataServiceInfo => Ok(from.as_any_box().downcast::<PbmVaioDataServiceInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Describes the collection of resources (for example, hosts) that satisfy a
/// policy, for a specific datastore.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmPlacementSolver::pbm_check_compatibility().matching_resources?[*]`
/// - `PbmPlacementSolver::pbm_check_compatibility_with_spec().matching_resources?[*]`
/// - `PbmPlacementSolver::pbm_check_requirements().matching_resources?[*]`
pub trait PbmPlacementMatchingResourcesTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn PbmPlacementMatchingResourcesTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmPlacementMatchingResourcesTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmPlacementMatchingResourcesTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmPlacementMatchingResources"),
__out: &mut self.out,
}))
}
}
struct PbmPlacementMatchingResourcesTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmPlacementMatchingResourcesTrait>>,
}
impl miniserde::de::Map for PbmPlacementMatchingResourcesTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmPlacementMatchingResourcesTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmPlacementMatchingResourcesTrait for PbmPlacementMatchingResources {
}
impl PbmPlacementMatchingResourcesTrait for PbmPlacementMatchingReplicationResources {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmPlacementMatchingResourcesTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmPlacementMatchingResources => Some(from.as_any_ref().downcast_ref::<PbmPlacementMatchingResources>()?),
StructType::PbmPlacementMatchingReplicationResources => Some(from.as_any_ref().downcast_ref::<PbmPlacementMatchingReplicationResources>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmPlacementMatchingResources => Ok(from.as_any_box().downcast::<PbmPlacementMatchingResources>()?),
StructType::PbmPlacementMatchingReplicationResources => Ok(from.as_any_box().downcast::<PbmPlacementMatchingReplicationResources>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Defines a constraint for placing objects onto *PbmPlacementHub*s.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmPlacementSolver::pbm_check_requirements(placement_subject_requirement)`
pub trait PbmPlacementRequirementTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn PbmPlacementRequirementTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmPlacementRequirementTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmPlacementRequirementTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmPlacementRequirement"),
__out: &mut self.out,
}))
}
}
struct PbmPlacementRequirementTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmPlacementRequirementTrait>>,
}
impl miniserde::de::Map for PbmPlacementRequirementTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmPlacementRequirementTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmPlacementRequirementTrait for PbmPlacementRequirement {
}
impl PbmPlacementRequirementTrait for PbmPlacementCapabilityConstraintsRequirement {
}
impl PbmPlacementRequirementTrait for PbmPlacementCapabilityProfileRequirement {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmPlacementRequirementTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmPlacementRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementRequirement>()?),
StructType::PbmPlacementCapabilityConstraintsRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementCapabilityConstraintsRequirement>()?),
StructType::PbmPlacementCapabilityProfileRequirement => Some(from.as_any_ref().downcast_ref::<PbmPlacementCapabilityProfileRequirement>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmPlacementRequirement => Ok(from.as_any_box().downcast::<PbmPlacementRequirement>()?),
StructType::PbmPlacementCapabilityConstraintsRequirement => Ok(from.as_any_box().downcast::<PbmPlacementCapabilityConstraintsRequirement>()?),
StructType::PbmPlacementCapabilityProfileRequirement => Ok(from.as_any_box().downcast::<PbmPlacementCapabilityProfileRequirement>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *PbmCapabilityConstraints* data object is the base
/// object for capability subprofile constraints.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmPlacementSolver::pbm_check_compatibility_with_spec(profile_spec).constraints`
/// - `PbmPlacementSolver::pbm_query_matching_hub_with_spec(create_spec).constraints`
/// - `PbmProfileProfileManager::pbm_create(create_spec).constraints`
/// - `PbmProfileProfileManager::pbm_update(update_spec).constraints?`
/// - `PbmPlacementSolver::pbm_check_requirements(placement_subject_requirement)→PbmPlacementCapabilityConstraintsRequirement.constraints`
/// - `PbmProfileProfileManager::pbm_find_applicable_default_profile()⇒PbmCapabilityProfileTrait.constraints`
/// - `PbmProfileProfileManager::pbm_retrieve_content()⇒PbmCapabilityProfileTrait.constraints`
/// - `PbmProfileProfileManager::pbm_query_default_requirement_profiles().default_profile?⇒PbmCapabilityProfileTrait.constraints`
pub trait PbmCapabilityConstraintsTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn PbmCapabilityConstraintsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmCapabilityConstraintsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmCapabilityConstraintsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmCapabilityConstraints"),
__out: &mut self.out,
}))
}
}
struct PbmCapabilityConstraintsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmCapabilityConstraintsTrait>>,
}
impl miniserde::de::Map for PbmCapabilityConstraintsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmCapabilityConstraintsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmCapabilityConstraintsTrait for PbmCapabilityConstraints {
}
impl PbmCapabilityConstraintsTrait for PbmCapabilitySubProfileConstraints {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmCapabilityConstraintsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityConstraints => Some(from.as_any_ref().downcast_ref::<PbmCapabilityConstraints>()?),
StructType::PbmCapabilitySubProfileConstraints => Some(from.as_any_ref().downcast_ref::<PbmCapabilitySubProfileConstraints>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityConstraints => Ok(from.as_any_box().downcast::<PbmCapabilityConstraints>()?),
StructType::PbmCapabilitySubProfileConstraints => Ok(from.as_any_box().downcast::<PbmCapabilitySubProfileConstraints>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *PbmProfile* data object is the base object
/// for storage capability profiles.
///
/// This object defines metadata
/// for the profile. The derived capability profile represents the
/// user's intent for selection and configuration of storage resources
/// and/or services that support deployment of virtual machines
/// and virtual disks.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmProfileProfileManager::pbm_find_applicable_default_profile()`
/// - `PbmProfileProfileManager::pbm_retrieve_content()`
/// - `PbmProfileProfileManager::pbm_query_default_requirement_profiles().default_profile?`
pub trait PbmProfileTrait : super::traits::DataObjectTrait {
/// Get a reference to the PbmProfile parent struct
fn get_pbm_profile(&self) -> &super::structs::PbmProfile;
/// Get a mutable reference to the PbmProfile parent struct
fn get_pbm_profile_mut(&mut self) -> &mut super::structs::PbmProfile;
}
impl std::ops::Deref for dyn PbmProfileTrait {
type Target = super::structs::PbmProfile;
fn deref(&self) -> &Self::Target {
self.get_pbm_profile()
}
}
impl std::ops::DerefMut for dyn PbmProfileTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_pbm_profile_mut()
}
}
impl miniserde::Deserialize for Box<dyn PbmProfileTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmProfileTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmProfileTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmProfile"),
__out: &mut self.out,
}))
}
}
struct PbmProfileTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmProfileTrait>>,
}
impl miniserde::de::Map for PbmProfileTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmProfileTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmProfileTrait for PbmProfile {
fn get_pbm_profile(&self) -> &super::structs::PbmProfile { &self }
fn get_pbm_profile_mut(&mut self) -> &mut super::structs::PbmProfile { self }
}
impl PbmProfileTrait for PbmCapabilityProfile {
fn get_pbm_profile(&self) -> &super::structs::PbmProfile { &self.pbm_profile_ }
fn get_pbm_profile_mut(&mut self) -> &mut super::structs::PbmProfile { &mut self.pbm_profile_ }
}
impl PbmProfileTrait for PbmDefaultCapabilityProfile {
fn get_pbm_profile(&self) -> &super::structs::PbmProfile { &self.pbm_capability_profile_.pbm_profile_ }
fn get_pbm_profile_mut(&mut self) -> &mut super::structs::PbmProfile { &mut self.pbm_capability_profile_.pbm_profile_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmProfileTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmProfile => Some(from.as_any_ref().downcast_ref::<PbmProfile>()?),
StructType::PbmCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmDefaultCapabilityProfile>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmProfile => Ok(from.as_any_box().downcast::<PbmProfile>()?),
StructType::PbmCapabilityProfile => Ok(from.as_any_box().downcast::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Ok(from.as_any_box().downcast::<PbmDefaultCapabilityProfile>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *PbmCapabilityProfile* data object defines
/// capability-based profiles.
///
/// A capability-based profile is derived
/// from tag-based storage capabilities or from vSAN storage capabilities.
///
/// This structure may be used only with operations rendered under `/pbm`.
///
/// ### How to access
/// - `PbmProfileProfileManager::pbm_find_applicable_default_profile()⇒PbmCapabilityProfileTrait`
/// - `PbmProfileProfileManager::pbm_retrieve_content()⇒PbmCapabilityProfileTrait`
/// - `PbmProfileProfileManager::pbm_query_default_requirement_profiles().default_profile?⇒PbmCapabilityProfileTrait`
pub trait PbmCapabilityProfileTrait : super::traits::PbmProfileTrait {
/// Get a reference to the PbmCapabilityProfile parent struct
fn get_pbm_capability_profile(&self) -> &super::structs::PbmCapabilityProfile;
/// Get a mutable reference to the PbmCapabilityProfile parent struct
fn get_pbm_capability_profile_mut(&mut self) -> &mut super::structs::PbmCapabilityProfile;
}
impl std::ops::Deref for dyn PbmCapabilityProfileTrait {
type Target = super::structs::PbmCapabilityProfile;
fn deref(&self) -> &Self::Target {
self.get_pbm_capability_profile()
}
}
impl std::ops::DerefMut for dyn PbmCapabilityProfileTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_pbm_capability_profile_mut()
}
}
impl miniserde::Deserialize for Box<dyn PbmCapabilityProfileTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PbmCapabilityProfileTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PbmCapabilityProfileTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PbmCapabilityProfile"),
__out: &mut self.out,
}))
}
}
struct PbmCapabilityProfileTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PbmCapabilityProfileTrait>>,
}
impl miniserde::de::Map for PbmCapabilityProfileTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PbmCapabilityProfileTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PbmCapabilityProfileTrait for PbmCapabilityProfile {
fn get_pbm_capability_profile(&self) -> &super::structs::PbmCapabilityProfile { &self }
fn get_pbm_capability_profile_mut(&mut self) -> &mut super::structs::PbmCapabilityProfile { self }
}
impl PbmCapabilityProfileTrait for PbmDefaultCapabilityProfile {
fn get_pbm_capability_profile(&self) -> &super::structs::PbmCapabilityProfile { &self.pbm_capability_profile_ }
fn get_pbm_capability_profile_mut(&mut self) -> &mut super::structs::PbmCapabilityProfile { &mut self.pbm_capability_profile_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PbmCapabilityProfileTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Some(from.as_any_ref().downcast_ref::<PbmDefaultCapabilityProfile>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PbmCapabilityProfile => Ok(from.as_any_box().downcast::<PbmCapabilityProfile>()?),
StructType::PbmDefaultCapabilityProfile => Ok(from.as_any_box().downcast::<PbmDefaultCapabilityProfile>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Information about Storage Monitoring Service (SMS)
/// providers.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsProvider::query_provider_info()`
/// - `VasaProvider::query_provider_info()`
/// - `SmsStorageManager::query_storage_container().provider_info?[*]`
pub trait SmsProviderInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the SmsProviderInfo parent struct
fn get_sms_provider_info(&self) -> &super::structs::SmsProviderInfo;
/// Get a mutable reference to the SmsProviderInfo parent struct
fn get_sms_provider_info_mut(&mut self) -> &mut super::structs::SmsProviderInfo;
}
impl std::ops::Deref for dyn SmsProviderInfoTrait {
type Target = super::structs::SmsProviderInfo;
fn deref(&self) -> &Self::Target {
self.get_sms_provider_info()
}
}
impl std::ops::DerefMut for dyn SmsProviderInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_sms_provider_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn SmsProviderInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SmsProviderInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SmsProviderInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SmsProviderInfo"),
__out: &mut self.out,
}))
}
}
struct SmsProviderInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SmsProviderInfoTrait>>,
}
impl miniserde::de::Map for SmsProviderInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SmsProviderInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SmsProviderInfoTrait for SmsProviderInfo {
fn get_sms_provider_info(&self) -> &super::structs::SmsProviderInfo { &self }
fn get_sms_provider_info_mut(&mut self) -> &mut super::structs::SmsProviderInfo { self }
}
impl SmsProviderInfoTrait for VasaProviderInfo {
fn get_sms_provider_info(&self) -> &super::structs::SmsProviderInfo { &self.sms_provider_info_ }
fn get_sms_provider_info_mut(&mut self) -> &mut super::structs::SmsProviderInfo { &mut self.sms_provider_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SmsProviderInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SmsProviderInfo => Some(from.as_any_ref().downcast_ref::<SmsProviderInfo>()?),
StructType::VasaProviderInfo => Some(from.as_any_ref().downcast_ref::<VasaProviderInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SmsProviderInfo => Ok(from.as_any_box().downcast::<SmsProviderInfo>()?),
StructType::VasaProviderInfo => Ok(from.as_any_box().downcast::<VasaProviderInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification for Storage Monitoring Service (SMS)
/// providers.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsStorageManager::register_provider_task(provider_spec)`
pub trait SmsProviderSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the SmsProviderSpec parent struct
fn get_sms_provider_spec(&self) -> &super::structs::SmsProviderSpec;
/// Get a mutable reference to the SmsProviderSpec parent struct
fn get_sms_provider_spec_mut(&mut self) -> &mut super::structs::SmsProviderSpec;
}
impl std::ops::Deref for dyn SmsProviderSpecTrait {
type Target = super::structs::SmsProviderSpec;
fn deref(&self) -> &Self::Target {
self.get_sms_provider_spec()
}
}
impl std::ops::DerefMut for dyn SmsProviderSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_sms_provider_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn SmsProviderSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SmsProviderSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SmsProviderSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SmsProviderSpec"),
__out: &mut self.out,
}))
}
}
struct SmsProviderSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SmsProviderSpecTrait>>,
}
impl miniserde::de::Map for SmsProviderSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SmsProviderSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SmsProviderSpecTrait for SmsProviderSpec {
fn get_sms_provider_spec(&self) -> &super::structs::SmsProviderSpec { &self }
fn get_sms_provider_spec_mut(&mut self) -> &mut super::structs::SmsProviderSpec { self }
}
impl SmsProviderSpecTrait for VasaProviderSpec {
fn get_sms_provider_spec(&self) -> &super::structs::SmsProviderSpec { &self.sms_provider_spec_ }
fn get_sms_provider_spec_mut(&mut self) -> &mut super::structs::SmsProviderSpec { &mut self.sms_provider_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SmsProviderSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SmsProviderSpec => Some(from.as_any_ref().downcast_ref::<SmsProviderSpec>()?),
StructType::VasaProviderSpec => Some(from.as_any_ref().downcast_ref::<VasaProviderSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SmsProviderSpec => Ok(from.as_any_box().downcast::<SmsProviderSpec>()?),
StructType::VasaProviderSpec => Ok(from.as_any_box().downcast::<VasaProviderSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object represents the storage port.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsStorageManager::query_port_associated_with_array()`
/// - `SmsStorageManager::query_port_associated_with_lun()`
/// - `SmsStorageManager::query_port_associated_with_processor()`
pub trait StoragePortTrait : super::traits::DataObjectTrait {
/// Get a reference to the StoragePort parent struct
fn get_storage_port(&self) -> &super::structs::StoragePort;
/// Get a mutable reference to the StoragePort parent struct
fn get_storage_port_mut(&mut self) -> &mut super::structs::StoragePort;
}
impl std::ops::Deref for dyn StoragePortTrait {
type Target = super::structs::StoragePort;
fn deref(&self) -> &Self::Target {
self.get_storage_port()
}
}
impl std::ops::DerefMut for dyn StoragePortTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_storage_port_mut()
}
}
impl miniserde::Deserialize for Box<dyn StoragePortTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn StoragePortTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(StoragePortTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("StoragePort"),
__out: &mut self.out,
}))
}
}
struct StoragePortTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn StoragePortTrait>>,
}
impl miniserde::de::Map for StoragePortTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn StoragePortTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl StoragePortTrait for StoragePort {
fn get_storage_port(&self) -> &super::structs::StoragePort { &self }
fn get_storage_port_mut(&mut self) -> &mut super::structs::StoragePort { self }
}
impl StoragePortTrait for FcStoragePort {
fn get_storage_port(&self) -> &super::structs::StoragePort { &self.storage_port_ }
fn get_storage_port_mut(&mut self) -> &mut super::structs::StoragePort { &mut self.storage_port_ }
}
impl StoragePortTrait for FcoeStoragePort {
fn get_storage_port(&self) -> &super::structs::StoragePort { &self.storage_port_ }
fn get_storage_port_mut(&mut self) -> &mut super::structs::StoragePort { &mut self.storage_port_ }
}
impl StoragePortTrait for IscsiStoragePort {
fn get_storage_port(&self) -> &super::structs::StoragePort { &self.storage_port_ }
fn get_storage_port_mut(&mut self) -> &mut super::structs::StoragePort { &mut self.storage_port_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn StoragePortTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::StoragePort => Some(from.as_any_ref().downcast_ref::<StoragePort>()?),
StructType::FcStoragePort => Some(from.as_any_ref().downcast_ref::<FcStoragePort>()?),
StructType::FcoeStoragePort => Some(from.as_any_ref().downcast_ref::<FcoeStoragePort>()?),
StructType::IscsiStoragePort => Some(from.as_any_ref().downcast_ref::<IscsiStoragePort>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::StoragePort => Ok(from.as_any_box().downcast::<StoragePort>()?),
StructType::FcStoragePort => Ok(from.as_any_box().downcast::<FcStoragePort>()?),
StructType::FcoeStoragePort => Ok(from.as_any_box().downcast::<FcoeStoragePort>()?),
StructType::IscsiStoragePort => Ok(from.as_any_box().downcast::<IscsiStoragePort>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class that represents a replicated device.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `VasaProvider::failover_replication_group_task(failover_param).policy_associations?[*].id`
/// - `SmsStorageManager::query_replication_group_info()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?`
/// - `SmsStorageManager::query_replication_group_info()→FailoverSuccessResult.recovered_device_info?[*].source_device_id`
/// - `VasaProvider::query_point_in_time_replica()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?`
/// - `VasaProvider::query_point_in_time_replica()→FailoverSuccessResult.recovered_device_info?[*].source_device_id`
/// - `VasaProvider::query_replication_group()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?`
/// - `VasaProvider::query_replication_group()→FailoverSuccessResult.recovered_device_info?[*].source_device_id`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*].source_id`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→SourceGroupInfo.member_info?[*].device_id`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*]→RecoveredTargetGroupMemberInfo.recovered_device_id?`
///
/// *(10 of 16 paths)*
pub trait DeviceIdTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DeviceIdTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DeviceIdTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DeviceIdTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DeviceId"),
__out: &mut self.out,
}))
}
}
struct DeviceIdTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DeviceIdTrait>>,
}
impl miniserde::de::Map for DeviceIdTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DeviceIdTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DeviceIdTrait for DeviceId {
}
impl DeviceIdTrait for VVolId {
}
impl DeviceIdTrait for VasaVirtualDiskId {
}
impl DeviceIdTrait for VirtualDiskKey {
}
impl DeviceIdTrait for VirtualDiskMoId {
}
impl DeviceIdTrait for VirtualMachineId {
}
impl DeviceIdTrait for VirtualMachineFilePath {
}
impl DeviceIdTrait for VirtualMachineMoId {
}
impl DeviceIdTrait for VirtualMachineUuid {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DeviceIdTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DeviceId => Some(from.as_any_ref().downcast_ref::<DeviceId>()?),
StructType::VVolId => Some(from.as_any_ref().downcast_ref::<VVolId>()?),
StructType::VasaVirtualDiskId => Some(from.as_any_ref().downcast_ref::<VasaVirtualDiskId>()?),
StructType::VirtualDiskKey => Some(from.as_any_ref().downcast_ref::<VirtualDiskKey>()?),
StructType::VirtualDiskMoId => Some(from.as_any_ref().downcast_ref::<VirtualDiskMoId>()?),
StructType::VirtualMachineId => Some(from.as_any_ref().downcast_ref::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Some(from.as_any_ref().downcast_ref::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Some(from.as_any_ref().downcast_ref::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Some(from.as_any_ref().downcast_ref::<VirtualMachineUuid>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DeviceId => Ok(from.as_any_box().downcast::<DeviceId>()?),
StructType::VVolId => Ok(from.as_any_box().downcast::<VVolId>()?),
StructType::VasaVirtualDiskId => Ok(from.as_any_box().downcast::<VasaVirtualDiskId>()?),
StructType::VirtualDiskKey => Ok(from.as_any_box().downcast::<VirtualDiskKey>()?),
StructType::VirtualDiskMoId => Ok(from.as_any_box().downcast::<VirtualDiskMoId>()?),
StructType::VirtualMachineId => Ok(from.as_any_box().downcast::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Ok(from.as_any_box().downcast::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Ok(from.as_any_box().downcast::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Ok(from.as_any_box().downcast::<VirtualMachineUuid>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Abstracts the identity of a virtual machine.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `VasaProvider::failover_replication_group_task(failover_param).policy_associations?[*].id⇒VirtualMachineIdTrait`
/// - `SmsStorageManager::query_replication_group_info()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?⇒VirtualMachineIdTrait`
/// - `SmsStorageManager::query_replication_group_info()→FailoverSuccessResult.recovered_device_info?[*].source_device_id⇒VirtualMachineIdTrait`
/// - `VasaProvider::query_point_in_time_replica()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?⇒VirtualMachineIdTrait`
/// - `VasaProvider::query_point_in_time_replica()→FailoverSuccessResult.recovered_device_info?[*].source_device_id⇒VirtualMachineIdTrait`
/// - `VasaProvider::query_replication_group()→FailoverSuccessResult.recovered_device_info?[*].recovered_device_id?⇒VirtualMachineIdTrait`
/// - `VasaProvider::query_replication_group()→FailoverSuccessResult.recovered_device_info?[*].source_device_id⇒VirtualMachineIdTrait`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*].source_id⇒VirtualMachineIdTrait`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→SourceGroupInfo.member_info?[*].device_id⇒VirtualMachineIdTrait`
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*]→RecoveredTargetGroupMemberInfo.recovered_device_id?⇒VirtualMachineIdTrait`
///
/// *(10 of 16 paths)*
pub trait VirtualMachineIdTrait : super::traits::DeviceIdTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualMachineIdTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineIdTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineIdTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineId"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineIdTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineIdTrait>>,
}
impl miniserde::de::Map for VirtualMachineIdTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineIdTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineIdTrait for VirtualMachineId {
}
impl VirtualMachineIdTrait for VirtualMachineFilePath {
}
impl VirtualMachineIdTrait for VirtualMachineMoId {
}
impl VirtualMachineIdTrait for VirtualMachineUuid {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineIdTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineId => Some(from.as_any_ref().downcast_ref::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Some(from.as_any_ref().downcast_ref::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Some(from.as_any_ref().downcast_ref::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Some(from.as_any_ref().downcast_ref::<VirtualMachineUuid>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineId => Ok(from.as_any_box().downcast::<VirtualMachineId>()?),
StructType::VirtualMachineFilePath => Ok(from.as_any_box().downcast::<VirtualMachineFilePath>()?),
StructType::VirtualMachineMoId => Ok(from.as_any_box().downcast::<VirtualMachineMoId>()?),
StructType::VirtualMachineUuid => Ok(from.as_any_box().downcast::<VirtualMachineUuid>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Input to the failover or testFailover methods.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `VasaProvider::failover_replication_group_task(failover_param)`
pub trait FailoverParamTrait : super::traits::DataObjectTrait {
/// Get a reference to the FailoverParam parent struct
fn get_failover_param(&self) -> &super::structs::FailoverParam;
/// Get a mutable reference to the FailoverParam parent struct
fn get_failover_param_mut(&mut self) -> &mut super::structs::FailoverParam;
}
impl std::ops::Deref for dyn FailoverParamTrait {
type Target = super::structs::FailoverParam;
fn deref(&self) -> &Self::Target {
self.get_failover_param()
}
}
impl std::ops::DerefMut for dyn FailoverParamTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_failover_param_mut()
}
}
impl miniserde::Deserialize for Box<dyn FailoverParamTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FailoverParamTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FailoverParamTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FailoverParam"),
__out: &mut self.out,
}))
}
}
struct FailoverParamTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FailoverParamTrait>>,
}
impl miniserde::de::Map for FailoverParamTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FailoverParamTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FailoverParamTrait for FailoverParam {
fn get_failover_param(&self) -> &super::structs::FailoverParam { &self }
fn get_failover_param_mut(&mut self) -> &mut super::structs::FailoverParam { self }
}
impl FailoverParamTrait for TestFailoverParam {
fn get_failover_param(&self) -> &super::structs::FailoverParam { &self.failover_param_ }
fn get_failover_param_mut(&mut self) -> &mut super::structs::FailoverParam { &mut self.failover_param_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FailoverParamTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FailoverParam => Some(from.as_any_ref().downcast_ref::<FailoverParam>()?),
StructType::TestFailoverParam => Some(from.as_any_ref().downcast_ref::<TestFailoverParam>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FailoverParam => Ok(from.as_any_box().downcast::<FailoverParam>()?),
StructType::TestFailoverParam => Ok(from.as_any_box().downcast::<TestFailoverParam>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Replication group information.
///
/// May be either a *SourceGroupInfo* or
/// *TargetGroupInfo*.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info`
/// - `VasaProvider::query_point_in_time_replica()→QueryReplicationGroupSuccessResult.rg_info`
/// - `VasaProvider::query_replication_group()→QueryReplicationGroupSuccessResult.rg_info`
pub trait GroupInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the GroupInfo parent struct
fn get_group_info(&self) -> &super::structs::GroupInfo;
/// Get a mutable reference to the GroupInfo parent struct
fn get_group_info_mut(&mut self) -> &mut super::structs::GroupInfo;
}
impl std::ops::Deref for dyn GroupInfoTrait {
type Target = super::structs::GroupInfo;
fn deref(&self) -> &Self::Target {
self.get_group_info()
}
}
impl std::ops::DerefMut for dyn GroupInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_group_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn GroupInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GroupInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GroupInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GroupInfo"),
__out: &mut self.out,
}))
}
}
struct GroupInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GroupInfoTrait>>,
}
impl miniserde::de::Map for GroupInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GroupInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GroupInfoTrait for GroupInfo {
fn get_group_info(&self) -> &super::structs::GroupInfo { &self }
fn get_group_info_mut(&mut self) -> &mut super::structs::GroupInfo { self }
}
impl GroupInfoTrait for SourceGroupInfo {
fn get_group_info(&self) -> &super::structs::GroupInfo { &self.group_info_ }
fn get_group_info_mut(&mut self) -> &mut super::structs::GroupInfo { &mut self.group_info_ }
}
impl GroupInfoTrait for TargetGroupInfo {
fn get_group_info(&self) -> &super::structs::GroupInfo { &self.group_info_ }
fn get_group_info_mut(&mut self) -> &mut super::structs::GroupInfo { &mut self.group_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GroupInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GroupInfo => Some(from.as_any_ref().downcast_ref::<GroupInfo>()?),
StructType::SourceGroupInfo => Some(from.as_any_ref().downcast_ref::<SourceGroupInfo>()?),
StructType::TargetGroupInfo => Some(from.as_any_ref().downcast_ref::<TargetGroupInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GroupInfo => Ok(from.as_any_box().downcast::<GroupInfo>()?),
StructType::SourceGroupInfo => Ok(from.as_any_box().downcast::<SourceGroupInfo>()?),
StructType::TargetGroupInfo => Ok(from.as_any_box().downcast::<TargetGroupInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class for any operation on a replication group.
///
/// Usually, there is an
/// operation specific <Operation>SuccessResult
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsStorageManager::query_replication_group_info()`
/// - `VasaProvider::query_point_in_time_replica()`
/// - `VasaProvider::query_replication_group()`
pub trait GroupOperationResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the GroupOperationResult parent struct
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult;
/// Get a mutable reference to the GroupOperationResult parent struct
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult;
}
impl std::ops::Deref for dyn GroupOperationResultTrait {
type Target = super::structs::GroupOperationResult;
fn deref(&self) -> &Self::Target {
self.get_group_operation_result()
}
}
impl std::ops::DerefMut for dyn GroupOperationResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_group_operation_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn GroupOperationResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GroupOperationResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GroupOperationResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GroupOperationResult"),
__out: &mut self.out,
}))
}
}
struct GroupOperationResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GroupOperationResultTrait>>,
}
impl miniserde::de::Map for GroupOperationResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GroupOperationResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GroupOperationResultTrait for GroupOperationResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { self }
}
impl GroupOperationResultTrait for FailoverSuccessResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for GroupErrorResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for QueryPointInTimeReplicaSuccessResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for QueryPointInTimeReplicaSummaryResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for QueryReplicationGroupSuccessResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for ReverseReplicationSuccessResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl GroupOperationResultTrait for SyncReplicationGroupSuccessResult {
fn get_group_operation_result(&self) -> &super::structs::GroupOperationResult { &self.group_operation_result_ }
fn get_group_operation_result_mut(&mut self) -> &mut super::structs::GroupOperationResult { &mut self.group_operation_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GroupOperationResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GroupOperationResult => Some(from.as_any_ref().downcast_ref::<GroupOperationResult>()?),
StructType::FailoverSuccessResult => Some(from.as_any_ref().downcast_ref::<FailoverSuccessResult>()?),
StructType::GroupErrorResult => Some(from.as_any_ref().downcast_ref::<GroupErrorResult>()?),
StructType::QueryPointInTimeReplicaSuccessResult => Some(from.as_any_ref().downcast_ref::<QueryPointInTimeReplicaSuccessResult>()?),
StructType::QueryPointInTimeReplicaSummaryResult => Some(from.as_any_ref().downcast_ref::<QueryPointInTimeReplicaSummaryResult>()?),
StructType::QueryReplicationGroupSuccessResult => Some(from.as_any_ref().downcast_ref::<QueryReplicationGroupSuccessResult>()?),
StructType::ReverseReplicationSuccessResult => Some(from.as_any_ref().downcast_ref::<ReverseReplicationSuccessResult>()?),
StructType::SyncReplicationGroupSuccessResult => Some(from.as_any_ref().downcast_ref::<SyncReplicationGroupSuccessResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GroupOperationResult => Ok(from.as_any_box().downcast::<GroupOperationResult>()?),
StructType::FailoverSuccessResult => Ok(from.as_any_box().downcast::<FailoverSuccessResult>()?),
StructType::GroupErrorResult => Ok(from.as_any_box().downcast::<GroupErrorResult>()?),
StructType::QueryPointInTimeReplicaSuccessResult => Ok(from.as_any_box().downcast::<QueryPointInTimeReplicaSuccessResult>()?),
StructType::QueryPointInTimeReplicaSummaryResult => Ok(from.as_any_box().downcast::<QueryPointInTimeReplicaSummaryResult>()?),
StructType::QueryReplicationGroupSuccessResult => Ok(from.as_any_box().downcast::<QueryReplicationGroupSuccessResult>()?),
StructType::ReverseReplicationSuccessResult => Ok(from.as_any_box().downcast::<ReverseReplicationSuccessResult>()?),
StructType::SyncReplicationGroupSuccessResult => Ok(from.as_any_box().downcast::<SyncReplicationGroupSuccessResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Information about member virtual volumes in a ReplicationGroup
/// on the target when the state is *TARGET*.
///
/// This need not include information about all the snapshots in
/// the ReplicationGroup.
///
/// This structure may be used only with operations rendered under `/sms`.
///
/// ### How to access
/// - `SmsStorageManager::query_replication_group_info()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*]`
/// - `VasaProvider::query_point_in_time_replica()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*]`
/// - `VasaProvider::query_replication_group()→QueryReplicationGroupSuccessResult.rg_info→TargetGroupInfo.devices?[*]`
pub trait TargetGroupMemberInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the TargetGroupMemberInfo parent struct
fn get_target_group_member_info(&self) -> &super::structs::TargetGroupMemberInfo;
/// Get a mutable reference to the TargetGroupMemberInfo parent struct
fn get_target_group_member_info_mut(&mut self) -> &mut super::structs::TargetGroupMemberInfo;
}
impl std::ops::Deref for dyn TargetGroupMemberInfoTrait {
type Target = super::structs::TargetGroupMemberInfo;
fn deref(&self) -> &Self::Target {
self.get_target_group_member_info()
}
}
impl std::ops::DerefMut for dyn TargetGroupMemberInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_target_group_member_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn TargetGroupMemberInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn TargetGroupMemberInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(TargetGroupMemberInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("TargetGroupMemberInfo"),
__out: &mut self.out,
}))
}
}
struct TargetGroupMemberInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn TargetGroupMemberInfoTrait>>,
}
impl miniserde::de::Map for TargetGroupMemberInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn TargetGroupMemberInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl TargetGroupMemberInfoTrait for TargetGroupMemberInfo {
fn get_target_group_member_info(&self) -> &super::structs::TargetGroupMemberInfo { &self }
fn get_target_group_member_info_mut(&mut self) -> &mut super::structs::TargetGroupMemberInfo { self }
}
impl TargetGroupMemberInfoTrait for RecoveredTargetGroupMemberInfo {
fn get_target_group_member_info(&self) -> &super::structs::TargetGroupMemberInfo { &self.target_group_member_info_ }
fn get_target_group_member_info_mut(&mut self) -> &mut super::structs::TargetGroupMemberInfo { &mut self.target_group_member_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn TargetGroupMemberInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::TargetGroupMemberInfo => Some(from.as_any_ref().downcast_ref::<TargetGroupMemberInfo>()?),
StructType::RecoveredTargetGroupMemberInfo => Some(from.as_any_ref().downcast_ref::<RecoveredTargetGroupMemberInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::TargetGroupMemberInfo => Ok(from.as_any_box().downcast::<TargetGroupMemberInfo>()?),
StructType::RecoveredTargetGroupMemberInfo => Ok(from.as_any_box().downcast::<RecoveredTargetGroupMemberInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Describes the validation results.
///
/// ### How to access
/// - `ClusterComputeResource::validate_hci_configuration()`
/// - `VsanVcClusterConfigSystem::vsan_validate_config_spec()`
pub trait ClusterComputeResourceValidationResultBaseTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterComputeResourceValidationResultBase parent struct
fn get_cluster_compute_resource_validation_result_base(&self) -> &super::structs::ClusterComputeResourceValidationResultBase;
/// Get a mutable reference to the ClusterComputeResourceValidationResultBase parent struct
fn get_cluster_compute_resource_validation_result_base_mut(&mut self) -> &mut super::structs::ClusterComputeResourceValidationResultBase;
}
impl std::ops::Deref for dyn ClusterComputeResourceValidationResultBaseTrait {
type Target = super::structs::ClusterComputeResourceValidationResultBase;
fn deref(&self) -> &Self::Target {
self.get_cluster_compute_resource_validation_result_base()
}
}
impl std::ops::DerefMut for dyn ClusterComputeResourceValidationResultBaseTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_compute_resource_validation_result_base_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterComputeResourceValidationResultBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterComputeResourceValidationResultBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterComputeResourceValidationResultBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterComputeResourceValidationResultBase"),
__out: &mut self.out,
}))
}
}
struct ClusterComputeResourceValidationResultBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterComputeResourceValidationResultBaseTrait>>,
}
impl miniserde::de::Map for ClusterComputeResourceValidationResultBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterComputeResourceValidationResultBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterComputeResourceValidationResultBaseTrait for ClusterComputeResourceValidationResultBase {
fn get_cluster_compute_resource_validation_result_base(&self) -> &super::structs::ClusterComputeResourceValidationResultBase { &self }
fn get_cluster_compute_resource_validation_result_base_mut(&mut self) -> &mut super::structs::ClusterComputeResourceValidationResultBase { self }
}
impl ClusterComputeResourceValidationResultBaseTrait for ClusterComputeResourceDvsConfigurationValidation {
fn get_cluster_compute_resource_validation_result_base(&self) -> &super::structs::ClusterComputeResourceValidationResultBase { &self.cluster_compute_resource_validation_result_base_ }
fn get_cluster_compute_resource_validation_result_base_mut(&mut self) -> &mut super::structs::ClusterComputeResourceValidationResultBase { &mut self.cluster_compute_resource_validation_result_base_ }
}
impl ClusterComputeResourceValidationResultBaseTrait for ClusterComputeResourceHostConfigurationValidation {
fn get_cluster_compute_resource_validation_result_base(&self) -> &super::structs::ClusterComputeResourceValidationResultBase { &self.cluster_compute_resource_validation_result_base_ }
fn get_cluster_compute_resource_validation_result_base_mut(&mut self) -> &mut super::structs::ClusterComputeResourceValidationResultBase { &mut self.cluster_compute_resource_validation_result_base_ }
}
impl ClusterComputeResourceValidationResultBaseTrait for VsanClusterConfigPrecheckItem {
fn get_cluster_compute_resource_validation_result_base(&self) -> &super::structs::ClusterComputeResourceValidationResultBase { &self.cluster_compute_resource_validation_result_base_ }
fn get_cluster_compute_resource_validation_result_base_mut(&mut self) -> &mut super::structs::ClusterComputeResourceValidationResultBase { &mut self.cluster_compute_resource_validation_result_base_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterComputeResourceValidationResultBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterComputeResourceValidationResultBase => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceValidationResultBase>()?),
StructType::ClusterComputeResourceDvsConfigurationValidation => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceDvsConfigurationValidation>()?),
StructType::ClusterComputeResourceHostConfigurationValidation => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceHostConfigurationValidation>()?),
StructType::VsanClusterConfigPrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanClusterConfigPrecheckItem>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterComputeResourceValidationResultBase => Ok(from.as_any_box().downcast::<ClusterComputeResourceValidationResultBase>()?),
StructType::ClusterComputeResourceDvsConfigurationValidation => Ok(from.as_any_box().downcast::<ClusterComputeResourceDvsConfigurationValidation>()?),
StructType::ClusterComputeResourceHostConfigurationValidation => Ok(from.as_any_box().downcast::<ClusterComputeResourceHostConfigurationValidation>()?),
StructType::VsanClusterConfigPrecheckItem => Ok(from.as_any_box().downcast::<VsanClusterConfigPrecheckItem>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Configuration of the compute resource; applies to both standalone hosts
/// and clusters.
///
/// ### How to access
/// - `ComputeResource::configuration_ex`
/// - `ClusterComputeResource::configuration_ex`
pub trait ComputeResourceConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the ComputeResourceConfigInfo parent struct
fn get_compute_resource_config_info(&self) -> &super::structs::ComputeResourceConfigInfo;
/// Get a mutable reference to the ComputeResourceConfigInfo parent struct
fn get_compute_resource_config_info_mut(&mut self) -> &mut super::structs::ComputeResourceConfigInfo;
}
impl std::ops::Deref for dyn ComputeResourceConfigInfoTrait {
type Target = super::structs::ComputeResourceConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_compute_resource_config_info()
}
}
impl std::ops::DerefMut for dyn ComputeResourceConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_compute_resource_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn ComputeResourceConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ComputeResourceConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ComputeResourceConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ComputeResourceConfigInfo"),
__out: &mut self.out,
}))
}
}
struct ComputeResourceConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ComputeResourceConfigInfoTrait>>,
}
impl miniserde::de::Map for ComputeResourceConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ComputeResourceConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ComputeResourceConfigInfoTrait for ComputeResourceConfigInfo {
fn get_compute_resource_config_info(&self) -> &super::structs::ComputeResourceConfigInfo { &self }
fn get_compute_resource_config_info_mut(&mut self) -> &mut super::structs::ComputeResourceConfigInfo { self }
}
impl ComputeResourceConfigInfoTrait for ClusterConfigInfoEx {
fn get_compute_resource_config_info(&self) -> &super::structs::ComputeResourceConfigInfo { &self.compute_resource_config_info_ }
fn get_compute_resource_config_info_mut(&mut self) -> &mut super::structs::ComputeResourceConfigInfo { &mut self.compute_resource_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ComputeResourceConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceConfigInfo => Some(from.as_any_ref().downcast_ref::<ComputeResourceConfigInfo>()?),
StructType::ClusterConfigInfoEx => Some(from.as_any_ref().downcast_ref::<ClusterConfigInfoEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceConfigInfo => Ok(from.as_any_box().downcast::<ComputeResourceConfigInfo>()?),
StructType::ClusterConfigInfoEx => Ok(from.as_any_box().downcast::<ClusterConfigInfoEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Changes to apply to the compute resource configuration.
///
/// ### How to access
/// - `Folder::add_standalone_host_task(comp_res_spec)`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)`
/// - `ComputeResource::reconfigure_compute_resource_task(spec)`
/// - `ClusterComputeResource::reconfigure_compute_resource_task(spec)`
pub trait ComputeResourceConfigSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the ComputeResourceConfigSpec parent struct
fn get_compute_resource_config_spec(&self) -> &super::structs::ComputeResourceConfigSpec;
/// Get a mutable reference to the ComputeResourceConfigSpec parent struct
fn get_compute_resource_config_spec_mut(&mut self) -> &mut super::structs::ComputeResourceConfigSpec;
}
impl std::ops::Deref for dyn ComputeResourceConfigSpecTrait {
type Target = super::structs::ComputeResourceConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_compute_resource_config_spec()
}
}
impl std::ops::DerefMut for dyn ComputeResourceConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_compute_resource_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ComputeResourceConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ComputeResourceConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ComputeResourceConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ComputeResourceConfigSpec"),
__out: &mut self.out,
}))
}
}
struct ComputeResourceConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ComputeResourceConfigSpecTrait>>,
}
impl miniserde::de::Map for ComputeResourceConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ComputeResourceConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ComputeResourceConfigSpecTrait for ComputeResourceConfigSpec {
fn get_compute_resource_config_spec(&self) -> &super::structs::ComputeResourceConfigSpec { &self }
fn get_compute_resource_config_spec_mut(&mut self) -> &mut super::structs::ComputeResourceConfigSpec { self }
}
impl ComputeResourceConfigSpecTrait for ClusterConfigSpecEx {
fn get_compute_resource_config_spec(&self) -> &super::structs::ComputeResourceConfigSpec { &self.compute_resource_config_spec_ }
fn get_compute_resource_config_spec_mut(&mut self) -> &mut super::structs::ComputeResourceConfigSpec { &mut self.compute_resource_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ComputeResourceConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceConfigSpec => Some(from.as_any_ref().downcast_ref::<ComputeResourceConfigSpec>()?),
StructType::ClusterConfigSpecEx => Some(from.as_any_ref().downcast_ref::<ClusterConfigSpecEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceConfigSpec => Ok(from.as_any_box().downcast::<ComputeResourceConfigSpec>()?),
StructType::ClusterConfigSpecEx => Ok(from.as_any_box().downcast::<ClusterConfigSpecEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type encapsulates a typical set of ComputeResource information
/// that is useful for list views and summary pages.
///
/// ### How to access
/// - `ComputeResource::summary`
/// - `ClusterComputeResource::summary`
pub trait ComputeResourceSummaryTrait : super::traits::DataObjectTrait {
/// Get a reference to the ComputeResourceSummary parent struct
fn get_compute_resource_summary(&self) -> &super::structs::ComputeResourceSummary;
/// Get a mutable reference to the ComputeResourceSummary parent struct
fn get_compute_resource_summary_mut(&mut self) -> &mut super::structs::ComputeResourceSummary;
}
impl std::ops::Deref for dyn ComputeResourceSummaryTrait {
type Target = super::structs::ComputeResourceSummary;
fn deref(&self) -> &Self::Target {
self.get_compute_resource_summary()
}
}
impl std::ops::DerefMut for dyn ComputeResourceSummaryTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_compute_resource_summary_mut()
}
}
impl miniserde::Deserialize for Box<dyn ComputeResourceSummaryTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ComputeResourceSummaryTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ComputeResourceSummaryTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ComputeResourceSummary"),
__out: &mut self.out,
}))
}
}
struct ComputeResourceSummaryTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ComputeResourceSummaryTrait>>,
}
impl miniserde::de::Map for ComputeResourceSummaryTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ComputeResourceSummaryTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ComputeResourceSummaryTrait for ComputeResourceSummary {
fn get_compute_resource_summary(&self) -> &super::structs::ComputeResourceSummary { &self }
fn get_compute_resource_summary_mut(&mut self) -> &mut super::structs::ComputeResourceSummary { self }
}
impl ComputeResourceSummaryTrait for ClusterComputeResourceSummary {
fn get_compute_resource_summary(&self) -> &super::structs::ComputeResourceSummary { &self.compute_resource_summary_ }
fn get_compute_resource_summary_mut(&mut self) -> &mut super::structs::ComputeResourceSummary { &mut self.compute_resource_summary_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ComputeResourceSummaryTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceSummary => Some(from.as_any_ref().downcast_ref::<ComputeResourceSummary>()?),
StructType::ClusterComputeResourceSummary => Some(from.as_any_ref().downcast_ref::<ClusterComputeResourceSummary>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ComputeResourceSummary => Ok(from.as_any_box().downcast::<ComputeResourceSummary>()?),
StructType::ClusterComputeResourceSummary => Ok(from.as_any_box().downcast::<ClusterComputeResourceSummary>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for storing values.
///
/// ### How to access
/// - `VirtualMachine::custom_value`
/// - `VirtualMachine::value`
/// - `VirtualMachine::summary.custom_value?[*]`
/// - `HostSystem::custom_value`
/// - `HostSystem::value`
/// - `HostSystem::summary.custom_value?[*]`
/// - `Task::value`
/// - `Network::custom_value`
/// - `Network::value`
/// - `DistributedVirtualPortgroup::custom_value`
///
/// *(10 of 57 paths)*
pub trait CustomFieldValueTrait : super::traits::DataObjectTrait {
/// Get a reference to the CustomFieldValue parent struct
fn get_custom_field_value(&self) -> &super::structs::CustomFieldValue;
/// Get a mutable reference to the CustomFieldValue parent struct
fn get_custom_field_value_mut(&mut self) -> &mut super::structs::CustomFieldValue;
}
impl std::ops::Deref for dyn CustomFieldValueTrait {
type Target = super::structs::CustomFieldValue;
fn deref(&self) -> &Self::Target {
self.get_custom_field_value()
}
}
impl std::ops::DerefMut for dyn CustomFieldValueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_custom_field_value_mut()
}
}
impl miniserde::Deserialize for Box<dyn CustomFieldValueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomFieldValueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomFieldValueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomFieldValue"),
__out: &mut self.out,
}))
}
}
struct CustomFieldValueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomFieldValueTrait>>,
}
impl miniserde::de::Map for CustomFieldValueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomFieldValueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomFieldValueTrait for CustomFieldValue {
fn get_custom_field_value(&self) -> &super::structs::CustomFieldValue { &self }
fn get_custom_field_value_mut(&mut self) -> &mut super::structs::CustomFieldValue { self }
}
impl CustomFieldValueTrait for CustomFieldStringValue {
fn get_custom_field_value(&self) -> &super::structs::CustomFieldValue { &self.custom_field_value_ }
fn get_custom_field_value_mut(&mut self) -> &mut super::structs::CustomFieldValue { &mut self.custom_field_value_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomFieldValueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomFieldValue => Some(from.as_any_ref().downcast_ref::<CustomFieldValue>()?),
StructType::CustomFieldStringValue => Some(from.as_any_ref().downcast_ref::<CustomFieldStringValue>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomFieldValue => Ok(from.as_any_box().downcast::<CustomFieldValue>()?),
StructType::CustomFieldStringValue => Ok(from.as_any_box().downcast::<CustomFieldStringValue>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Detailed information about a datastore.
///
/// This is a base type for derived types
/// that have more specific details about a datastore.
///
/// See also *HostVmfsVolume*, *HostNasVolume*, *HostLocalFileSystemVolume*.
///
/// ### How to access
/// - `Datastore::info`
pub trait DatastoreInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the DatastoreInfo parent struct
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo;
/// Get a mutable reference to the DatastoreInfo parent struct
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo;
}
impl std::ops::Deref for dyn DatastoreInfoTrait {
type Target = super::structs::DatastoreInfo;
fn deref(&self) -> &Self::Target {
self.get_datastore_info()
}
}
impl std::ops::DerefMut for dyn DatastoreInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_datastore_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn DatastoreInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DatastoreInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DatastoreInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DatastoreInfo"),
__out: &mut self.out,
}))
}
}
struct DatastoreInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DatastoreInfoTrait>>,
}
impl miniserde::de::Map for DatastoreInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DatastoreInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DatastoreInfoTrait for DatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { self }
}
impl DatastoreInfoTrait for LocalDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl DatastoreInfoTrait for NasDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl DatastoreInfoTrait for PMemDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl DatastoreInfoTrait for VmfsDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl DatastoreInfoTrait for VsanDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl DatastoreInfoTrait for VvolDatastoreInfo {
fn get_datastore_info(&self) -> &super::structs::DatastoreInfo { &self.datastore_info_ }
fn get_datastore_info_mut(&mut self) -> &mut super::structs::DatastoreInfo { &mut self.datastore_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DatastoreInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DatastoreInfo => Some(from.as_any_ref().downcast_ref::<DatastoreInfo>()?),
StructType::LocalDatastoreInfo => Some(from.as_any_ref().downcast_ref::<LocalDatastoreInfo>()?),
StructType::NasDatastoreInfo => Some(from.as_any_ref().downcast_ref::<NasDatastoreInfo>()?),
StructType::PMemDatastoreInfo => Some(from.as_any_ref().downcast_ref::<PMemDatastoreInfo>()?),
StructType::VmfsDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreInfo>()?),
StructType::VsanDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VsanDatastoreInfo>()?),
StructType::VvolDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VvolDatastoreInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DatastoreInfo => Ok(from.as_any_box().downcast::<DatastoreInfo>()?),
StructType::LocalDatastoreInfo => Ok(from.as_any_box().downcast::<LocalDatastoreInfo>()?),
StructType::NasDatastoreInfo => Ok(from.as_any_box().downcast::<NasDatastoreInfo>()?),
StructType::PMemDatastoreInfo => Ok(from.as_any_box().downcast::<PMemDatastoreInfo>()?),
StructType::VmfsDatastoreInfo => Ok(from.as_any_box().downcast::<VmfsDatastoreInfo>()?),
StructType::VsanDatastoreInfo => Ok(from.as_any_box().downcast::<VsanDatastoreInfo>()?),
StructType::VvolDatastoreInfo => Ok(from.as_any_box().downcast::<VvolDatastoreInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Static strings used for describing an object or property.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].device_info?`
/// - `VirtualMachine::config.device_groups?.device_group?[*].device_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device.device_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.device_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*].device_info?`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.device_info?`
///
/// *(10 of 100 paths)*
pub trait DescriptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the Description parent struct
fn get_description(&self) -> &super::structs::Description;
/// Get a mutable reference to the Description parent struct
fn get_description_mut(&mut self) -> &mut super::structs::Description;
}
impl std::ops::Deref for dyn DescriptionTrait {
type Target = super::structs::Description;
fn deref(&self) -> &Self::Target {
self.get_description()
}
}
impl std::ops::DerefMut for dyn DescriptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_description_mut()
}
}
impl miniserde::Deserialize for Box<dyn DescriptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DescriptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DescriptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("Description"),
__out: &mut self.out,
}))
}
}
struct DescriptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DescriptionTrait>>,
}
impl miniserde::de::Map for DescriptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DescriptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DescriptionTrait for Description {
fn get_description(&self) -> &super::structs::Description { &self }
fn get_description_mut(&mut self) -> &mut super::structs::Description { self }
}
impl DescriptionTrait for ElementDescription {
fn get_description(&self) -> &super::structs::Description { &self.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.description_ }
}
impl DescriptionTrait for EvcMode {
fn get_description(&self) -> &super::structs::Description { &self.element_description_.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.element_description_.description_ }
}
impl DescriptionTrait for ExtendedElementDescription {
fn get_description(&self) -> &super::structs::Description { &self.element_description_.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.element_description_.description_ }
}
impl DescriptionTrait for FeatureEvcMode {
fn get_description(&self) -> &super::structs::Description { &self.element_description_.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.element_description_.description_ }
}
impl DescriptionTrait for OptionDef {
fn get_description(&self) -> &super::structs::Description { &self.element_description_.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.element_description_.description_ }
}
impl DescriptionTrait for ExtendedDescription {
fn get_description(&self) -> &super::structs::Description { &self.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.description_ }
}
impl DescriptionTrait for MethodDescription {
fn get_description(&self) -> &super::structs::Description { &self.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.description_ }
}
impl DescriptionTrait for TypeDescription {
fn get_description(&self) -> &super::structs::Description { &self.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.description_ }
}
impl DescriptionTrait for ScheduledTaskDetail {
fn get_description(&self) -> &super::structs::Description { &self.type_description_.description_ }
fn get_description_mut(&mut self) -> &mut super::structs::Description { &mut self.type_description_.description_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DescriptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::Description => Some(from.as_any_ref().downcast_ref::<Description>()?),
StructType::ElementDescription => Some(from.as_any_ref().downcast_ref::<ElementDescription>()?),
StructType::EvcMode => Some(from.as_any_ref().downcast_ref::<EvcMode>()?),
StructType::ExtendedElementDescription => Some(from.as_any_ref().downcast_ref::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Some(from.as_any_ref().downcast_ref::<FeatureEvcMode>()?),
StructType::OptionDef => Some(from.as_any_ref().downcast_ref::<OptionDef>()?),
StructType::ExtendedDescription => Some(from.as_any_ref().downcast_ref::<ExtendedDescription>()?),
StructType::MethodDescription => Some(from.as_any_ref().downcast_ref::<MethodDescription>()?),
StructType::TypeDescription => Some(from.as_any_ref().downcast_ref::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Some(from.as_any_ref().downcast_ref::<ScheduledTaskDetail>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::Description => Ok(from.as_any_box().downcast::<Description>()?),
StructType::ElementDescription => Ok(from.as_any_box().downcast::<ElementDescription>()?),
StructType::EvcMode => Ok(from.as_any_box().downcast::<EvcMode>()?),
StructType::ExtendedElementDescription => Ok(from.as_any_box().downcast::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Ok(from.as_any_box().downcast::<FeatureEvcMode>()?),
StructType::OptionDef => Ok(from.as_any_box().downcast::<OptionDef>()?),
StructType::ExtendedDescription => Ok(from.as_any_box().downcast::<ExtendedDescription>()?),
StructType::MethodDescription => Ok(from.as_any_box().downcast::<MethodDescription>()?),
StructType::TypeDescription => Ok(from.as_any_box().downcast::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Ok(from.as_any_box().downcast::<ScheduledTaskDetail>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Static strings used for describing an object model string or enumeration.
///
/// ### How to access
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?⇒ElementDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?⇒ElementDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.device_info?⇒ElementDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.device_info?⇒ElementDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*].device_info?⇒ElementDescriptionTrait`
/// - `AlarmManager::description.state_operator[*]`
/// - `AlarmManager::description.metric_operator[*]`
/// - `AlarmManager::description.host_system_connection_state[*]`
/// - `AlarmManager::description.virtual_machine_power_state[*]`
/// - `AlarmManager::description.datastore_connection_state[*]`
///
/// *(10 of 100 paths)*
pub trait ElementDescriptionTrait : super::traits::DescriptionTrait {
/// Get a reference to the ElementDescription parent struct
fn get_element_description(&self) -> &super::structs::ElementDescription;
/// Get a mutable reference to the ElementDescription parent struct
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription;
}
impl std::ops::Deref for dyn ElementDescriptionTrait {
type Target = super::structs::ElementDescription;
fn deref(&self) -> &Self::Target {
self.get_element_description()
}
}
impl std::ops::DerefMut for dyn ElementDescriptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_element_description_mut()
}
}
impl miniserde::Deserialize for Box<dyn ElementDescriptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ElementDescriptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ElementDescriptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ElementDescription"),
__out: &mut self.out,
}))
}
}
struct ElementDescriptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ElementDescriptionTrait>>,
}
impl miniserde::de::Map for ElementDescriptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ElementDescriptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ElementDescriptionTrait for ElementDescription {
fn get_element_description(&self) -> &super::structs::ElementDescription { &self }
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription { self }
}
impl ElementDescriptionTrait for EvcMode {
fn get_element_description(&self) -> &super::structs::ElementDescription { &self.element_description_ }
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription { &mut self.element_description_ }
}
impl ElementDescriptionTrait for ExtendedElementDescription {
fn get_element_description(&self) -> &super::structs::ElementDescription { &self.element_description_ }
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription { &mut self.element_description_ }
}
impl ElementDescriptionTrait for FeatureEvcMode {
fn get_element_description(&self) -> &super::structs::ElementDescription { &self.element_description_ }
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription { &mut self.element_description_ }
}
impl ElementDescriptionTrait for OptionDef {
fn get_element_description(&self) -> &super::structs::ElementDescription { &self.element_description_ }
fn get_element_description_mut(&mut self) -> &mut super::structs::ElementDescription { &mut self.element_description_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ElementDescriptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ElementDescription => Some(from.as_any_ref().downcast_ref::<ElementDescription>()?),
StructType::EvcMode => Some(from.as_any_ref().downcast_ref::<EvcMode>()?),
StructType::ExtendedElementDescription => Some(from.as_any_ref().downcast_ref::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Some(from.as_any_ref().downcast_ref::<FeatureEvcMode>()?),
StructType::OptionDef => Some(from.as_any_ref().downcast_ref::<OptionDef>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ElementDescription => Ok(from.as_any_box().downcast::<ElementDescription>()?),
StructType::EvcMode => Ok(from.as_any_box().downcast::<EvcMode>()?),
StructType::ExtendedElementDescription => Ok(from.as_any_box().downcast::<ExtendedElementDescription>()?),
StructType::FeatureEvcMode => Ok(from.as_any_box().downcast::<FeatureEvcMode>()?),
StructType::OptionDef => Ok(from.as_any_box().downcast::<OptionDef>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Static strings used for describing an object type.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].device_info?⇒TypeDescriptionTrait`
/// - `VirtualMachine::config.device_groups?.device_group?[*].device_info?⇒TypeDescriptionTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*].device_info?⇒TypeDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.device_info?⇒TypeDescriptionTrait`
///
/// *(10 of 100 paths)*
pub trait TypeDescriptionTrait : super::traits::DescriptionTrait {
/// Get a reference to the TypeDescription parent struct
fn get_type_description(&self) -> &super::structs::TypeDescription;
/// Get a mutable reference to the TypeDescription parent struct
fn get_type_description_mut(&mut self) -> &mut super::structs::TypeDescription;
}
impl std::ops::Deref for dyn TypeDescriptionTrait {
type Target = super::structs::TypeDescription;
fn deref(&self) -> &Self::Target {
self.get_type_description()
}
}
impl std::ops::DerefMut for dyn TypeDescriptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_type_description_mut()
}
}
impl miniserde::Deserialize for Box<dyn TypeDescriptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn TypeDescriptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(TypeDescriptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("TypeDescription"),
__out: &mut self.out,
}))
}
}
struct TypeDescriptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn TypeDescriptionTrait>>,
}
impl miniserde::de::Map for TypeDescriptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn TypeDescriptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl TypeDescriptionTrait for TypeDescription {
fn get_type_description(&self) -> &super::structs::TypeDescription { &self }
fn get_type_description_mut(&mut self) -> &mut super::structs::TypeDescription { self }
}
impl TypeDescriptionTrait for ScheduledTaskDetail {
fn get_type_description(&self) -> &super::structs::TypeDescription { &self.type_description_ }
fn get_type_description_mut(&mut self) -> &mut super::structs::TypeDescription { &mut self.type_description_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn TypeDescriptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::TypeDescription => Some(from.as_any_ref().downcast_ref::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Some(from.as_any_ref().downcast_ref::<ScheduledTaskDetail>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::TypeDescription => Ok(from.as_any_box().downcast::<TypeDescription>()?),
StructType::ScheduledTaskDetail => Ok(from.as_any_box().downcast::<ScheduledTaskDetail>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base specification describing information about a DirectPath profile
/// for which capacity needs to be queried using
/// *DirectPathProfileManager.DirectPathProfileManagerQueryCapacity*.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity(query_spec)`
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity()→DirectPathProfileManagerCapacityUnknown.query_spec`
pub trait DirectPathProfileManagerCapacityQuerySpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DirectPathProfileManagerCapacityQuerySpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DirectPathProfileManagerCapacityQuerySpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DirectPathProfileManagerCapacityQuerySpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DirectPathProfileManagerCapacityQuerySpec"),
__out: &mut self.out,
}))
}
}
struct DirectPathProfileManagerCapacityQuerySpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DirectPathProfileManagerCapacityQuerySpecTrait>>,
}
impl miniserde::de::Map for DirectPathProfileManagerCapacityQuerySpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DirectPathProfileManagerCapacityQuerySpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DirectPathProfileManagerCapacityQuerySpecTrait for DirectPathProfileManagerCapacityQuerySpec {
}
impl DirectPathProfileManagerCapacityQuerySpecTrait for DirectPathProfileManagerCapacityQueryByDeviceConfig {
}
impl DirectPathProfileManagerCapacityQuerySpecTrait for DirectPathProfileManagerCapacityQueryById {
}
impl DirectPathProfileManagerCapacityQuerySpecTrait for DirectPathProfileManagerCapacityQueryByName {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DirectPathProfileManagerCapacityQuerySpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerCapacityQuerySpec => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQuerySpec>()?),
StructType::DirectPathProfileManagerCapacityQueryByDeviceConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryByDeviceConfig>()?),
StructType::DirectPathProfileManagerCapacityQueryById => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryById>()?),
StructType::DirectPathProfileManagerCapacityQueryByName => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityQueryByName>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerCapacityQuerySpec => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQuerySpec>()?),
StructType::DirectPathProfileManagerCapacityQueryByDeviceConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryByDeviceConfig>()?),
StructType::DirectPathProfileManagerCapacityQueryById => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryById>()?),
StructType::DirectPathProfileManagerCapacityQueryByName => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityQueryByName>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base specification for capacity query result returned from
/// *DirectPathProfileManager.DirectPathProfileManagerQueryCapacity*.
///
/// Each of the result object
/// corresponds to each of the specification described in
/// *DirectPathProfileManagerCapacityQuerySpec*.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity()`
pub trait DirectPathProfileManagerCapacityResultTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DirectPathProfileManagerCapacityResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DirectPathProfileManagerCapacityResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DirectPathProfileManagerCapacityResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DirectPathProfileManagerCapacityResult"),
__out: &mut self.out,
}))
}
}
struct DirectPathProfileManagerCapacityResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DirectPathProfileManagerCapacityResultTrait>>,
}
impl miniserde::de::Map for DirectPathProfileManagerCapacityResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DirectPathProfileManagerCapacityResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DirectPathProfileManagerCapacityResultTrait for DirectPathProfileManagerCapacityResult {
}
impl DirectPathProfileManagerCapacityResultTrait for DirectPathProfileManagerCapacityInfo {
}
impl DirectPathProfileManagerCapacityResultTrait for DirectPathProfileManagerCapacityUnknown {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DirectPathProfileManagerCapacityResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerCapacityResult => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityResult>()?),
StructType::DirectPathProfileManagerCapacityInfo => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityInfo>()?),
StructType::DirectPathProfileManagerCapacityUnknown => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerCapacityUnknown>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerCapacityResult => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityResult>()?),
StructType::DirectPathProfileManagerCapacityInfo => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityInfo>()?),
StructType::DirectPathProfileManagerCapacityUnknown => Ok(from.as_any_box().downcast::<DirectPathProfileManagerCapacityUnknown>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base configuration of a DirectPath device.
///
/// This contains the information
/// about a DirectPath device that is needed for representing the device via
/// a DirectPath profile. A DirectPath device can be of different sub-types.
/// Each sub-type extends from this base configuration and further defines
/// its own properties.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `DirectPathProfileManager::direct_path_profile_manager_create(spec).device_config`
/// - `DirectPathProfileManager::direct_path_profile_manager_list().device_config`
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity(query_spec)→DirectPathProfileManagerCapacityQueryByDeviceConfig.device_config`
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity()→DirectPathProfileManagerCapacityInfo.profile.device_config`
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity()→DirectPathProfileManagerCapacityUnknown.query_spec→DirectPathProfileManagerCapacityQueryByDeviceConfig.device_config`
pub trait DirectPathProfileManagerDirectPathConfigTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DirectPathProfileManagerDirectPathConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DirectPathProfileManagerDirectPathConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DirectPathProfileManagerDirectPathConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DirectPathProfileManagerDirectPathConfig"),
__out: &mut self.out,
}))
}
}
struct DirectPathProfileManagerDirectPathConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DirectPathProfileManagerDirectPathConfigTrait>>,
}
impl miniserde::de::Map for DirectPathProfileManagerDirectPathConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DirectPathProfileManagerDirectPathConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DirectPathProfileManagerDirectPathConfigTrait for DirectPathProfileManagerDirectPathConfig {
}
impl DirectPathProfileManagerDirectPathConfigTrait for DirectPathProfileManagerDvxDirectPathConfig {
}
impl DirectPathProfileManagerDirectPathConfigTrait for DirectPathProfileManagerDynamicDirectPathConfig {
}
impl DirectPathProfileManagerDirectPathConfigTrait for DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig {
}
impl DirectPathProfileManagerDirectPathConfigTrait for DirectPathProfileManagerVmiopDirectPathConfig {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DirectPathProfileManagerDirectPathConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDirectPathConfig>()?),
StructType::DirectPathProfileManagerDvxDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDvxDirectPathConfig>()?),
StructType::DirectPathProfileManagerDynamicDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerDynamicDirectPathConfig>()?),
StructType::DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig>()?),
StructType::DirectPathProfileManagerVmiopDirectPathConfig => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerVmiopDirectPathConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDirectPathConfig>()?),
StructType::DirectPathProfileManagerDvxDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDvxDirectPathConfig>()?),
StructType::DirectPathProfileManagerDynamicDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerDynamicDirectPathConfig>()?),
StructType::DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerVirtualDeviceGroupDirectPathConfig>()?),
StructType::DirectPathProfileManagerVmiopDirectPathConfig => Ok(from.as_any_box().downcast::<DirectPathProfileManagerVmiopDirectPathConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base specification describing the target entity against which the
/// capacity of a DirectPath profile can be queried using
/// *DirectPathProfileManager.DirectPathProfileManagerQueryCapacity*.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `DirectPathProfileManager::direct_path_profile_manager_query_capacity(target)`
pub trait DirectPathProfileManagerTargetEntityTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DirectPathProfileManagerTargetEntityTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DirectPathProfileManagerTargetEntityTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DirectPathProfileManagerTargetEntityTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DirectPathProfileManagerTargetEntity"),
__out: &mut self.out,
}))
}
}
struct DirectPathProfileManagerTargetEntityTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DirectPathProfileManagerTargetEntityTrait>>,
}
impl miniserde::de::Map for DirectPathProfileManagerTargetEntityTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DirectPathProfileManagerTargetEntityTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DirectPathProfileManagerTargetEntityTrait for DirectPathProfileManagerTargetEntity {
}
impl DirectPathProfileManagerTargetEntityTrait for DirectPathProfileManagerTargetCluster {
}
impl DirectPathProfileManagerTargetEntityTrait for DirectPathProfileManagerTargetHost {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DirectPathProfileManagerTargetEntityTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerTargetEntity => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetEntity>()?),
StructType::DirectPathProfileManagerTargetCluster => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetCluster>()?),
StructType::DirectPathProfileManagerTargetHost => Some(from.as_any_ref().downcast_ref::<DirectPathProfileManagerTargetHost>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DirectPathProfileManagerTargetEntity => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetEntity>()?),
StructType::DirectPathProfileManagerTargetCluster => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetCluster>()?),
StructType::DirectPathProfileManagerTargetHost => Ok(from.as_any_box().downcast::<DirectPathProfileManagerTargetHost>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Configuration of a *DistributedVirtualSwitch*.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::config`
/// - `DistributedVirtualSwitch::config`
pub trait DvsConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvsConfigInfo parent struct
fn get_dvs_config_info(&self) -> &super::structs::DvsConfigInfo;
/// Get a mutable reference to the DvsConfigInfo parent struct
fn get_dvs_config_info_mut(&mut self) -> &mut super::structs::DvsConfigInfo;
}
impl std::ops::Deref for dyn DvsConfigInfoTrait {
type Target = super::structs::DvsConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_dvs_config_info()
}
}
impl std::ops::DerefMut for dyn DvsConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsConfigInfo"),
__out: &mut self.out,
}))
}
}
struct DvsConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsConfigInfoTrait>>,
}
impl miniserde::de::Map for DvsConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsConfigInfoTrait for DvsConfigInfo {
fn get_dvs_config_info(&self) -> &super::structs::DvsConfigInfo { &self }
fn get_dvs_config_info_mut(&mut self) -> &mut super::structs::DvsConfigInfo { self }
}
impl DvsConfigInfoTrait for VMwareDvsConfigInfo {
fn get_dvs_config_info(&self) -> &super::structs::DvsConfigInfo { &self.dvs_config_info_ }
fn get_dvs_config_info_mut(&mut self) -> &mut super::structs::DvsConfigInfo { &mut self.dvs_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsConfigInfo => Some(from.as_any_ref().downcast_ref::<DvsConfigInfo>()?),
StructType::VMwareDvsConfigInfo => Some(from.as_any_ref().downcast_ref::<VMwareDvsConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsConfigInfo => Ok(from.as_any_box().downcast::<DvsConfigInfo>()?),
StructType::VMwareDvsConfigInfo => Ok(from.as_any_box().downcast::<VMwareDvsConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DVSConfigSpec*
/// data object contains configuration data for a
/// *DistributedVirtualSwitch*.
///
/// Use the *DistributedVirtualSwitch.ReconfigureDvs_Task*
/// method to apply the configuration to the
/// switch.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec)`
/// - `Folder::create_dvs_task(spec).config_spec`
/// - `StoragePod::create_dvs_task(spec).config_spec`
/// - `DistributedVirtualSwitch::reconfigure_dvs_task(spec)`
/// - `VsanVdsSystem::vsan_vds_get_migration_plan().vds_spec.config_spec`
/// - `VsanVdsSystem::vsan_vds_migrate_vss(migration_plan).vds_spec.config_spec`
pub trait DvsConfigSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvsConfigSpec parent struct
fn get_dvs_config_spec(&self) -> &super::structs::DvsConfigSpec;
/// Get a mutable reference to the DvsConfigSpec parent struct
fn get_dvs_config_spec_mut(&mut self) -> &mut super::structs::DvsConfigSpec;
}
impl std::ops::Deref for dyn DvsConfigSpecTrait {
type Target = super::structs::DvsConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_dvs_config_spec()
}
}
impl std::ops::DerefMut for dyn DvsConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsConfigSpec"),
__out: &mut self.out,
}))
}
}
struct DvsConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsConfigSpecTrait>>,
}
impl miniserde::de::Map for DvsConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsConfigSpecTrait for DvsConfigSpec {
fn get_dvs_config_spec(&self) -> &super::structs::DvsConfigSpec { &self }
fn get_dvs_config_spec_mut(&mut self) -> &mut super::structs::DvsConfigSpec { self }
}
impl DvsConfigSpecTrait for VMwareDvsConfigSpec {
fn get_dvs_config_spec(&self) -> &super::structs::DvsConfigSpec { &self.dvs_config_spec_ }
fn get_dvs_config_spec_mut(&mut self) -> &mut super::structs::DvsConfigSpec { &mut self.dvs_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsConfigSpec>()?),
StructType::VMwareDvsConfigSpec => Some(from.as_any_ref().downcast_ref::<VMwareDvsConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsConfigSpec => Ok(from.as_any_box().downcast::<DvsConfigSpec>()?),
StructType::VMwareDvsConfigSpec => Ok(from.as_any_box().downcast::<VMwareDvsConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DVSFeatureCapability* data object
/// represents the capabilities supported by a
/// *DistributedVirtualSwitch*.
///
/// These properties are read-only with
/// the exception of
/// *DVSFeatureCapability.vmDirectPathGen2Supported*.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::capability.features_supported?`
/// - `DistributedVirtualSwitch::capability.features_supported?`
/// - `VmwareDistributedVirtualSwitch::update_dvs_capability(capability).features_supported?`
/// - `Folder::create_dvs_task(spec).capability?.features_supported?`
/// - `StoragePod::create_dvs_task(spec).capability?.features_supported?`
/// - `DistributedVirtualSwitch::update_dvs_capability(capability).features_supported?`
/// - `DistributedVirtualSwitchManager::query_dvs_feature_capability()`
/// - `VsanVdsSystem::vsan_vds_get_migration_plan().vds_spec.capability?.features_supported?`
/// - `VsanVdsSystem::vsan_vds_migrate_vss(migration_plan).vds_spec.capability?.features_supported?`
pub trait DvsFeatureCapabilityTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvsFeatureCapability parent struct
fn get_dvs_feature_capability(&self) -> &super::structs::DvsFeatureCapability;
/// Get a mutable reference to the DvsFeatureCapability parent struct
fn get_dvs_feature_capability_mut(&mut self) -> &mut super::structs::DvsFeatureCapability;
}
impl std::ops::Deref for dyn DvsFeatureCapabilityTrait {
type Target = super::structs::DvsFeatureCapability;
fn deref(&self) -> &Self::Target {
self.get_dvs_feature_capability()
}
}
impl std::ops::DerefMut for dyn DvsFeatureCapabilityTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_feature_capability_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsFeatureCapabilityTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsFeatureCapabilityTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsFeatureCapabilityTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsFeatureCapability"),
__out: &mut self.out,
}))
}
}
struct DvsFeatureCapabilityTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsFeatureCapabilityTrait>>,
}
impl miniserde::de::Map for DvsFeatureCapabilityTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsFeatureCapabilityTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsFeatureCapabilityTrait for DvsFeatureCapability {
fn get_dvs_feature_capability(&self) -> &super::structs::DvsFeatureCapability { &self }
fn get_dvs_feature_capability_mut(&mut self) -> &mut super::structs::DvsFeatureCapability { self }
}
impl DvsFeatureCapabilityTrait for VMwareDvsFeatureCapability {
fn get_dvs_feature_capability(&self) -> &super::structs::DvsFeatureCapability { &self.dvs_feature_capability_ }
fn get_dvs_feature_capability_mut(&mut self) -> &mut super::structs::DvsFeatureCapability { &mut self.dvs_feature_capability_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsFeatureCapabilityTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsFeatureCapability => Some(from.as_any_ref().downcast_ref::<DvsFeatureCapability>()?),
StructType::VMwareDvsFeatureCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsFeatureCapability>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsFeatureCapability => Ok(from.as_any_box().downcast::<DvsFeatureCapability>()?),
StructType::VMwareDvsFeatureCapability => Ok(from.as_any_box().downcast::<VMwareDvsFeatureCapability>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DVSHealthCheckConfig* data object
/// defines vSphere Distributed Switch health check configuration.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::config.health_check_config?[*]`
/// - `DistributedVirtualSwitch::config.health_check_config?[*]`
/// - `VmwareDistributedVirtualSwitch::update_dvs_health_check_config_task(health_check_config)`
/// - `DistributedVirtualSwitch::update_dvs_health_check_config_task(health_check_config)`
pub trait DvsHealthCheckConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvsHealthCheckConfig parent struct
fn get_dvs_health_check_config(&self) -> &super::structs::DvsHealthCheckConfig;
/// Get a mutable reference to the DvsHealthCheckConfig parent struct
fn get_dvs_health_check_config_mut(&mut self) -> &mut super::structs::DvsHealthCheckConfig;
}
impl std::ops::Deref for dyn DvsHealthCheckConfigTrait {
type Target = super::structs::DvsHealthCheckConfig;
fn deref(&self) -> &Self::Target {
self.get_dvs_health_check_config()
}
}
impl std::ops::DerefMut for dyn DvsHealthCheckConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_health_check_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsHealthCheckConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsHealthCheckConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsHealthCheckConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsHealthCheckConfig"),
__out: &mut self.out,
}))
}
}
struct DvsHealthCheckConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsHealthCheckConfigTrait>>,
}
impl miniserde::de::Map for DvsHealthCheckConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsHealthCheckConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsHealthCheckConfigTrait for DvsHealthCheckConfig {
fn get_dvs_health_check_config(&self) -> &super::structs::DvsHealthCheckConfig { &self }
fn get_dvs_health_check_config_mut(&mut self) -> &mut super::structs::DvsHealthCheckConfig { self }
}
impl DvsHealthCheckConfigTrait for VMwareDvsHealthCheckConfig {
fn get_dvs_health_check_config(&self) -> &super::structs::DvsHealthCheckConfig { &self.dvs_health_check_config_ }
fn get_dvs_health_check_config_mut(&mut self) -> &mut super::structs::DvsHealthCheckConfig { &mut self.dvs_health_check_config_ }
}
impl DvsHealthCheckConfigTrait for VMwareDvsTeamingHealthCheckConfig {
fn get_dvs_health_check_config(&self) -> &super::structs::DvsHealthCheckConfig { &self.v_mware_dvs_health_check_config_.dvs_health_check_config_ }
fn get_dvs_health_check_config_mut(&mut self) -> &mut super::structs::DvsHealthCheckConfig { &mut self.v_mware_dvs_health_check_config_.dvs_health_check_config_ }
}
impl DvsHealthCheckConfigTrait for VMwareDvsVlanMtuHealthCheckConfig {
fn get_dvs_health_check_config(&self) -> &super::structs::DvsHealthCheckConfig { &self.v_mware_dvs_health_check_config_.dvs_health_check_config_ }
fn get_dvs_health_check_config_mut(&mut self) -> &mut super::structs::DvsHealthCheckConfig { &mut self.v_mware_dvs_health_check_config_.dvs_health_check_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsHealthCheckConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<DvsHealthCheckConfig>()?),
StructType::VMwareDvsHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanMtuHealthCheckConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsHealthCheckConfig => Ok(from.as_any_box().downcast::<DvsHealthCheckConfig>()?),
StructType::VMwareDvsHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsVlanMtuHealthCheckConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines health check configuration for
/// VMware vSphere Distributed Switch.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::config.health_check_config?[*]⇒VMwareDvsHealthCheckConfigTrait`
/// - `DistributedVirtualSwitch::config.health_check_config?[*]⇒VMwareDvsHealthCheckConfigTrait`
/// - `VmwareDistributedVirtualSwitch::update_dvs_health_check_config_task(health_check_config)⇒VMwareDvsHealthCheckConfigTrait`
/// - `DistributedVirtualSwitch::update_dvs_health_check_config_task(health_check_config)⇒VMwareDvsHealthCheckConfigTrait`
pub trait VMwareDvsHealthCheckConfigTrait : super::traits::DvsHealthCheckConfigTrait {
/// Get a reference to the VMwareDvsHealthCheckConfig parent struct
fn get_v_mware_dvs_health_check_config(&self) -> &super::structs::VMwareDvsHealthCheckConfig;
/// Get a mutable reference to the VMwareDvsHealthCheckConfig parent struct
fn get_v_mware_dvs_health_check_config_mut(&mut self) -> &mut super::structs::VMwareDvsHealthCheckConfig;
}
impl std::ops::Deref for dyn VMwareDvsHealthCheckConfigTrait {
type Target = super::structs::VMwareDvsHealthCheckConfig;
fn deref(&self) -> &Self::Target {
self.get_v_mware_dvs_health_check_config()
}
}
impl std::ops::DerefMut for dyn VMwareDvsHealthCheckConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_v_mware_dvs_health_check_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VMwareDvsHealthCheckConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VMwareDvsHealthCheckConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VMwareDvsHealthCheckConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VMwareDvsHealthCheckConfig"),
__out: &mut self.out,
}))
}
}
struct VMwareDvsHealthCheckConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VMwareDvsHealthCheckConfigTrait>>,
}
impl miniserde::de::Map for VMwareDvsHealthCheckConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VMwareDvsHealthCheckConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VMwareDvsHealthCheckConfigTrait for VMwareDvsHealthCheckConfig {
fn get_v_mware_dvs_health_check_config(&self) -> &super::structs::VMwareDvsHealthCheckConfig { &self }
fn get_v_mware_dvs_health_check_config_mut(&mut self) -> &mut super::structs::VMwareDvsHealthCheckConfig { self }
}
impl VMwareDvsHealthCheckConfigTrait for VMwareDvsTeamingHealthCheckConfig {
fn get_v_mware_dvs_health_check_config(&self) -> &super::structs::VMwareDvsHealthCheckConfig { &self.v_mware_dvs_health_check_config_ }
fn get_v_mware_dvs_health_check_config_mut(&mut self) -> &mut super::structs::VMwareDvsHealthCheckConfig { &mut self.v_mware_dvs_health_check_config_ }
}
impl VMwareDvsHealthCheckConfigTrait for VMwareDvsVlanMtuHealthCheckConfig {
fn get_v_mware_dvs_health_check_config(&self) -> &super::structs::VMwareDvsHealthCheckConfig { &self.v_mware_dvs_health_check_config_ }
fn get_v_mware_dvs_health_check_config_mut(&mut self) -> &mut super::structs::VMwareDvsHealthCheckConfig { &mut self.v_mware_dvs_health_check_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VMwareDvsHealthCheckConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VMwareDvsHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanMtuHealthCheckConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VMwareDvsHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsHealthCheckConfig>()?),
StructType::VMwareDvsTeamingHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsTeamingHealthCheckConfig>()?),
StructType::VMwareDvsVlanMtuHealthCheckConfig => Ok(from.as_any_box().downcast::<VMwareDvsVlanMtuHealthCheckConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Health check capabilities of health check supported by the
/// vSphere Distributed Switch
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::capability.features_supported?.health_check_capability?`
/// - `DistributedVirtualSwitch::capability.features_supported?.health_check_capability?`
/// - `VmwareDistributedVirtualSwitch::update_dvs_capability(capability).features_supported?.health_check_capability?`
/// - `Folder::create_dvs_task(spec).capability?.features_supported?.health_check_capability?`
/// - `StoragePod::create_dvs_task(spec).capability?.features_supported?.health_check_capability?`
/// - `DistributedVirtualSwitch::update_dvs_capability(capability).features_supported?.health_check_capability?`
/// - `DistributedVirtualSwitchManager::query_dvs_feature_capability().health_check_capability?`
/// - `VsanVdsSystem::vsan_vds_get_migration_plan().vds_spec.capability?.features_supported?.health_check_capability?`
/// - `VsanVdsSystem::vsan_vds_migrate_vss(migration_plan).vds_spec.capability?.features_supported?.health_check_capability?`
pub trait DvsHealthCheckCapabilityTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DvsHealthCheckCapabilityTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsHealthCheckCapabilityTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsHealthCheckCapabilityTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsHealthCheckCapability"),
__out: &mut self.out,
}))
}
}
struct DvsHealthCheckCapabilityTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsHealthCheckCapabilityTrait>>,
}
impl miniserde::de::Map for DvsHealthCheckCapabilityTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsHealthCheckCapabilityTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsHealthCheckCapabilityTrait for DvsHealthCheckCapability {
}
impl DvsHealthCheckCapabilityTrait for VMwareDvsHealthCheckCapability {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsHealthCheckCapabilityTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsHealthCheckCapability => Some(from.as_any_ref().downcast_ref::<DvsHealthCheckCapability>()?),
StructType::VMwareDvsHealthCheckCapability => Some(from.as_any_ref().downcast_ref::<VMwareDvsHealthCheckCapability>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsHealthCheckCapability => Ok(from.as_any_box().downcast::<DvsHealthCheckCapability>()?),
StructType::VMwareDvsHealthCheckCapability => Ok(from.as_any_box().downcast::<VMwareDvsHealthCheckCapability>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class for uplink port policy.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::config.uplink_port_policy`
/// - `DistributedVirtualSwitch::config.uplink_port_policy`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).uplink_port_policy?`
/// - `Folder::create_dvs_task(spec).config_spec.uplink_port_policy?`
/// - `StoragePod::create_dvs_task(spec).config_spec.uplink_port_policy?`
/// - `DistributedVirtualSwitch::reconfigure_dvs_task(spec).uplink_port_policy?`
/// - `VsanVdsSystem::vsan_vds_get_migration_plan().vds_spec.config_spec.uplink_port_policy?`
/// - `VsanVdsSystem::vsan_vds_migrate_vss(migration_plan).vds_spec.config_spec.uplink_port_policy?`
pub trait DvsUplinkPortPolicyTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DvsUplinkPortPolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsUplinkPortPolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsUplinkPortPolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsUplinkPortPolicy"),
__out: &mut self.out,
}))
}
}
struct DvsUplinkPortPolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsUplinkPortPolicyTrait>>,
}
impl miniserde::de::Map for DvsUplinkPortPolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsUplinkPortPolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsUplinkPortPolicyTrait for DvsUplinkPortPolicy {
}
impl DvsUplinkPortPolicyTrait for DvsNameArrayUplinkPortPolicy {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsUplinkPortPolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsUplinkPortPolicy => Some(from.as_any_ref().downcast_ref::<DvsUplinkPortPolicy>()?),
StructType::DvsNameArrayUplinkPortPolicy => Some(from.as_any_ref().downcast_ref::<DvsNameArrayUplinkPortPolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsUplinkPortPolicy => Ok(from.as_any_box().downcast::<DvsUplinkPortPolicy>()?),
StructType::DvsNameArrayUplinkPortPolicy => Ok(from.as_any_box().downcast::<DvsNameArrayUplinkPortPolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base data type for all different spec operations.
///
/// ***Since:*** vSphere API Release 9.0.0.0
pub trait HbrReplicationTargetSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HbrReplicationTargetSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HbrReplicationTargetSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HbrReplicationTargetSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HbrReplicationTargetSpec"),
__out: &mut self.out,
}))
}
}
struct HbrReplicationTargetSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HbrReplicationTargetSpecTrait>>,
}
impl miniserde::de::Map for HbrReplicationTargetSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HbrReplicationTargetSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HbrReplicationTargetSpecTrait for HbrReplicationTargetSpec {
}
impl HbrReplicationTargetSpecTrait for HbrTargetSpecReplacement {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HbrReplicationTargetSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HbrReplicationTargetSpec => Some(from.as_any_ref().downcast_ref::<HbrReplicationTargetSpec>()?),
StructType::HbrTargetSpecReplacement => Some(from.as_any_ref().downcast_ref::<HbrTargetSpecReplacement>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HbrReplicationTargetSpec => Ok(from.as_any_box().downcast::<HbrReplicationTargetSpec>()?),
StructType::HbrTargetSpecReplacement => Ok(from.as_any_box().downcast::<HbrTargetSpecReplacement>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An ImportSpec is used when importing VMs or vApps.
///
/// It can be built from scratch, or it can be generated from an OVF descriptor using the
/// service interface *OvfManager*.
///
/// This class is the abstract base for *VirtualMachineImportSpec* and
/// *VirtualAppImportSpec*. These three classes form a composite structure
/// that allows us to contain arbitrarily complex entitites in a single ImportSpec.
///
/// ### How to access
/// - `ResourcePool::import_v_app(spec)`
/// - `VirtualApp::import_v_app(spec)`
/// - `OvfManager::create_import_spec().import_spec?`
pub trait ImportSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the ImportSpec parent struct
fn get_import_spec(&self) -> &super::structs::ImportSpec;
/// Get a mutable reference to the ImportSpec parent struct
fn get_import_spec_mut(&mut self) -> &mut super::structs::ImportSpec;
}
impl std::ops::Deref for dyn ImportSpecTrait {
type Target = super::structs::ImportSpec;
fn deref(&self) -> &Self::Target {
self.get_import_spec()
}
}
impl std::ops::DerefMut for dyn ImportSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_import_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ImportSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ImportSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ImportSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ImportSpec"),
__out: &mut self.out,
}))
}
}
struct ImportSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ImportSpecTrait>>,
}
impl miniserde::de::Map for ImportSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ImportSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ImportSpecTrait for ImportSpec {
fn get_import_spec(&self) -> &super::structs::ImportSpec { &self }
fn get_import_spec_mut(&mut self) -> &mut super::structs::ImportSpec { self }
}
impl ImportSpecTrait for VirtualAppImportSpec {
fn get_import_spec(&self) -> &super::structs::ImportSpec { &self.import_spec_ }
fn get_import_spec_mut(&mut self) -> &mut super::structs::ImportSpec { &mut self.import_spec_ }
}
impl ImportSpecTrait for VirtualMachineImportSpec {
fn get_import_spec(&self) -> &super::structs::ImportSpec { &self.import_spec_ }
fn get_import_spec_mut(&mut self) -> &mut super::structs::ImportSpec { &mut self.import_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ImportSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ImportSpec => Some(from.as_any_ref().downcast_ref::<ImportSpec>()?),
StructType::VirtualAppImportSpec => Some(from.as_any_ref().downcast_ref::<VirtualAppImportSpec>()?),
StructType::VirtualMachineImportSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineImportSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ImportSpec => Ok(from.as_any_box().downcast::<ImportSpec>()?),
StructType::VirtualAppImportSpec => Ok(from.as_any_box().downcast::<VirtualAppImportSpec>()?),
StructType::VirtualMachineImportSpec => Ok(from.as_any_box().downcast::<VirtualMachineImportSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class for any type of setting or configuration that may get a
/// inherited value.
///
/// When used in a reconfigure operation specification, if *InheritablePolicy.inherited* is true,
/// it specifies the intention to change the values of subclass's properties to the
/// inherited values from the level above. In this case, users don't need to specify
/// the values and any set property in the subclass will be ignored.
/// if *InheritablePolicy.inherited* is false, it specifies the intention to explicitly set
/// subclass's properties to user specified values. Users should set the properties in
/// the subclass with the desired values.
///
/// When used in a configuration information object, The values of the properties in
/// the subclass are the effective values. if *InheritablePolicy.inherited* is true, the object
/// is getting the effective values from upper level. If false, the values are
/// explicitly set by a user.
pub trait InheritablePolicyTrait : super::traits::DataObjectTrait {
/// Get a reference to the InheritablePolicy parent struct
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy;
/// Get a mutable reference to the InheritablePolicy parent struct
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy;
}
impl std::ops::Deref for dyn InheritablePolicyTrait {
type Target = super::structs::InheritablePolicy;
fn deref(&self) -> &Self::Target {
self.get_inheritable_policy()
}
}
impl std::ops::DerefMut for dyn InheritablePolicyTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_inheritable_policy_mut()
}
}
impl miniserde::Deserialize for Box<dyn InheritablePolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn InheritablePolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(InheritablePolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("InheritablePolicy"),
__out: &mut self.out,
}))
}
}
struct InheritablePolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn InheritablePolicyTrait>>,
}
impl miniserde::de::Map for InheritablePolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn InheritablePolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl InheritablePolicyTrait for InheritablePolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { self }
}
impl InheritablePolicyTrait for BoolPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for IntPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for LongPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for StringPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsFilterConfig {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsFilterConfigSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.dvs_filter_config_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.dvs_filter_config_.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsTrafficFilterConfig {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.dvs_filter_config_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.dvs_filter_config_.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsTrafficFilterConfigSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.dvs_traffic_filter_config_.dvs_filter_config_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.dvs_traffic_filter_config_.dvs_filter_config_.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsFilterPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsTrafficShapingPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsVendorSpecificConfig {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsFailureCriteria {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsMacLearningPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsMacManagementPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for DvsSecurityPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for VMwareUplinkLacpPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for VMwareUplinkPortOrderPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for VmwareUplinkPortTeamingPolicy {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for VmwareDistributedVirtualSwitchVlanSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.inheritable_policy_ }
}
impl InheritablePolicyTrait for VmwareDistributedVirtualSwitchPvlanSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
}
impl InheritablePolicyTrait for VmwareDistributedVirtualSwitchTrunkVlanSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
}
impl InheritablePolicyTrait for VmwareDistributedVirtualSwitchVlanIdSpec {
fn get_inheritable_policy(&self) -> &super::structs::InheritablePolicy { &self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
fn get_inheritable_policy_mut(&mut self) -> &mut super::structs::InheritablePolicy { &mut self.vmware_distributed_virtual_switch_vlan_spec_.inheritable_policy_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn InheritablePolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::InheritablePolicy => Some(from.as_any_ref().downcast_ref::<InheritablePolicy>()?),
StructType::BoolPolicy => Some(from.as_any_ref().downcast_ref::<BoolPolicy>()?),
StructType::IntPolicy => Some(from.as_any_ref().downcast_ref::<IntPolicy>()?),
StructType::LongPolicy => Some(from.as_any_ref().downcast_ref::<LongPolicy>()?),
StructType::StringPolicy => Some(from.as_any_ref().downcast_ref::<StringPolicy>()?),
StructType::DvsFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfigSpec>()?),
StructType::DvsFilterPolicy => Some(from.as_any_ref().downcast_ref::<DvsFilterPolicy>()?),
StructType::DvsTrafficShapingPolicy => Some(from.as_any_ref().downcast_ref::<DvsTrafficShapingPolicy>()?),
StructType::DvsVendorSpecificConfig => Some(from.as_any_ref().downcast_ref::<DvsVendorSpecificConfig>()?),
StructType::DvsFailureCriteria => Some(from.as_any_ref().downcast_ref::<DvsFailureCriteria>()?),
StructType::DvsMacLearningPolicy => Some(from.as_any_ref().downcast_ref::<DvsMacLearningPolicy>()?),
StructType::DvsMacManagementPolicy => Some(from.as_any_ref().downcast_ref::<DvsMacManagementPolicy>()?),
StructType::DvsSecurityPolicy => Some(from.as_any_ref().downcast_ref::<DvsSecurityPolicy>()?),
StructType::VMwareUplinkLacpPolicy => Some(from.as_any_ref().downcast_ref::<VMwareUplinkLacpPolicy>()?),
StructType::VMwareUplinkPortOrderPolicy => Some(from.as_any_ref().downcast_ref::<VMwareUplinkPortOrderPolicy>()?),
StructType::VmwareUplinkPortTeamingPolicy => Some(from.as_any_ref().downcast_ref::<VmwareUplinkPortTeamingPolicy>()?),
StructType::VmwareDistributedVirtualSwitchVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::InheritablePolicy => Ok(from.as_any_box().downcast::<InheritablePolicy>()?),
StructType::BoolPolicy => Ok(from.as_any_box().downcast::<BoolPolicy>()?),
StructType::IntPolicy => Ok(from.as_any_box().downcast::<IntPolicy>()?),
StructType::LongPolicy => Ok(from.as_any_box().downcast::<LongPolicy>()?),
StructType::StringPolicy => Ok(from.as_any_box().downcast::<StringPolicy>()?),
StructType::DvsFilterConfig => Ok(from.as_any_box().downcast::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfigSpec>()?),
StructType::DvsFilterPolicy => Ok(from.as_any_box().downcast::<DvsFilterPolicy>()?),
StructType::DvsTrafficShapingPolicy => Ok(from.as_any_box().downcast::<DvsTrafficShapingPolicy>()?),
StructType::DvsVendorSpecificConfig => Ok(from.as_any_box().downcast::<DvsVendorSpecificConfig>()?),
StructType::DvsFailureCriteria => Ok(from.as_any_box().downcast::<DvsFailureCriteria>()?),
StructType::DvsMacLearningPolicy => Ok(from.as_any_box().downcast::<DvsMacLearningPolicy>()?),
StructType::DvsMacManagementPolicy => Ok(from.as_any_box().downcast::<DvsMacManagementPolicy>()?),
StructType::DvsSecurityPolicy => Ok(from.as_any_box().downcast::<DvsSecurityPolicy>()?),
StructType::VMwareUplinkLacpPolicy => Ok(from.as_any_box().downcast::<VMwareUplinkLacpPolicy>()?),
StructType::VMwareUplinkPortOrderPolicy => Ok(from.as_any_box().downcast::<VMwareUplinkPortOrderPolicy>()?),
StructType::VmwareUplinkPortTeamingPolicy => Ok(from.as_any_box().downcast::<VmwareUplinkPortTeamingPolicy>()?),
StructType::VmwareDistributedVirtualSwitchVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines Network Filter configuration.
///
/// ** Supported Qualifier and Actions **
/// <table border="1"width="100%">
/// <tr>
/// <th>Network Filter Config</th>
/// <th>Supported classes</th>
/// </tr>
/// <tr>
/// <td>Qualifiers supported</td>
/// <td>*SingleIp*, *IpRange*,
/// *SingleMac*, *MacRange*,
/// *DvsSingleIpPort*,
/// *DvsSystemTrafficNetworkRuleQualifier*
/// </td>
/// </tr>
/// <tr>
/// <td>Actions Supported</td>
/// <td>*DvsDropNetworkRuleAction*,
/// *DvsAcceptNetworkRuleAction*,
/// *DvsPuntNetworkRuleAction*,
/// *DvsCopyNetworkRuleAction*,
/// *DvsMacRewriteNetworkRuleAction*,
/// *DvsGreEncapNetworkRuleAction*,
/// *DvsLogNetworkRuleAction*,
/// *DvsUpdateTagNetworkRuleAction*,
/// *DvsRateLimitNetworkRuleAction*
/// </td>
/// </tr>
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?.filter_policy?.filter_config?[*]`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?.filter_policy?.filter_config?[*]`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]`
///
/// *(10 of 20 paths)*
pub trait DvsFilterConfigTrait : super::traits::InheritablePolicyTrait {
/// Get a reference to the DvsFilterConfig parent struct
fn get_dvs_filter_config(&self) -> &super::structs::DvsFilterConfig;
/// Get a mutable reference to the DvsFilterConfig parent struct
fn get_dvs_filter_config_mut(&mut self) -> &mut super::structs::DvsFilterConfig;
}
impl std::ops::Deref for dyn DvsFilterConfigTrait {
type Target = super::structs::DvsFilterConfig;
fn deref(&self) -> &Self::Target {
self.get_dvs_filter_config()
}
}
impl std::ops::DerefMut for dyn DvsFilterConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_filter_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsFilterConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsFilterConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsFilterConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsFilterConfig"),
__out: &mut self.out,
}))
}
}
struct DvsFilterConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsFilterConfigTrait>>,
}
impl miniserde::de::Map for DvsFilterConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsFilterConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsFilterConfigTrait for DvsFilterConfig {
fn get_dvs_filter_config(&self) -> &super::structs::DvsFilterConfig { &self }
fn get_dvs_filter_config_mut(&mut self) -> &mut super::structs::DvsFilterConfig { self }
}
impl DvsFilterConfigTrait for DvsFilterConfigSpec {
fn get_dvs_filter_config(&self) -> &super::structs::DvsFilterConfig { &self.dvs_filter_config_ }
fn get_dvs_filter_config_mut(&mut self) -> &mut super::structs::DvsFilterConfig { &mut self.dvs_filter_config_ }
}
impl DvsFilterConfigTrait for DvsTrafficFilterConfig {
fn get_dvs_filter_config(&self) -> &super::structs::DvsFilterConfig { &self.dvs_filter_config_ }
fn get_dvs_filter_config_mut(&mut self) -> &mut super::structs::DvsFilterConfig { &mut self.dvs_filter_config_ }
}
impl DvsFilterConfigTrait for DvsTrafficFilterConfigSpec {
fn get_dvs_filter_config(&self) -> &super::structs::DvsFilterConfig { &self.dvs_traffic_filter_config_.dvs_filter_config_ }
fn get_dvs_filter_config_mut(&mut self) -> &mut super::structs::DvsFilterConfig { &mut self.dvs_traffic_filter_config_.dvs_filter_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsFilterConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterConfig => Ok(from.as_any_box().downcast::<DvsFilterConfig>()?),
StructType::DvsFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsFilterConfigSpec>()?),
StructType::DvsTrafficFilterConfig => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines Traffic Filter configuration.
///
/// ** Supported Qualifier and Actions **
/// <table border="1"width="100%">
/// <tr>
/// <th>Traffic Filter Config</th>
/// <th>Supported classes</th>
/// </tr>
/// <tr>
/// <td>Qualifiers supported</td>
/// <td>*SingleIp*, *IpRange*,
/// *SingleMac*, *MacRange*,
/// *DvsSingleIpPort*,
/// *DvsSystemTrafficNetworkRuleQualifier*
/// </td>
/// </tr>
/// <tr>
/// <td>Actions Supported</td>
/// <td>*DvsDropNetworkRuleAction*,
/// *DvsAcceptNetworkRuleAction*,
/// *DvsPuntNetworkRuleAction*,
/// *DvsCopyNetworkRuleAction*,
/// *DvsMacRewriteNetworkRuleAction*,
/// *DvsGreEncapNetworkRuleAction*,
/// *DvsLogNetworkRuleAction*,
/// *DvsUpdateTagNetworkRuleAction*,
/// *DvsRateLimitNetworkRuleAction*
/// </td>
/// </tr>
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait`
///
/// *(10 of 20 paths)*
pub trait DvsTrafficFilterConfigTrait : super::traits::DvsFilterConfigTrait {
/// Get a reference to the DvsTrafficFilterConfig parent struct
fn get_dvs_traffic_filter_config(&self) -> &super::structs::DvsTrafficFilterConfig;
/// Get a mutable reference to the DvsTrafficFilterConfig parent struct
fn get_dvs_traffic_filter_config_mut(&mut self) -> &mut super::structs::DvsTrafficFilterConfig;
}
impl std::ops::Deref for dyn DvsTrafficFilterConfigTrait {
type Target = super::structs::DvsTrafficFilterConfig;
fn deref(&self) -> &Self::Target {
self.get_dvs_traffic_filter_config()
}
}
impl std::ops::DerefMut for dyn DvsTrafficFilterConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_traffic_filter_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsTrafficFilterConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsTrafficFilterConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsTrafficFilterConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsTrafficFilterConfig"),
__out: &mut self.out,
}))
}
}
struct DvsTrafficFilterConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsTrafficFilterConfigTrait>>,
}
impl miniserde::de::Map for DvsTrafficFilterConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsTrafficFilterConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsTrafficFilterConfigTrait for DvsTrafficFilterConfig {
fn get_dvs_traffic_filter_config(&self) -> &super::structs::DvsTrafficFilterConfig { &self }
fn get_dvs_traffic_filter_config_mut(&mut self) -> &mut super::structs::DvsTrafficFilterConfig { self }
}
impl DvsTrafficFilterConfigTrait for DvsTrafficFilterConfigSpec {
fn get_dvs_traffic_filter_config(&self) -> &super::structs::DvsTrafficFilterConfig { &self.dvs_traffic_filter_config_ }
fn get_dvs_traffic_filter_config_mut(&mut self) -> &mut super::structs::DvsTrafficFilterConfig { &mut self.dvs_traffic_filter_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsTrafficFilterConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsTrafficFilterConfig => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Some(from.as_any_ref().downcast_ref::<DvsTrafficFilterConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsTrafficFilterConfig => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfig>()?),
StructType::DvsTrafficFilterConfigSpec => Ok(from.as_any_box().downcast::<DvsTrafficFilterConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for Vlan Specifiation for ports.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config→VMwareDvsPortSetting.vlan?`
/// - `DistributedVirtualSwitch::config.default_port_config→VMwareDvsPortSetting.vlan?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?→VMwareDvsPortSetting.vlan?`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?→VMwareDvsPortSetting.vlan?`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?→VMwareDvsPortSetting.vlan?`
///
/// *(10 of 22 paths)*
pub trait VmwareDistributedVirtualSwitchVlanSpecTrait : super::traits::InheritablePolicyTrait {
/// Get a reference to the VmwareDistributedVirtualSwitchVlanSpec parent struct
fn get_vmware_distributed_virtual_switch_vlan_spec(&self) -> &super::structs::VmwareDistributedVirtualSwitchVlanSpec;
/// Get a mutable reference to the VmwareDistributedVirtualSwitchVlanSpec parent struct
fn get_vmware_distributed_virtual_switch_vlan_spec_mut(&mut self) -> &mut super::structs::VmwareDistributedVirtualSwitchVlanSpec;
}
impl std::ops::Deref for dyn VmwareDistributedVirtualSwitchVlanSpecTrait {
type Target = super::structs::VmwareDistributedVirtualSwitchVlanSpec;
fn deref(&self) -> &Self::Target {
self.get_vmware_distributed_virtual_switch_vlan_spec()
}
}
impl std::ops::DerefMut for dyn VmwareDistributedVirtualSwitchVlanSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vmware_distributed_virtual_switch_vlan_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmwareDistributedVirtualSwitchVlanSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmwareDistributedVirtualSwitchVlanSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmwareDistributedVirtualSwitchVlanSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmwareDistributedVirtualSwitchVlanSpec"),
__out: &mut self.out,
}))
}
}
struct VmwareDistributedVirtualSwitchVlanSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmwareDistributedVirtualSwitchVlanSpecTrait>>,
}
impl miniserde::de::Map for VmwareDistributedVirtualSwitchVlanSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmwareDistributedVirtualSwitchVlanSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmwareDistributedVirtualSwitchVlanSpecTrait for VmwareDistributedVirtualSwitchVlanSpec {
fn get_vmware_distributed_virtual_switch_vlan_spec(&self) -> &super::structs::VmwareDistributedVirtualSwitchVlanSpec { &self }
fn get_vmware_distributed_virtual_switch_vlan_spec_mut(&mut self) -> &mut super::structs::VmwareDistributedVirtualSwitchVlanSpec { self }
}
impl VmwareDistributedVirtualSwitchVlanSpecTrait for VmwareDistributedVirtualSwitchPvlanSpec {
fn get_vmware_distributed_virtual_switch_vlan_spec(&self) -> &super::structs::VmwareDistributedVirtualSwitchVlanSpec { &self.vmware_distributed_virtual_switch_vlan_spec_ }
fn get_vmware_distributed_virtual_switch_vlan_spec_mut(&mut self) -> &mut super::structs::VmwareDistributedVirtualSwitchVlanSpec { &mut self.vmware_distributed_virtual_switch_vlan_spec_ }
}
impl VmwareDistributedVirtualSwitchVlanSpecTrait for VmwareDistributedVirtualSwitchTrunkVlanSpec {
fn get_vmware_distributed_virtual_switch_vlan_spec(&self) -> &super::structs::VmwareDistributedVirtualSwitchVlanSpec { &self.vmware_distributed_virtual_switch_vlan_spec_ }
fn get_vmware_distributed_virtual_switch_vlan_spec_mut(&mut self) -> &mut super::structs::VmwareDistributedVirtualSwitchVlanSpec { &mut self.vmware_distributed_virtual_switch_vlan_spec_ }
}
impl VmwareDistributedVirtualSwitchVlanSpecTrait for VmwareDistributedVirtualSwitchVlanIdSpec {
fn get_vmware_distributed_virtual_switch_vlan_spec(&self) -> &super::structs::VmwareDistributedVirtualSwitchVlanSpec { &self.vmware_distributed_virtual_switch_vlan_spec_ }
fn get_vmware_distributed_virtual_switch_vlan_spec_mut(&mut self) -> &mut super::structs::VmwareDistributedVirtualSwitchVlanSpec { &mut self.vmware_distributed_virtual_switch_vlan_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmwareDistributedVirtualSwitchVlanSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmwareDistributedVirtualSwitchVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Some(from.as_any_ref().downcast_ref::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmwareDistributedVirtualSwitchVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchPvlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchPvlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchTrunkVlanSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchTrunkVlanSpec>()?),
StructType::VmwareDistributedVirtualSwitchVlanIdSpec => Ok(from.as_any_box().downcast::<VmwareDistributedVirtualSwitchVlanIdSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Information about an IO Filter.
pub trait IoFilterInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the IoFilterInfo parent struct
fn get_io_filter_info(&self) -> &super::structs::IoFilterInfo;
/// Get a mutable reference to the IoFilterInfo parent struct
fn get_io_filter_info_mut(&mut self) -> &mut super::structs::IoFilterInfo;
}
impl std::ops::Deref for dyn IoFilterInfoTrait {
type Target = super::structs::IoFilterInfo;
fn deref(&self) -> &Self::Target {
self.get_io_filter_info()
}
}
impl std::ops::DerefMut for dyn IoFilterInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_io_filter_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn IoFilterInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn IoFilterInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(IoFilterInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("IoFilterInfo"),
__out: &mut self.out,
}))
}
}
struct IoFilterInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn IoFilterInfoTrait>>,
}
impl miniserde::de::Map for IoFilterInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn IoFilterInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl IoFilterInfoTrait for IoFilterInfo {
fn get_io_filter_info(&self) -> &super::structs::IoFilterInfo { &self }
fn get_io_filter_info_mut(&mut self) -> &mut super::structs::IoFilterInfo { self }
}
impl IoFilterInfoTrait for ClusterIoFilterInfo {
fn get_io_filter_info(&self) -> &super::structs::IoFilterInfo { &self.io_filter_info_ }
fn get_io_filter_info_mut(&mut self) -> &mut super::structs::IoFilterInfo { &mut self.io_filter_info_ }
}
impl IoFilterInfoTrait for HostIoFilterInfo {
fn get_io_filter_info(&self) -> &super::structs::IoFilterInfo { &self.io_filter_info_ }
fn get_io_filter_info_mut(&mut self) -> &mut super::structs::IoFilterInfo { &mut self.io_filter_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn IoFilterInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::IoFilterInfo => Some(from.as_any_ref().downcast_ref::<IoFilterInfo>()?),
StructType::ClusterIoFilterInfo => Some(from.as_any_ref().downcast_ref::<ClusterIoFilterInfo>()?),
StructType::HostIoFilterInfo => Some(from.as_any_ref().downcast_ref::<HostIoFilterInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::IoFilterInfo => Ok(from.as_any_box().downcast::<IoFilterInfo>()?),
StructType::ClusterIoFilterInfo => Ok(from.as_any_box().downcast::<ClusterIoFilterInfo>()?),
StructType::HostIoFilterInfo => Ok(from.as_any_box().downcast::<HostIoFilterInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies an SSL trust policy.
///
/// ***Since:*** vSphere API Release 8.0.3.0
///
/// ### How to access
/// - `IoFilterManager::install_io_filter_task(vib_ssl_trust)`
/// - `IoFilterManager::upgrade_io_filter_task(vib_ssl_trust)`
pub trait IoFilterManagerSslTrustTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn IoFilterManagerSslTrustTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn IoFilterManagerSslTrustTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(IoFilterManagerSslTrustTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("IoFilterManagerSslTrust"),
__out: &mut self.out,
}))
}
}
struct IoFilterManagerSslTrustTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn IoFilterManagerSslTrustTrait>>,
}
impl miniserde::de::Map for IoFilterManagerSslTrustTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn IoFilterManagerSslTrustTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl IoFilterManagerSslTrustTrait for IoFilterManagerSslTrust {
}
impl IoFilterManagerSslTrustTrait for PinnedCertificate {
}
impl IoFilterManagerSslTrustTrait for UntrustedCertificate {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn IoFilterManagerSslTrustTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::IoFilterManagerSslTrust => Some(from.as_any_ref().downcast_ref::<IoFilterManagerSslTrust>()?),
StructType::PinnedCertificate => Some(from.as_any_ref().downcast_ref::<PinnedCertificate>()?),
StructType::UntrustedCertificate => Some(from.as_any_ref().downcast_ref::<UntrustedCertificate>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::IoFilterManagerSslTrust => Ok(from.as_any_box().downcast::<IoFilterManagerSslTrust>()?),
StructType::PinnedCertificate => Ok(from.as_any_box().downcast::<PinnedCertificate>()?),
StructType::UntrustedCertificate => Ok(from.as_any_box().downcast::<UntrustedCertificate>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Deprecated as of vSphere API 4.0, this is not used by the system.
///
/// This data object type is used to communicate configuration about
/// where to find licenses to use for this system.
///
/// ### How to access
/// - `LicenseManager::source`
/// - `LicenseManager::configure_license_source(license_source)`
/// - `LicenseManager::query_license_usage().source`
/// - `HostProfileManager::apply_host_config_task(config_spec).license?.source?`
/// - `HostProfileManager::generate_config_task_list(config_spec).license?.source?`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).license?.source?`
/// - `HostProfile::execute_host_profile().config_spec?.license?.source?`
/// - `HostProfileManager::generate_config_task_list().config_spec?.license?.source?`
pub trait LicenseSourceTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn LicenseSourceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn LicenseSourceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(LicenseSourceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("LicenseSource"),
__out: &mut self.out,
}))
}
}
struct LicenseSourceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn LicenseSourceTrait>>,
}
impl miniserde::de::Map for LicenseSourceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn LicenseSourceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl LicenseSourceTrait for LicenseSource {
}
impl LicenseSourceTrait for EvaluationLicenseSource {
}
impl LicenseSourceTrait for LicenseServerSource {
}
impl LicenseSourceTrait for LocalLicenseSource {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn LicenseSourceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::LicenseSource => Some(from.as_any_ref().downcast_ref::<LicenseSource>()?),
StructType::EvaluationLicenseSource => Some(from.as_any_ref().downcast_ref::<EvaluationLicenseSource>()?),
StructType::LicenseServerSource => Some(from.as_any_ref().downcast_ref::<LicenseServerSource>()?),
StructType::LocalLicenseSource => Some(from.as_any_ref().downcast_ref::<LocalLicenseSource>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::LicenseSource => Ok(from.as_any_box().downcast::<LicenseSource>()?),
StructType::EvaluationLicenseSource => Ok(from.as_any_box().downcast::<EvaluationLicenseSource>()?),
StructType::LicenseServerSource => Ok(from.as_any_box().downcast::<LicenseServerSource>()?),
StructType::LocalLicenseSource => Ok(from.as_any_box().downcast::<LocalLicenseSource>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class for any type of setting or configuration to which negation
/// can be applied.
///
/// When used in a configuration information object:
/// if *NegatableExpression.negate* is true, then ~(objectValue) will be used for the
/// configuration. If false, then objectValue will be used as it is.
pub trait NegatableExpressionTrait : super::traits::DataObjectTrait {
/// Get a reference to the NegatableExpression parent struct
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression;
/// Get a mutable reference to the NegatableExpression parent struct
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression;
}
impl std::ops::Deref for dyn NegatableExpressionTrait {
type Target = super::structs::NegatableExpression;
fn deref(&self) -> &Self::Target {
self.get_negatable_expression()
}
}
impl std::ops::DerefMut for dyn NegatableExpressionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_negatable_expression_mut()
}
}
impl miniserde::Deserialize for Box<dyn NegatableExpressionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NegatableExpressionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NegatableExpressionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NegatableExpression"),
__out: &mut self.out,
}))
}
}
struct NegatableExpressionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NegatableExpressionTrait>>,
}
impl miniserde::de::Map for NegatableExpressionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NegatableExpressionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NegatableExpressionTrait for NegatableExpression {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { self }
}
impl NegatableExpressionTrait for IntExpression {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.negatable_expression_ }
}
impl NegatableExpressionTrait for IpAddress {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.negatable_expression_ }
}
impl NegatableExpressionTrait for IpRange {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.ip_address_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.ip_address_.negatable_expression_ }
}
impl NegatableExpressionTrait for SingleIp {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.ip_address_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.ip_address_.negatable_expression_ }
}
impl NegatableExpressionTrait for MacAddress {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.negatable_expression_ }
}
impl NegatableExpressionTrait for MacRange {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.mac_address_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.mac_address_.negatable_expression_ }
}
impl NegatableExpressionTrait for SingleMac {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.mac_address_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.mac_address_.negatable_expression_ }
}
impl NegatableExpressionTrait for StringExpression {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.negatable_expression_ }
}
impl NegatableExpressionTrait for DvsIpPort {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.negatable_expression_ }
}
impl NegatableExpressionTrait for DvsIpPortRange {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.dvs_ip_port_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.dvs_ip_port_.negatable_expression_ }
}
impl NegatableExpressionTrait for DvsSingleIpPort {
fn get_negatable_expression(&self) -> &super::structs::NegatableExpression { &self.dvs_ip_port_.negatable_expression_ }
fn get_negatable_expression_mut(&mut self) -> &mut super::structs::NegatableExpression { &mut self.dvs_ip_port_.negatable_expression_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NegatableExpressionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NegatableExpression => Some(from.as_any_ref().downcast_ref::<NegatableExpression>()?),
StructType::IntExpression => Some(from.as_any_ref().downcast_ref::<IntExpression>()?),
StructType::IpAddress => Some(from.as_any_ref().downcast_ref::<IpAddress>()?),
StructType::IpRange => Some(from.as_any_ref().downcast_ref::<IpRange>()?),
StructType::SingleIp => Some(from.as_any_ref().downcast_ref::<SingleIp>()?),
StructType::MacAddress => Some(from.as_any_ref().downcast_ref::<MacAddress>()?),
StructType::MacRange => Some(from.as_any_ref().downcast_ref::<MacRange>()?),
StructType::SingleMac => Some(from.as_any_ref().downcast_ref::<SingleMac>()?),
StructType::StringExpression => Some(from.as_any_ref().downcast_ref::<StringExpression>()?),
StructType::DvsIpPort => Some(from.as_any_ref().downcast_ref::<DvsIpPort>()?),
StructType::DvsIpPortRange => Some(from.as_any_ref().downcast_ref::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Some(from.as_any_ref().downcast_ref::<DvsSingleIpPort>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NegatableExpression => Ok(from.as_any_box().downcast::<NegatableExpression>()?),
StructType::IntExpression => Ok(from.as_any_box().downcast::<IntExpression>()?),
StructType::IpAddress => Ok(from.as_any_box().downcast::<IpAddress>()?),
StructType::IpRange => Ok(from.as_any_box().downcast::<IpRange>()?),
StructType::SingleIp => Ok(from.as_any_box().downcast::<SingleIp>()?),
StructType::MacAddress => Ok(from.as_any_box().downcast::<MacAddress>()?),
StructType::MacRange => Ok(from.as_any_box().downcast::<MacRange>()?),
StructType::SingleMac => Ok(from.as_any_box().downcast::<SingleMac>()?),
StructType::StringExpression => Ok(from.as_any_box().downcast::<StringExpression>()?),
StructType::DvsIpPort => Ok(from.as_any_box().downcast::<DvsIpPort>()?),
StructType::DvsIpPortRange => Ok(from.as_any_box().downcast::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Ok(from.as_any_box().downcast::<DvsSingleIpPort>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This is the abstract base class for IP address.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_address?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_address?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_address?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_address?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_address?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_address?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_address?`
///
/// *(10 of 36 paths)*
pub trait IpAddressTrait : super::traits::NegatableExpressionTrait {
/// Get a reference to the IpAddress parent struct
fn get_ip_address(&self) -> &super::structs::IpAddress;
/// Get a mutable reference to the IpAddress parent struct
fn get_ip_address_mut(&mut self) -> &mut super::structs::IpAddress;
}
impl std::ops::Deref for dyn IpAddressTrait {
type Target = super::structs::IpAddress;
fn deref(&self) -> &Self::Target {
self.get_ip_address()
}
}
impl std::ops::DerefMut for dyn IpAddressTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_ip_address_mut()
}
}
impl miniserde::Deserialize for Box<dyn IpAddressTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn IpAddressTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(IpAddressTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("IpAddress"),
__out: &mut self.out,
}))
}
}
struct IpAddressTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn IpAddressTrait>>,
}
impl miniserde::de::Map for IpAddressTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn IpAddressTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl IpAddressTrait for IpAddress {
fn get_ip_address(&self) -> &super::structs::IpAddress { &self }
fn get_ip_address_mut(&mut self) -> &mut super::structs::IpAddress { self }
}
impl IpAddressTrait for IpRange {
fn get_ip_address(&self) -> &super::structs::IpAddress { &self.ip_address_ }
fn get_ip_address_mut(&mut self) -> &mut super::structs::IpAddress { &mut self.ip_address_ }
}
impl IpAddressTrait for SingleIp {
fn get_ip_address(&self) -> &super::structs::IpAddress { &self.ip_address_ }
fn get_ip_address_mut(&mut self) -> &mut super::structs::IpAddress { &mut self.ip_address_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn IpAddressTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::IpAddress => Some(from.as_any_ref().downcast_ref::<IpAddress>()?),
StructType::IpRange => Some(from.as_any_ref().downcast_ref::<IpRange>()?),
StructType::SingleIp => Some(from.as_any_ref().downcast_ref::<SingleIp>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::IpAddress => Ok(from.as_any_box().downcast::<IpAddress>()?),
StructType::IpRange => Ok(from.as_any_box().downcast::<IpRange>()?),
StructType::SingleIp => Ok(from.as_any_box().downcast::<SingleIp>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for specifying MAC addresses.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.destination_address?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.source_address?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.destination_address?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.destination_address?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.source_address?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.destination_address?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.source_address?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsMacNetworkRuleQualifier.destination_address?`
///
/// *(10 of 36 paths)*
pub trait MacAddressTrait : super::traits::NegatableExpressionTrait {
/// Get a reference to the MacAddress parent struct
fn get_mac_address(&self) -> &super::structs::MacAddress;
/// Get a mutable reference to the MacAddress parent struct
fn get_mac_address_mut(&mut self) -> &mut super::structs::MacAddress;
}
impl std::ops::Deref for dyn MacAddressTrait {
type Target = super::structs::MacAddress;
fn deref(&self) -> &Self::Target {
self.get_mac_address()
}
}
impl std::ops::DerefMut for dyn MacAddressTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_mac_address_mut()
}
}
impl miniserde::Deserialize for Box<dyn MacAddressTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn MacAddressTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(MacAddressTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("MacAddress"),
__out: &mut self.out,
}))
}
}
struct MacAddressTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn MacAddressTrait>>,
}
impl miniserde::de::Map for MacAddressTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn MacAddressTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl MacAddressTrait for MacAddress {
fn get_mac_address(&self) -> &super::structs::MacAddress { &self }
fn get_mac_address_mut(&mut self) -> &mut super::structs::MacAddress { self }
}
impl MacAddressTrait for MacRange {
fn get_mac_address(&self) -> &super::structs::MacAddress { &self.mac_address_ }
fn get_mac_address_mut(&mut self) -> &mut super::structs::MacAddress { &mut self.mac_address_ }
}
impl MacAddressTrait for SingleMac {
fn get_mac_address(&self) -> &super::structs::MacAddress { &self.mac_address_ }
fn get_mac_address_mut(&mut self) -> &mut super::structs::MacAddress { &mut self.mac_address_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn MacAddressTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::MacAddress => Some(from.as_any_ref().downcast_ref::<MacAddress>()?),
StructType::MacRange => Some(from.as_any_ref().downcast_ref::<MacRange>()?),
StructType::SingleMac => Some(from.as_any_ref().downcast_ref::<SingleMac>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::MacAddress => Ok(from.as_any_box().downcast::<MacAddress>()?),
StructType::MacRange => Ok(from.as_any_box().downcast::<MacRange>()?),
StructType::SingleMac => Ok(from.as_any_box().downcast::<SingleMac>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for specifying Ports.
///
/// Objects of the base class represent any port (single/range/list).
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_ip_port?`
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_ip_port?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_ip_port?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_ip_port?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_ip_port?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_ip_port?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_ip_port?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_ip_port?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.source_ip_port?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]→DvsIpNetworkRuleQualifier.destination_ip_port?`
///
/// *(10 of 36 paths)*
pub trait DvsIpPortTrait : super::traits::NegatableExpressionTrait {
/// Get a reference to the DvsIpPort parent struct
fn get_dvs_ip_port(&self) -> &super::structs::DvsIpPort;
/// Get a mutable reference to the DvsIpPort parent struct
fn get_dvs_ip_port_mut(&mut self) -> &mut super::structs::DvsIpPort;
}
impl std::ops::Deref for dyn DvsIpPortTrait {
type Target = super::structs::DvsIpPort;
fn deref(&self) -> &Self::Target {
self.get_dvs_ip_port()
}
}
impl std::ops::DerefMut for dyn DvsIpPortTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_ip_port_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsIpPortTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsIpPortTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsIpPortTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsIpPort"),
__out: &mut self.out,
}))
}
}
struct DvsIpPortTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsIpPortTrait>>,
}
impl miniserde::de::Map for DvsIpPortTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsIpPortTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsIpPortTrait for DvsIpPort {
fn get_dvs_ip_port(&self) -> &super::structs::DvsIpPort { &self }
fn get_dvs_ip_port_mut(&mut self) -> &mut super::structs::DvsIpPort { self }
}
impl DvsIpPortTrait for DvsIpPortRange {
fn get_dvs_ip_port(&self) -> &super::structs::DvsIpPort { &self.dvs_ip_port_ }
fn get_dvs_ip_port_mut(&mut self) -> &mut super::structs::DvsIpPort { &mut self.dvs_ip_port_ }
}
impl DvsIpPortTrait for DvsSingleIpPort {
fn get_dvs_ip_port(&self) -> &super::structs::DvsIpPort { &self.dvs_ip_port_ }
fn get_dvs_ip_port_mut(&mut self) -> &mut super::structs::DvsIpPort { &mut self.dvs_ip_port_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsIpPortTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsIpPort => Some(from.as_any_ref().downcast_ref::<DvsIpPort>()?),
StructType::DvsIpPortRange => Some(from.as_any_ref().downcast_ref::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Some(from.as_any_ref().downcast_ref::<DvsSingleIpPort>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsIpPort => Ok(from.as_any_box().downcast::<DvsIpPort>()?),
StructType::DvsIpPortRange => Ok(from.as_any_box().downcast::<DvsIpPortRange>()?),
StructType::DvsSingleIpPort => Ok(from.as_any_box().downcast::<DvsSingleIpPort>()?),
_ => Err(from.as_any_box()),
}
}
}
/// General information about a network.
///
/// ### How to access
/// - `Network::summary`
/// - `DistributedVirtualPortgroup::summary`
/// - `OpaqueNetwork::summary`
/// - `HostSystem::query_host_connection_info().network?[*].summary`
/// - `Datacenter::query_connection_info().network?[*].summary`
/// - `Datacenter::query_connection_info_via_spec().network?[*].summary`
/// - `EnvironmentBrowser::query_config_target().network?[*].network`
pub trait NetworkSummaryTrait : super::traits::DataObjectTrait {
/// Get a reference to the NetworkSummary parent struct
fn get_network_summary(&self) -> &super::structs::NetworkSummary;
/// Get a mutable reference to the NetworkSummary parent struct
fn get_network_summary_mut(&mut self) -> &mut super::structs::NetworkSummary;
}
impl std::ops::Deref for dyn NetworkSummaryTrait {
type Target = super::structs::NetworkSummary;
fn deref(&self) -> &Self::Target {
self.get_network_summary()
}
}
impl std::ops::DerefMut for dyn NetworkSummaryTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_network_summary_mut()
}
}
impl miniserde::Deserialize for Box<dyn NetworkSummaryTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NetworkSummaryTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NetworkSummaryTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NetworkSummary"),
__out: &mut self.out,
}))
}
}
struct NetworkSummaryTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NetworkSummaryTrait>>,
}
impl miniserde::de::Map for NetworkSummaryTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NetworkSummaryTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NetworkSummaryTrait for NetworkSummary {
fn get_network_summary(&self) -> &super::structs::NetworkSummary { &self }
fn get_network_summary_mut(&mut self) -> &mut super::structs::NetworkSummary { self }
}
impl NetworkSummaryTrait for OpaqueNetworkSummary {
fn get_network_summary(&self) -> &super::structs::NetworkSummary { &self.network_summary_ }
fn get_network_summary_mut(&mut self) -> &mut super::structs::NetworkSummary { &mut self.network_summary_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NetworkSummaryTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NetworkSummary => Some(from.as_any_ref().downcast_ref::<NetworkSummary>()?),
StructType::OpaqueNetworkSummary => Some(from.as_any_ref().downcast_ref::<OpaqueNetworkSummary>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NetworkSummary => Ok(from.as_any_box().downcast::<NetworkSummary>()?),
StructType::OpaqueNetworkSummary => Ok(from.as_any_box().downcast::<OpaqueNetworkSummary>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A common super-class for basic OVF descriptor parameters
pub trait OvfManagerCommonParamsTrait : super::traits::DataObjectTrait {
/// Get a reference to the OvfManagerCommonParams parent struct
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams;
/// Get a mutable reference to the OvfManagerCommonParams parent struct
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams;
}
impl std::ops::Deref for dyn OvfManagerCommonParamsTrait {
type Target = super::structs::OvfManagerCommonParams;
fn deref(&self) -> &Self::Target {
self.get_ovf_manager_common_params()
}
}
impl std::ops::DerefMut for dyn OvfManagerCommonParamsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_ovf_manager_common_params_mut()
}
}
impl miniserde::Deserialize for Box<dyn OvfManagerCommonParamsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn OvfManagerCommonParamsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(OvfManagerCommonParamsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("OvfManagerCommonParams"),
__out: &mut self.out,
}))
}
}
struct OvfManagerCommonParamsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn OvfManagerCommonParamsTrait>>,
}
impl miniserde::de::Map for OvfManagerCommonParamsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn OvfManagerCommonParamsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl OvfManagerCommonParamsTrait for OvfManagerCommonParams {
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams { &self }
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams { self }
}
impl OvfManagerCommonParamsTrait for OvfCreateImportSpecParams {
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams { &self.ovf_manager_common_params_ }
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams { &mut self.ovf_manager_common_params_ }
}
impl OvfManagerCommonParamsTrait for OvfImportParams {
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams { &self.ovf_create_import_spec_params_.ovf_manager_common_params_ }
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams { &mut self.ovf_create_import_spec_params_.ovf_manager_common_params_ }
}
impl OvfManagerCommonParamsTrait for OvfParseDescriptorParams {
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams { &self.ovf_manager_common_params_ }
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams { &mut self.ovf_manager_common_params_ }
}
impl OvfManagerCommonParamsTrait for OvfValidateHostParams {
fn get_ovf_manager_common_params(&self) -> &super::structs::OvfManagerCommonParams { &self.ovf_manager_common_params_ }
fn get_ovf_manager_common_params_mut(&mut self) -> &mut super::structs::OvfManagerCommonParams { &mut self.ovf_manager_common_params_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn OvfManagerCommonParamsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::OvfManagerCommonParams => Some(from.as_any_ref().downcast_ref::<OvfManagerCommonParams>()?),
StructType::OvfCreateImportSpecParams => Some(from.as_any_ref().downcast_ref::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Some(from.as_any_ref().downcast_ref::<OvfImportParams>()?),
StructType::OvfParseDescriptorParams => Some(from.as_any_ref().downcast_ref::<OvfParseDescriptorParams>()?),
StructType::OvfValidateHostParams => Some(from.as_any_ref().downcast_ref::<OvfValidateHostParams>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::OvfManagerCommonParams => Ok(from.as_any_box().downcast::<OvfManagerCommonParams>()?),
StructType::OvfCreateImportSpecParams => Ok(from.as_any_box().downcast::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Ok(from.as_any_box().downcast::<OvfImportParams>()?),
StructType::OvfParseDescriptorParams => Ok(from.as_any_box().downcast::<OvfParseDescriptorParams>()?),
StructType::OvfValidateHostParams => Ok(from.as_any_box().downcast::<OvfValidateHostParams>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Parameters for deploying an OVF.
///
/// ### How to access
/// - `OvfManager::create_import_spec(cisp)`
pub trait OvfCreateImportSpecParamsTrait : super::traits::OvfManagerCommonParamsTrait {
/// Get a reference to the OvfCreateImportSpecParams parent struct
fn get_ovf_create_import_spec_params(&self) -> &super::structs::OvfCreateImportSpecParams;
/// Get a mutable reference to the OvfCreateImportSpecParams parent struct
fn get_ovf_create_import_spec_params_mut(&mut self) -> &mut super::structs::OvfCreateImportSpecParams;
}
impl std::ops::Deref for dyn OvfCreateImportSpecParamsTrait {
type Target = super::structs::OvfCreateImportSpecParams;
fn deref(&self) -> &Self::Target {
self.get_ovf_create_import_spec_params()
}
}
impl std::ops::DerefMut for dyn OvfCreateImportSpecParamsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_ovf_create_import_spec_params_mut()
}
}
impl miniserde::Deserialize for Box<dyn OvfCreateImportSpecParamsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn OvfCreateImportSpecParamsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(OvfCreateImportSpecParamsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("OvfCreateImportSpecParams"),
__out: &mut self.out,
}))
}
}
struct OvfCreateImportSpecParamsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn OvfCreateImportSpecParamsTrait>>,
}
impl miniserde::de::Map for OvfCreateImportSpecParamsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn OvfCreateImportSpecParamsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl OvfCreateImportSpecParamsTrait for OvfCreateImportSpecParams {
fn get_ovf_create_import_spec_params(&self) -> &super::structs::OvfCreateImportSpecParams { &self }
fn get_ovf_create_import_spec_params_mut(&mut self) -> &mut super::structs::OvfCreateImportSpecParams { self }
}
impl OvfCreateImportSpecParamsTrait for OvfImportParams {
fn get_ovf_create_import_spec_params(&self) -> &super::structs::OvfCreateImportSpecParams { &self.ovf_create_import_spec_params_ }
fn get_ovf_create_import_spec_params_mut(&mut self) -> &mut super::structs::OvfCreateImportSpecParams { &mut self.ovf_create_import_spec_params_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn OvfCreateImportSpecParamsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::OvfCreateImportSpecParams => Some(from.as_any_ref().downcast_ref::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Some(from.as_any_ref().downcast_ref::<OvfImportParams>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::OvfCreateImportSpecParams => Ok(from.as_any_box().downcast::<OvfCreateImportSpecParams>()?),
StructType::OvfImportParams => Ok(from.as_any_box().downcast::<OvfImportParams>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for the various *PerfEntityMetric*
/// encodings.
///
/// ### How to access
/// - `PerformanceManager::query_perf()`
/// - `PerformanceManager::query_perf_composite().entity?`
/// - `PerformanceManager::query_perf_composite().child_entity?[*]`
pub trait PerfEntityMetricBaseTrait : super::traits::DataObjectTrait {
/// Get a reference to the PerfEntityMetricBase parent struct
fn get_perf_entity_metric_base(&self) -> &super::structs::PerfEntityMetricBase;
/// Get a mutable reference to the PerfEntityMetricBase parent struct
fn get_perf_entity_metric_base_mut(&mut self) -> &mut super::structs::PerfEntityMetricBase;
}
impl std::ops::Deref for dyn PerfEntityMetricBaseTrait {
type Target = super::structs::PerfEntityMetricBase;
fn deref(&self) -> &Self::Target {
self.get_perf_entity_metric_base()
}
}
impl std::ops::DerefMut for dyn PerfEntityMetricBaseTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_perf_entity_metric_base_mut()
}
}
impl miniserde::Deserialize for Box<dyn PerfEntityMetricBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PerfEntityMetricBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PerfEntityMetricBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PerfEntityMetricBase"),
__out: &mut self.out,
}))
}
}
struct PerfEntityMetricBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PerfEntityMetricBaseTrait>>,
}
impl miniserde::de::Map for PerfEntityMetricBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PerfEntityMetricBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PerfEntityMetricBaseTrait for PerfEntityMetricBase {
fn get_perf_entity_metric_base(&self) -> &super::structs::PerfEntityMetricBase { &self }
fn get_perf_entity_metric_base_mut(&mut self) -> &mut super::structs::PerfEntityMetricBase { self }
}
impl PerfEntityMetricBaseTrait for PerfEntityMetric {
fn get_perf_entity_metric_base(&self) -> &super::structs::PerfEntityMetricBase { &self.perf_entity_metric_base_ }
fn get_perf_entity_metric_base_mut(&mut self) -> &mut super::structs::PerfEntityMetricBase { &mut self.perf_entity_metric_base_ }
}
impl PerfEntityMetricBaseTrait for PerfEntityMetricCsv {
fn get_perf_entity_metric_base(&self) -> &super::structs::PerfEntityMetricBase { &self.perf_entity_metric_base_ }
fn get_perf_entity_metric_base_mut(&mut self) -> &mut super::structs::PerfEntityMetricBase { &mut self.perf_entity_metric_base_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PerfEntityMetricBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PerfEntityMetricBase => Some(from.as_any_ref().downcast_ref::<PerfEntityMetricBase>()?),
StructType::PerfEntityMetric => Some(from.as_any_ref().downcast_ref::<PerfEntityMetric>()?),
StructType::PerfEntityMetricCsv => Some(from.as_any_ref().downcast_ref::<PerfEntityMetricCsv>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PerfEntityMetricBase => Ok(from.as_any_box().downcast::<PerfEntityMetricBase>()?),
StructType::PerfEntityMetric => Ok(from.as_any_box().downcast::<PerfEntityMetric>()?),
StructType::PerfEntityMetricCsv => Ok(from.as_any_box().downcast::<PerfEntityMetricCsv>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This is a generic data object type that stores values for a specific
/// performance metric.
///
/// Useful data objects that store actual metric values
/// extend this data object (see *PerfMetricIntSeries*).
///
/// ### How to access
/// - `PerformanceManager::query_perf()→PerfEntityMetric.value?[*]`
/// - `PerformanceManager::query_perf_composite().entity?→PerfEntityMetric.value?[*]`
/// - `PerformanceManager::query_perf_composite().child_entity?[*]→PerfEntityMetric.value?[*]`
pub trait PerfMetricSeriesTrait : super::traits::DataObjectTrait {
/// Get a reference to the PerfMetricSeries parent struct
fn get_perf_metric_series(&self) -> &super::structs::PerfMetricSeries;
/// Get a mutable reference to the PerfMetricSeries parent struct
fn get_perf_metric_series_mut(&mut self) -> &mut super::structs::PerfMetricSeries;
}
impl std::ops::Deref for dyn PerfMetricSeriesTrait {
type Target = super::structs::PerfMetricSeries;
fn deref(&self) -> &Self::Target {
self.get_perf_metric_series()
}
}
impl std::ops::DerefMut for dyn PerfMetricSeriesTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_perf_metric_series_mut()
}
}
impl miniserde::Deserialize for Box<dyn PerfMetricSeriesTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PerfMetricSeriesTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PerfMetricSeriesTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PerfMetricSeries"),
__out: &mut self.out,
}))
}
}
struct PerfMetricSeriesTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PerfMetricSeriesTrait>>,
}
impl miniserde::de::Map for PerfMetricSeriesTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PerfMetricSeriesTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PerfMetricSeriesTrait for PerfMetricSeries {
fn get_perf_metric_series(&self) -> &super::structs::PerfMetricSeries { &self }
fn get_perf_metric_series_mut(&mut self) -> &mut super::structs::PerfMetricSeries { self }
}
impl PerfMetricSeriesTrait for PerfMetricIntSeries {
fn get_perf_metric_series(&self) -> &super::structs::PerfMetricSeries { &self.perf_metric_series_ }
fn get_perf_metric_series_mut(&mut self) -> &mut super::structs::PerfMetricSeries { &mut self.perf_metric_series_ }
}
impl PerfMetricSeriesTrait for PerfMetricSeriesCsv {
fn get_perf_metric_series(&self) -> &super::structs::PerfMetricSeries { &self.perf_metric_series_ }
fn get_perf_metric_series_mut(&mut self) -> &mut super::structs::PerfMetricSeries { &mut self.perf_metric_series_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PerfMetricSeriesTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PerfMetricSeries => Some(from.as_any_ref().downcast_ref::<PerfMetricSeries>()?),
StructType::PerfMetricIntSeries => Some(from.as_any_ref().downcast_ref::<PerfMetricIntSeries>()?),
StructType::PerfMetricSeriesCsv => Some(from.as_any_ref().downcast_ref::<PerfMetricSeriesCsv>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PerfMetricSeries => Ok(from.as_any_box().downcast::<PerfMetricSeries>()?),
StructType::PerfMetricIntSeries => Ok(from.as_any_box().downcast::<PerfMetricIntSeries>()?),
StructType::PerfMetricSeriesCsv => Ok(from.as_any_box().downcast::<PerfMetricSeriesCsv>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type encapsulates a typical set of resource
/// pool information that is useful for list views and summary pages.
///
/// ### How to access
/// - `ResourcePool::summary`
/// - `VirtualApp::summary`
pub trait ResourcePoolSummaryTrait : super::traits::DataObjectTrait {
/// Get a reference to the ResourcePoolSummary parent struct
fn get_resource_pool_summary(&self) -> &super::structs::ResourcePoolSummary;
/// Get a mutable reference to the ResourcePoolSummary parent struct
fn get_resource_pool_summary_mut(&mut self) -> &mut super::structs::ResourcePoolSummary;
}
impl std::ops::Deref for dyn ResourcePoolSummaryTrait {
type Target = super::structs::ResourcePoolSummary;
fn deref(&self) -> &Self::Target {
self.get_resource_pool_summary()
}
}
impl std::ops::DerefMut for dyn ResourcePoolSummaryTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_resource_pool_summary_mut()
}
}
impl miniserde::Deserialize for Box<dyn ResourcePoolSummaryTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ResourcePoolSummaryTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ResourcePoolSummaryTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ResourcePoolSummary"),
__out: &mut self.out,
}))
}
}
struct ResourcePoolSummaryTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ResourcePoolSummaryTrait>>,
}
impl miniserde::de::Map for ResourcePoolSummaryTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ResourcePoolSummaryTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ResourcePoolSummaryTrait for ResourcePoolSummary {
fn get_resource_pool_summary(&self) -> &super::structs::ResourcePoolSummary { &self }
fn get_resource_pool_summary_mut(&mut self) -> &mut super::structs::ResourcePoolSummary { self }
}
impl ResourcePoolSummaryTrait for VirtualAppSummary {
fn get_resource_pool_summary(&self) -> &super::structs::ResourcePoolSummary { &self.resource_pool_summary_ }
fn get_resource_pool_summary_mut(&mut self) -> &mut super::structs::ResourcePoolSummary { &mut self.resource_pool_summary_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ResourcePoolSummaryTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ResourcePoolSummary => Some(from.as_any_ref().downcast_ref::<ResourcePoolSummary>()?),
StructType::VirtualAppSummary => Some(from.as_any_ref().downcast_ref::<VirtualAppSummary>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ResourcePoolSummary => Ok(from.as_any_box().downcast::<ResourcePoolSummary>()?),
StructType::VirtualAppSummary => Ok(from.as_any_box().downcast::<VirtualAppSummary>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An empty data object which can be used as the base class for data objects
/// outside VIM namespace which have to be proxied through vCenter opaquely.
///
/// For example, vSan configuration spec will extend from this which will
/// allow HCI API to pass the spec to set up vSan on the cluster.
///
/// ### How to access
/// - `ClusterComputeResource::extend_hci_task(v_san_config_spec)`
/// - `ClusterComputeResource::configure_hci_task(cluster_spec).v_san_config_spec?`
/// - `ClusterComputeResource::validate_hci_configuration(hci_config_spec).v_san_config_spec?`
pub trait SddcBaseTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SddcBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SddcBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SddcBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SddcBase"),
__out: &mut self.out,
}))
}
}
struct SddcBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SddcBaseTrait>>,
}
impl miniserde::de::Map for SddcBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SddcBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SddcBaseTrait for SddcBase {
}
impl SddcBaseTrait for VimVsanReconfigSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SddcBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SddcBase => Some(from.as_any_ref().downcast_ref::<SddcBase>()?),
StructType::VimVsanReconfigSpec => Some(from.as_any_ref().downcast_ref::<VimVsanReconfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SddcBase => Ok(from.as_any_box().downcast::<SddcBase>()?),
StructType::VimVsanReconfigSpec => Ok(from.as_any_box().downcast::<VimVsanReconfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for selecting entities
///
/// ### How to access
/// - `DistributedVirtualSwitchManager::dvs_manager_export_entity_task(selection_set)`
pub trait SelectionSetTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SelectionSetTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SelectionSetTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SelectionSetTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SelectionSet"),
__out: &mut self.out,
}))
}
}
struct SelectionSetTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SelectionSetTrait>>,
}
impl miniserde::de::Map for SelectionSetTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SelectionSetTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SelectionSetTrait for SelectionSet {
}
impl SelectionSetTrait for DvPortgroupSelection {
}
impl SelectionSetTrait for DvsSelection {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SelectionSetTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SelectionSet => Some(from.as_any_ref().downcast_ref::<SelectionSet>()?),
StructType::DvPortgroupSelection => Some(from.as_any_ref().downcast_ref::<DvPortgroupSelection>()?),
StructType::DvsSelection => Some(from.as_any_ref().downcast_ref::<DvsSelection>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SelectionSet => Ok(from.as_any_box().downcast::<SelectionSet>()?),
StructType::DvPortgroupSelection => Ok(from.as_any_box().downcast::<DvPortgroupSelection>()?),
StructType::DvsSelection => Ok(from.as_any_box().downcast::<DvsSelection>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The data object type is a base type of credential for authentication such
/// as username/password or SAML token.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.service?.credential`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.service?.credential`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.service?.credential`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.service?.credential`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.service?.credential`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.service?.credential`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.service?.credential`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.service?.credential`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.service?.credential`
/// - `ClusterComputeResource::recommendation.action?[*]→StorageMigrationAction.relocate_spec.service?.credential`
///
/// *(10 of 39 paths)*
pub trait ServiceLocatorCredentialTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ServiceLocatorCredentialTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ServiceLocatorCredentialTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ServiceLocatorCredentialTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ServiceLocatorCredential"),
__out: &mut self.out,
}))
}
}
struct ServiceLocatorCredentialTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ServiceLocatorCredentialTrait>>,
}
impl miniserde::de::Map for ServiceLocatorCredentialTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ServiceLocatorCredentialTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ServiceLocatorCredentialTrait for ServiceLocatorCredential {
}
impl ServiceLocatorCredentialTrait for ServiceLocatorNamePassword {
}
impl ServiceLocatorCredentialTrait for ServiceLocatorSamlCredential {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ServiceLocatorCredentialTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ServiceLocatorCredential => Some(from.as_any_ref().downcast_ref::<ServiceLocatorCredential>()?),
StructType::ServiceLocatorNamePassword => Some(from.as_any_ref().downcast_ref::<ServiceLocatorNamePassword>()?),
StructType::ServiceLocatorSamlCredential => Some(from.as_any_ref().downcast_ref::<ServiceLocatorSamlCredential>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ServiceLocatorCredential => Ok(from.as_any_box().downcast::<ServiceLocatorCredential>()?),
StructType::ServiceLocatorNamePassword => Ok(from.as_any_box().downcast::<ServiceLocatorNamePassword>()?),
StructType::ServiceLocatorSamlCredential => Ok(from.as_any_box().downcast::<ServiceLocatorSamlCredential>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes a request to a service.
///
/// It is used as argument to
/// *SessionManager.AcquireGenericServiceTicket*.
/// This is the base class for more specific service request specifications.
/// E.g. for HTTP services the derived class will provide a URL property.
///
/// ### How to access
/// - `SessionManager::acquire_generic_service_ticket(spec)`
pub trait SessionManagerServiceRequestSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn SessionManagerServiceRequestSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SessionManagerServiceRequestSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SessionManagerServiceRequestSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SessionManagerServiceRequestSpec"),
__out: &mut self.out,
}))
}
}
struct SessionManagerServiceRequestSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SessionManagerServiceRequestSpecTrait>>,
}
impl miniserde::de::Map for SessionManagerServiceRequestSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SessionManagerServiceRequestSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SessionManagerServiceRequestSpecTrait for SessionManagerServiceRequestSpec {
}
impl SessionManagerServiceRequestSpecTrait for SessionManagerHttpServiceRequestSpec {
}
impl SessionManagerServiceRequestSpecTrait for SessionManagerVmomiServiceRequestSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SessionManagerServiceRequestSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SessionManagerServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerServiceRequestSpec>()?),
StructType::SessionManagerHttpServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerHttpServiceRequestSpec>()?),
StructType::SessionManagerVmomiServiceRequestSpec => Some(from.as_any_ref().downcast_ref::<SessionManagerVmomiServiceRequestSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SessionManagerServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerServiceRequestSpec>()?),
StructType::SessionManagerHttpServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerHttpServiceRequestSpec>()?),
StructType::SessionManagerVmomiServiceRequestSpec => Ok(from.as_any_box().downcast::<SessionManagerVmomiServiceRequestSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// *TaskManagerTaskViewSpec* provides the specifications
/// for returning the set of tasks in the
/// Task Console.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `TaskManager::read_next_tasks_by_view_spec(view_spec)`
pub trait TaskManagerTaskViewSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn TaskManagerTaskViewSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn TaskManagerTaskViewSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(TaskManagerTaskViewSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("TaskManagerTaskViewSpec"),
__out: &mut self.out,
}))
}
}
struct TaskManagerTaskViewSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn TaskManagerTaskViewSpecTrait>>,
}
impl miniserde::de::Map for TaskManagerTaskViewSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn TaskManagerTaskViewSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl TaskManagerTaskViewSpecTrait for TaskManagerTaskViewSpec {
}
impl TaskManagerTaskViewSpecTrait for TaskManagerViewByStartId {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn TaskManagerTaskViewSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::TaskManagerTaskViewSpec => Some(from.as_any_ref().downcast_ref::<TaskManagerTaskViewSpec>()?),
StructType::TaskManagerViewByStartId => Some(from.as_any_ref().downcast_ref::<TaskManagerViewByStartId>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::TaskManagerTaskViewSpec => Ok(from.as_any_box().downcast::<TaskManagerTaskViewSpec>()?),
StructType::TaskManagerViewByStartId => Ok(from.as_any_box().downcast::<TaskManagerViewByStartId>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for all task reasons.
///
/// Task reasons represent the kind of entity responsible for a task's creation.
///
/// ### How to access
/// - `Task::info.reason`
/// - `TaskHistoryCollector::latest_page.reason`
/// - `EventManager::post_event(task_info).reason`
/// - `TaskHistoryCollector::read_next_tasks().reason`
/// - `TaskHistoryCollector::read_previous_tasks().reason`
/// - `TaskManager::read_next_tasks_by_view_spec().reason`
/// - `TaskManager::create_task().reason`
pub trait TaskReasonTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn TaskReasonTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn TaskReasonTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(TaskReasonTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("TaskReason"),
__out: &mut self.out,
}))
}
}
struct TaskReasonTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn TaskReasonTrait>>,
}
impl miniserde::de::Map for TaskReasonTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn TaskReasonTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl TaskReasonTrait for TaskReason {
}
impl TaskReasonTrait for TaskReasonAlarm {
}
impl TaskReasonTrait for TaskReasonSchedule {
}
impl TaskReasonTrait for TaskReasonSystem {
}
impl TaskReasonTrait for TaskReasonUser {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn TaskReasonTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::TaskReason => Some(from.as_any_ref().downcast_ref::<TaskReason>()?),
StructType::TaskReasonAlarm => Some(from.as_any_ref().downcast_ref::<TaskReasonAlarm>()?),
StructType::TaskReasonSchedule => Some(from.as_any_ref().downcast_ref::<TaskReasonSchedule>()?),
StructType::TaskReasonSystem => Some(from.as_any_ref().downcast_ref::<TaskReasonSystem>()?),
StructType::TaskReasonUser => Some(from.as_any_ref().downcast_ref::<TaskReasonUser>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::TaskReason => Ok(from.as_any_box().downcast::<TaskReason>()?),
StructType::TaskReasonAlarm => Ok(from.as_any_box().downcast::<TaskReasonAlarm>()?),
StructType::TaskReasonSchedule => Ok(from.as_any_box().downcast::<TaskReasonSchedule>()?),
StructType::TaskReasonSystem => Ok(from.as_any_box().downcast::<TaskReasonSystem>()?),
StructType::TaskReasonUser => Ok(from.as_any_box().downcast::<TaskReasonUser>()?),
_ => Err(from.as_any_box()),
}
}
}
/// When searching for users, the search results in
/// some additional information.
///
/// This object describes
/// the additional information.
///
/// ### How to access
/// - `UserDirectory::retrieve_user_groups()`
pub trait UserSearchResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the UserSearchResult parent struct
fn get_user_search_result(&self) -> &super::structs::UserSearchResult;
/// Get a mutable reference to the UserSearchResult parent struct
fn get_user_search_result_mut(&mut self) -> &mut super::structs::UserSearchResult;
}
impl std::ops::Deref for dyn UserSearchResultTrait {
type Target = super::structs::UserSearchResult;
fn deref(&self) -> &Self::Target {
self.get_user_search_result()
}
}
impl std::ops::DerefMut for dyn UserSearchResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_user_search_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn UserSearchResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn UserSearchResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(UserSearchResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("UserSearchResult"),
__out: &mut self.out,
}))
}
}
struct UserSearchResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn UserSearchResultTrait>>,
}
impl miniserde::de::Map for UserSearchResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn UserSearchResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl UserSearchResultTrait for UserSearchResult {
fn get_user_search_result(&self) -> &super::structs::UserSearchResult { &self }
fn get_user_search_result_mut(&mut self) -> &mut super::structs::UserSearchResult { self }
}
impl UserSearchResultTrait for PosixUserSearchResult {
fn get_user_search_result(&self) -> &super::structs::UserSearchResult { &self.user_search_result_ }
fn get_user_search_result_mut(&mut self) -> &mut super::structs::UserSearchResult { &mut self.user_search_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn UserSearchResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::UserSearchResult => Some(from.as_any_ref().downcast_ref::<UserSearchResult>()?),
StructType::PosixUserSearchResult => Some(from.as_any_ref().downcast_ref::<PosixUserSearchResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::UserSearchResult => Ok(from.as_any_box().downcast::<UserSearchResult>()?),
StructType::PosixUserSearchResult => Ok(from.as_any_box().downcast::<PosixUserSearchResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification used to create or clone a virtual disk
///
/// ### How to access
/// - `VirtualDiskManager::copy_virtual_disk_task(dest_spec)`
/// - `VirtualDiskManager::create_virtual_disk_task(spec)`
pub trait VirtualDiskSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualDiskSpec parent struct
fn get_virtual_disk_spec(&self) -> &super::structs::VirtualDiskSpec;
/// Get a mutable reference to the VirtualDiskSpec parent struct
fn get_virtual_disk_spec_mut(&mut self) -> &mut super::structs::VirtualDiskSpec;
}
impl std::ops::Deref for dyn VirtualDiskSpecTrait {
type Target = super::structs::VirtualDiskSpec;
fn deref(&self) -> &Self::Target {
self.get_virtual_disk_spec()
}
}
impl std::ops::DerefMut for dyn VirtualDiskSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_disk_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDiskSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDiskSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDiskSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDiskSpec"),
__out: &mut self.out,
}))
}
}
struct VirtualDiskSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDiskSpecTrait>>,
}
impl miniserde::de::Map for VirtualDiskSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDiskSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDiskSpecTrait for VirtualDiskSpec {
fn get_virtual_disk_spec(&self) -> &super::structs::VirtualDiskSpec { &self }
fn get_virtual_disk_spec_mut(&mut self) -> &mut super::structs::VirtualDiskSpec { self }
}
impl VirtualDiskSpecTrait for DeviceBackedVirtualDiskSpec {
fn get_virtual_disk_spec(&self) -> &super::structs::VirtualDiskSpec { &self.virtual_disk_spec_ }
fn get_virtual_disk_spec_mut(&mut self) -> &mut super::structs::VirtualDiskSpec { &mut self.virtual_disk_spec_ }
}
impl VirtualDiskSpecTrait for FileBackedVirtualDiskSpec {
fn get_virtual_disk_spec(&self) -> &super::structs::VirtualDiskSpec { &self.virtual_disk_spec_ }
fn get_virtual_disk_spec_mut(&mut self) -> &mut super::structs::VirtualDiskSpec { &mut self.virtual_disk_spec_ }
}
impl VirtualDiskSpecTrait for SeSparseVirtualDiskSpec {
fn get_virtual_disk_spec(&self) -> &super::structs::VirtualDiskSpec { &self.file_backed_virtual_disk_spec_.virtual_disk_spec_ }
fn get_virtual_disk_spec_mut(&mut self) -> &mut super::structs::VirtualDiskSpec { &mut self.file_backed_virtual_disk_spec_.virtual_disk_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDiskSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskSpec>()?),
StructType::DeviceBackedVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<DeviceBackedVirtualDiskSpec>()?),
StructType::FileBackedVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<SeSparseVirtualDiskSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskSpec => Ok(from.as_any_box().downcast::<VirtualDiskSpec>()?),
StructType::DeviceBackedVirtualDiskSpec => Ok(from.as_any_box().downcast::<DeviceBackedVirtualDiskSpec>()?),
StructType::FileBackedVirtualDiskSpec => Ok(from.as_any_box().downcast::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Ok(from.as_any_box().downcast::<SeSparseVirtualDiskSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification used to create a file based virtual disk
///
/// ### How to access
/// - `HostVsanHealthSystem::vsan_host_cleanup_vmdk_load_test(specs).vmdk_create_spec?`
/// - `HostVsanHealthSystem::vsan_host_prepare_vmdk_load_test(specs).vmdk_create_spec?`
/// - `HostVsanHealthSystem::vsan_host_run_vmdk_load_test(specs).vmdk_create_spec?`
/// - `VirtualDiskManager::copy_virtual_disk_task(dest_spec)⇒FileBackedVirtualDiskSpecTrait`
/// - `VirtualDiskManager::create_virtual_disk_task(spec)⇒FileBackedVirtualDiskSpecTrait`
/// - `VsanVcClusterHealthSystem::vsan_vc_cluster_run_vmdk_load_test(specs).vmdk_create_spec?`
/// - `HostVsanHealthSystem::vsan_host_run_vmdk_load_test().spec.vmdk_create_spec?`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_vmdk_workload_types().specs[*].vmdk_create_spec?`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_vmdk_load_history_test().host_results?[*].vmdk_results?[*].spec.vmdk_create_spec?`
pub trait FileBackedVirtualDiskSpecTrait : super::traits::VirtualDiskSpecTrait {
/// Get a reference to the FileBackedVirtualDiskSpec parent struct
fn get_file_backed_virtual_disk_spec(&self) -> &super::structs::FileBackedVirtualDiskSpec;
/// Get a mutable reference to the FileBackedVirtualDiskSpec parent struct
fn get_file_backed_virtual_disk_spec_mut(&mut self) -> &mut super::structs::FileBackedVirtualDiskSpec;
}
impl std::ops::Deref for dyn FileBackedVirtualDiskSpecTrait {
type Target = super::structs::FileBackedVirtualDiskSpec;
fn deref(&self) -> &Self::Target {
self.get_file_backed_virtual_disk_spec()
}
}
impl std::ops::DerefMut for dyn FileBackedVirtualDiskSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_file_backed_virtual_disk_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn FileBackedVirtualDiskSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FileBackedVirtualDiskSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FileBackedVirtualDiskSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FileBackedVirtualDiskSpec"),
__out: &mut self.out,
}))
}
}
struct FileBackedVirtualDiskSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FileBackedVirtualDiskSpecTrait>>,
}
impl miniserde::de::Map for FileBackedVirtualDiskSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FileBackedVirtualDiskSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FileBackedVirtualDiskSpecTrait for FileBackedVirtualDiskSpec {
fn get_file_backed_virtual_disk_spec(&self) -> &super::structs::FileBackedVirtualDiskSpec { &self }
fn get_file_backed_virtual_disk_spec_mut(&mut self) -> &mut super::structs::FileBackedVirtualDiskSpec { self }
}
impl FileBackedVirtualDiskSpecTrait for SeSparseVirtualDiskSpec {
fn get_file_backed_virtual_disk_spec(&self) -> &super::structs::FileBackedVirtualDiskSpec { &self.file_backed_virtual_disk_spec_ }
fn get_file_backed_virtual_disk_spec_mut(&mut self) -> &mut super::structs::FileBackedVirtualDiskSpec { &mut self.file_backed_virtual_disk_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FileBackedVirtualDiskSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FileBackedVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Some(from.as_any_ref().downcast_ref::<SeSparseVirtualDiskSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FileBackedVirtualDiskSpec => Ok(from.as_any_box().downcast::<FileBackedVirtualDiskSpec>()?),
StructType::SeSparseVirtualDiskSpec => Ok(from.as_any_box().downcast::<SeSparseVirtualDiskSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VirtualMachineConnection* object describes a connection to the virtual
/// machine.
///
/// ***Since:*** vSphere API Release 7.0.1.0
///
/// ### How to access
/// - `VirtualMachine::drop_connections(list_of_connections)`
/// - `VirtualMachine::query_connections()`
pub trait VirtualMachineConnectionTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualMachineConnection parent struct
fn get_virtual_machine_connection(&self) -> &super::structs::VirtualMachineConnection;
/// Get a mutable reference to the VirtualMachineConnection parent struct
fn get_virtual_machine_connection_mut(&mut self) -> &mut super::structs::VirtualMachineConnection;
}
impl std::ops::Deref for dyn VirtualMachineConnectionTrait {
type Target = super::structs::VirtualMachineConnection;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_connection()
}
}
impl std::ops::DerefMut for dyn VirtualMachineConnectionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_connection_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineConnectionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineConnectionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineConnectionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineConnection"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineConnectionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineConnectionTrait>>,
}
impl miniserde::de::Map for VirtualMachineConnectionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineConnectionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineConnectionTrait for VirtualMachineConnection {
fn get_virtual_machine_connection(&self) -> &super::structs::VirtualMachineConnection { &self }
fn get_virtual_machine_connection_mut(&mut self) -> &mut super::structs::VirtualMachineConnection { self }
}
impl VirtualMachineConnectionTrait for VirtualMachineMksConnection {
fn get_virtual_machine_connection(&self) -> &super::structs::VirtualMachineConnection { &self.virtual_machine_connection_ }
fn get_virtual_machine_connection_mut(&mut self) -> &mut super::structs::VirtualMachineConnection { &mut self.virtual_machine_connection_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineConnectionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineConnection => Some(from.as_any_ref().downcast_ref::<VirtualMachineConnection>()?),
StructType::VirtualMachineMksConnection => Some(from.as_any_ref().downcast_ref::<VirtualMachineMksConnection>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineConnection => Ok(from.as_any_box().downcast::<VirtualMachineConnection>()?),
StructType::VirtualMachineMksConnection => Ok(from.as_any_box().downcast::<VirtualMachineMksConnection>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Defines the base criteria for data Comparator.
///
/// This structure may be used only with operations rendered under `/vsan`.
pub trait VsanComparatorTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VsanComparatorTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanComparatorTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanComparatorTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanComparator"),
__out: &mut self.out,
}))
}
}
struct VsanComparatorTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanComparatorTrait>>,
}
impl miniserde::de::Map for VsanComparatorTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanComparatorTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanComparatorTrait for VsanComparator {
}
impl VsanComparatorTrait for VsanJsonComparator {
}
impl VsanComparatorTrait for VsanNestJsonComparator {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanComparatorTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanComparator => Some(from.as_any_ref().downcast_ref::<VsanComparator>()?),
StructType::VsanJsonComparator => Some(from.as_any_ref().downcast_ref::<VsanJsonComparator>()?),
StructType::VsanNestJsonComparator => Some(from.as_any_ref().downcast_ref::<VsanNestJsonComparator>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanComparator => Ok(from.as_any_box().downcast::<VsanComparator>()?),
StructType::VsanJsonComparator => Ok(from.as_any_box().downcast::<VsanJsonComparator>()?),
StructType::VsanNestJsonComparator => Ok(from.as_any_box().downcast::<VsanNestJsonComparator>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Defines the base criteria for matching resources based on their types.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanMassCollector::vsan_retrieve_properties(mass_collector_specs).constraint?`
pub trait VsanResourceConstraintTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanResourceConstraint parent struct
fn get_vsan_resource_constraint(&self) -> &super::structs::VsanResourceConstraint;
/// Get a mutable reference to the VsanResourceConstraint parent struct
fn get_vsan_resource_constraint_mut(&mut self) -> &mut super::structs::VsanResourceConstraint;
}
impl std::ops::Deref for dyn VsanResourceConstraintTrait {
type Target = super::structs::VsanResourceConstraint;
fn deref(&self) -> &Self::Target {
self.get_vsan_resource_constraint()
}
}
impl std::ops::DerefMut for dyn VsanResourceConstraintTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_resource_constraint_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanResourceConstraintTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanResourceConstraintTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanResourceConstraintTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanResourceConstraint"),
__out: &mut self.out,
}))
}
}
struct VsanResourceConstraintTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanResourceConstraintTrait>>,
}
impl miniserde::de::Map for VsanResourceConstraintTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanResourceConstraintTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanResourceConstraintTrait for VsanResourceConstraint {
fn get_vsan_resource_constraint(&self) -> &super::structs::VsanResourceConstraint { &self }
fn get_vsan_resource_constraint_mut(&mut self) -> &mut super::structs::VsanResourceConstraint { self }
}
impl VsanResourceConstraintTrait for VsanCompositeConstraint {
fn get_vsan_resource_constraint(&self) -> &super::structs::VsanResourceConstraint { &self.vsan_resource_constraint_ }
fn get_vsan_resource_constraint_mut(&mut self) -> &mut super::structs::VsanResourceConstraint { &mut self.vsan_resource_constraint_ }
}
impl VsanResourceConstraintTrait for VsanPropertyConstraint {
fn get_vsan_resource_constraint(&self) -> &super::structs::VsanResourceConstraint { &self.vsan_resource_constraint_ }
fn get_vsan_resource_constraint_mut(&mut self) -> &mut super::structs::VsanResourceConstraint { &mut self.vsan_resource_constraint_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanResourceConstraintTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceConstraint => Some(from.as_any_ref().downcast_ref::<VsanResourceConstraint>()?),
StructType::VsanCompositeConstraint => Some(from.as_any_ref().downcast_ref::<VsanCompositeConstraint>()?),
StructType::VsanPropertyConstraint => Some(from.as_any_ref().downcast_ref::<VsanPropertyConstraint>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceConstraint => Ok(from.as_any_box().downcast::<VsanResourceConstraint>()?),
StructType::VsanCompositeConstraint => Ok(from.as_any_box().downcast::<VsanCompositeConstraint>()?),
StructType::VsanPropertyConstraint => Ok(from.as_any_box().downcast::<VsanPropertyConstraint>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for a pre-flight check issue.
///
/// Can be used directly
/// but usually a derived class with a specific issue type is used.
///
/// ### How to access
/// - `VsanUpgradeSystem::perform_vsan_upgrade_preflight_check().issues?[*]`
/// - `VsanUpgradeSystem::query_vsan_upgrade_status().history?[*]→VsanUpgradeSystemUpgradeHistoryPreflightFail.preflight_result.issues?[*]`
pub trait VsanUpgradeSystemPreflightCheckIssueTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanUpgradeSystemPreflightCheckIssue parent struct
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue;
/// Get a mutable reference to the VsanUpgradeSystemPreflightCheckIssue parent struct
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue;
}
impl std::ops::Deref for dyn VsanUpgradeSystemPreflightCheckIssueTrait {
type Target = super::structs::VsanUpgradeSystemPreflightCheckIssue;
fn deref(&self) -> &Self::Target {
self.get_vsan_upgrade_system_preflight_check_issue()
}
}
impl std::ops::DerefMut for dyn VsanUpgradeSystemPreflightCheckIssueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_upgrade_system_preflight_check_issue_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanUpgradeSystemPreflightCheckIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanUpgradeSystemPreflightCheckIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanUpgradeSystemPreflightCheckIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanUpgradeSystemPreflightCheckIssue"),
__out: &mut self.out,
}))
}
}
struct VsanUpgradeSystemPreflightCheckIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanUpgradeSystemPreflightCheckIssueTrait>>,
}
impl miniserde::de::Map for VsanUpgradeSystemPreflightCheckIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanUpgradeSystemPreflightCheckIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemPreflightCheckIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { self }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemApiBrokenIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemAutoClaimEnabledOnHostsIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemHostsDisconnectedIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemMissingHostsInClusterIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemNetworkPartitionIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemNotEnoughFreeCapacityIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemRogueHostsInClusterIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUpgradeSystemWrongEsxVersionIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanBrokenDiskChainIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanDisallowDataMovementIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanDisallowEvacuateDataIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanDiskUnhealthIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanHigherObjectsPresentDuringDowngradeIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanHostPropertyRetrieveIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanHostWithHybridDiskgroupIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanHostsCompressionOnlyNotSupported {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanMixedEsxVersionInClientIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanMixedEsxVersionIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanObjectInaccessibleIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanObjectPolicyIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanRemoteClusterNotCompatible {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUnknownScanIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl VsanUpgradeSystemPreflightCheckIssueTrait for VsanUnsupportedHighDiskVersionIssue {
fn get_vsan_upgrade_system_preflight_check_issue(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckIssue { &self.vsan_upgrade_system_preflight_check_issue_ }
fn get_vsan_upgrade_system_preflight_check_issue_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckIssue { &mut self.vsan_upgrade_system_preflight_check_issue_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanUpgradeSystemPreflightCheckIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemPreflightCheckIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemPreflightCheckIssue>()?),
StructType::VsanUpgradeSystemApiBrokenIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemApiBrokenIssue>()?),
StructType::VsanUpgradeSystemAutoClaimEnabledOnHostsIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemAutoClaimEnabledOnHostsIssue>()?),
StructType::VsanUpgradeSystemHostsDisconnectedIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemHostsDisconnectedIssue>()?),
StructType::VsanUpgradeSystemMissingHostsInClusterIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemMissingHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemNetworkPartitionIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemNetworkPartitionIssue>()?),
StructType::VsanUpgradeSystemNotEnoughFreeCapacityIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemNotEnoughFreeCapacityIssue>()?),
StructType::VsanUpgradeSystemRogueHostsInClusterIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemRogueHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanUpgradeSystemWrongEsxVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemWrongEsxVersionIssue>()?),
StructType::VsanBrokenDiskChainIssue => Some(from.as_any_ref().downcast_ref::<VsanBrokenDiskChainIssue>()?),
StructType::VsanDisallowDataMovementIssue => Some(from.as_any_ref().downcast_ref::<VsanDisallowDataMovementIssue>()?),
StructType::VsanDisallowEvacuateDataIssue => Some(from.as_any_ref().downcast_ref::<VsanDisallowEvacuateDataIssue>()?),
StructType::VsanDiskUnhealthIssue => Some(from.as_any_ref().downcast_ref::<VsanDiskUnhealthIssue>()?),
StructType::VsanHigherObjectsPresentDuringDowngradeIssue => Some(from.as_any_ref().downcast_ref::<VsanHigherObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanHostPropertyRetrieveIssue => Some(from.as_any_ref().downcast_ref::<VsanHostPropertyRetrieveIssue>()?),
StructType::VsanHostWithHybridDiskgroupIssue => Some(from.as_any_ref().downcast_ref::<VsanHostWithHybridDiskgroupIssue>()?),
StructType::VsanHostsCompressionOnlyNotSupported => Some(from.as_any_ref().downcast_ref::<VsanHostsCompressionOnlyNotSupported>()?),
StructType::VsanMixedEsxVersionInClientIssue => Some(from.as_any_ref().downcast_ref::<VsanMixedEsxVersionInClientIssue>()?),
StructType::VsanMixedEsxVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanMixedEsxVersionIssue>()?),
StructType::VsanObjectInaccessibleIssue => Some(from.as_any_ref().downcast_ref::<VsanObjectInaccessibleIssue>()?),
StructType::VsanObjectPolicyIssue => Some(from.as_any_ref().downcast_ref::<VsanObjectPolicyIssue>()?),
StructType::VsanRemoteClusterNotCompatible => Some(from.as_any_ref().downcast_ref::<VsanRemoteClusterNotCompatible>()?),
StructType::VsanUnknownScanIssue => Some(from.as_any_ref().downcast_ref::<VsanUnknownScanIssue>()?),
StructType::VsanUnsupportedHighDiskVersionIssue => Some(from.as_any_ref().downcast_ref::<VsanUnsupportedHighDiskVersionIssue>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemPreflightCheckIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemPreflightCheckIssue>()?),
StructType::VsanUpgradeSystemApiBrokenIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemApiBrokenIssue>()?),
StructType::VsanUpgradeSystemAutoClaimEnabledOnHostsIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemAutoClaimEnabledOnHostsIssue>()?),
StructType::VsanUpgradeSystemHostsDisconnectedIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemHostsDisconnectedIssue>()?),
StructType::VsanUpgradeSystemMissingHostsInClusterIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemMissingHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemNetworkPartitionIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemNetworkPartitionIssue>()?),
StructType::VsanUpgradeSystemNotEnoughFreeCapacityIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemNotEnoughFreeCapacityIssue>()?),
StructType::VsanUpgradeSystemRogueHostsInClusterIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemRogueHostsInClusterIssue>()?),
StructType::VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanUpgradeSystemWrongEsxVersionIssue => Ok(from.as_any_box().downcast::<VsanUpgradeSystemWrongEsxVersionIssue>()?),
StructType::VsanBrokenDiskChainIssue => Ok(from.as_any_box().downcast::<VsanBrokenDiskChainIssue>()?),
StructType::VsanDisallowDataMovementIssue => Ok(from.as_any_box().downcast::<VsanDisallowDataMovementIssue>()?),
StructType::VsanDisallowEvacuateDataIssue => Ok(from.as_any_box().downcast::<VsanDisallowEvacuateDataIssue>()?),
StructType::VsanDiskUnhealthIssue => Ok(from.as_any_box().downcast::<VsanDiskUnhealthIssue>()?),
StructType::VsanHigherObjectsPresentDuringDowngradeIssue => Ok(from.as_any_box().downcast::<VsanHigherObjectsPresentDuringDowngradeIssue>()?),
StructType::VsanHostPropertyRetrieveIssue => Ok(from.as_any_box().downcast::<VsanHostPropertyRetrieveIssue>()?),
StructType::VsanHostWithHybridDiskgroupIssue => Ok(from.as_any_box().downcast::<VsanHostWithHybridDiskgroupIssue>()?),
StructType::VsanHostsCompressionOnlyNotSupported => Ok(from.as_any_box().downcast::<VsanHostsCompressionOnlyNotSupported>()?),
StructType::VsanMixedEsxVersionInClientIssue => Ok(from.as_any_box().downcast::<VsanMixedEsxVersionInClientIssue>()?),
StructType::VsanMixedEsxVersionIssue => Ok(from.as_any_box().downcast::<VsanMixedEsxVersionIssue>()?),
StructType::VsanObjectInaccessibleIssue => Ok(from.as_any_box().downcast::<VsanObjectInaccessibleIssue>()?),
StructType::VsanObjectPolicyIssue => Ok(from.as_any_box().downcast::<VsanObjectPolicyIssue>()?),
StructType::VsanRemoteClusterNotCompatible => Ok(from.as_any_box().downcast::<VsanRemoteClusterNotCompatible>()?),
StructType::VsanUnknownScanIssue => Ok(from.as_any_box().downcast::<VsanUnknownScanIssue>()?),
StructType::VsanUnsupportedHighDiskVersionIssue => Ok(from.as_any_box().downcast::<VsanUnsupportedHighDiskVersionIssue>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Captures the result of a VSAN upgrade pre-flight check.
///
/// ### How to access
/// - `VsanUpgradeSystem::perform_vsan_upgrade_preflight_check()`
/// - `VsanUpgradeSystem::query_vsan_upgrade_status().history?[*]→VsanUpgradeSystemUpgradeHistoryPreflightFail.preflight_result`
pub trait VsanUpgradeSystemPreflightCheckResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanUpgradeSystemPreflightCheckResult parent struct
fn get_vsan_upgrade_system_preflight_check_result(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckResult;
/// Get a mutable reference to the VsanUpgradeSystemPreflightCheckResult parent struct
fn get_vsan_upgrade_system_preflight_check_result_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckResult;
}
impl std::ops::Deref for dyn VsanUpgradeSystemPreflightCheckResultTrait {
type Target = super::structs::VsanUpgradeSystemPreflightCheckResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_upgrade_system_preflight_check_result()
}
}
impl std::ops::DerefMut for dyn VsanUpgradeSystemPreflightCheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_upgrade_system_preflight_check_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanUpgradeSystemPreflightCheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanUpgradeSystemPreflightCheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanUpgradeSystemPreflightCheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanUpgradeSystemPreflightCheckResult"),
__out: &mut self.out,
}))
}
}
struct VsanUpgradeSystemPreflightCheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanUpgradeSystemPreflightCheckResultTrait>>,
}
impl miniserde::de::Map for VsanUpgradeSystemPreflightCheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanUpgradeSystemPreflightCheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanUpgradeSystemPreflightCheckResultTrait for VsanUpgradeSystemPreflightCheckResult {
fn get_vsan_upgrade_system_preflight_check_result(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckResult { &self }
fn get_vsan_upgrade_system_preflight_check_result_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckResult { self }
}
impl VsanUpgradeSystemPreflightCheckResultTrait for VsanDiskFormatConversionCheckResult {
fn get_vsan_upgrade_system_preflight_check_result(&self) -> &super::structs::VsanUpgradeSystemPreflightCheckResult { &self.vsan_upgrade_system_preflight_check_result_ }
fn get_vsan_upgrade_system_preflight_check_result_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemPreflightCheckResult { &mut self.vsan_upgrade_system_preflight_check_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanUpgradeSystemPreflightCheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemPreflightCheckResult => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemPreflightCheckResult>()?),
StructType::VsanDiskFormatConversionCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskFormatConversionCheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemPreflightCheckResult => Ok(from.as_any_box().downcast::<VsanUpgradeSystemPreflightCheckResult>()?),
StructType::VsanDiskFormatConversionCheckResult => Ok(from.as_any_box().downcast::<VsanDiskFormatConversionCheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Captures one "log entry" of an upgrade process.
///
/// ### How to access
/// - `VsanUpgradeSystem::query_vsan_upgrade_status().history?[*]`
pub trait VsanUpgradeSystemUpgradeHistoryItemTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanUpgradeSystemUpgradeHistoryItem parent struct
fn get_vsan_upgrade_system_upgrade_history_item(&self) -> &super::structs::VsanUpgradeSystemUpgradeHistoryItem;
/// Get a mutable reference to the VsanUpgradeSystemUpgradeHistoryItem parent struct
fn get_vsan_upgrade_system_upgrade_history_item_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeHistoryItem;
}
impl std::ops::Deref for dyn VsanUpgradeSystemUpgradeHistoryItemTrait {
type Target = super::structs::VsanUpgradeSystemUpgradeHistoryItem;
fn deref(&self) -> &Self::Target {
self.get_vsan_upgrade_system_upgrade_history_item()
}
}
impl std::ops::DerefMut for dyn VsanUpgradeSystemUpgradeHistoryItemTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_upgrade_system_upgrade_history_item_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanUpgradeSystemUpgradeHistoryItemTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanUpgradeSystemUpgradeHistoryItemTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanUpgradeSystemUpgradeHistoryItemTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanUpgradeSystemUpgradeHistoryItem"),
__out: &mut self.out,
}))
}
}
struct VsanUpgradeSystemUpgradeHistoryItemTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanUpgradeSystemUpgradeHistoryItemTrait>>,
}
impl miniserde::de::Map for VsanUpgradeSystemUpgradeHistoryItemTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanUpgradeSystemUpgradeHistoryItemTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanUpgradeSystemUpgradeHistoryItemTrait for VsanUpgradeSystemUpgradeHistoryItem {
fn get_vsan_upgrade_system_upgrade_history_item(&self) -> &super::structs::VsanUpgradeSystemUpgradeHistoryItem { &self }
fn get_vsan_upgrade_system_upgrade_history_item_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeHistoryItem { self }
}
impl VsanUpgradeSystemUpgradeHistoryItemTrait for VsanUpgradeSystemUpgradeHistoryDiskGroupOp {
fn get_vsan_upgrade_system_upgrade_history_item(&self) -> &super::structs::VsanUpgradeSystemUpgradeHistoryItem { &self.vsan_upgrade_system_upgrade_history_item_ }
fn get_vsan_upgrade_system_upgrade_history_item_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeHistoryItem { &mut self.vsan_upgrade_system_upgrade_history_item_ }
}
impl VsanUpgradeSystemUpgradeHistoryItemTrait for VsanUpgradeSystemUpgradeHistoryPreflightFail {
fn get_vsan_upgrade_system_upgrade_history_item(&self) -> &super::structs::VsanUpgradeSystemUpgradeHistoryItem { &self.vsan_upgrade_system_upgrade_history_item_ }
fn get_vsan_upgrade_system_upgrade_history_item_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeHistoryItem { &mut self.vsan_upgrade_system_upgrade_history_item_ }
}
impl VsanUpgradeSystemUpgradeHistoryItemTrait for VsanUpgradeSystemUpgradeHistoryStoragePoolOp {
fn get_vsan_upgrade_system_upgrade_history_item(&self) -> &super::structs::VsanUpgradeSystemUpgradeHistoryItem { &self.vsan_upgrade_system_upgrade_history_item_ }
fn get_vsan_upgrade_system_upgrade_history_item_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeHistoryItem { &mut self.vsan_upgrade_system_upgrade_history_item_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanUpgradeSystemUpgradeHistoryItemTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemUpgradeHistoryItem => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryItem>()?),
StructType::VsanUpgradeSystemUpgradeHistoryDiskGroupOp => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryDiskGroupOp>()?),
StructType::VsanUpgradeSystemUpgradeHistoryPreflightFail => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryPreflightFail>()?),
StructType::VsanUpgradeSystemUpgradeHistoryStoragePoolOp => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeHistoryStoragePoolOp>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemUpgradeHistoryItem => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryItem>()?),
StructType::VsanUpgradeSystemUpgradeHistoryDiskGroupOp => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryDiskGroupOp>()?),
StructType::VsanUpgradeSystemUpgradeHistoryPreflightFail => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryPreflightFail>()?),
StructType::VsanUpgradeSystemUpgradeHistoryStoragePoolOp => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeHistoryStoragePoolOp>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Captures the status of a VSAN cluster on-disk format upgrade.
///
/// Contains
/// information about progress, result, and a detailed log of operations.
///
/// ### How to access
/// - `VsanUpgradeSystem::query_vsan_upgrade_status()`
pub trait VsanUpgradeSystemUpgradeStatusTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanUpgradeSystemUpgradeStatus parent struct
fn get_vsan_upgrade_system_upgrade_status(&self) -> &super::structs::VsanUpgradeSystemUpgradeStatus;
/// Get a mutable reference to the VsanUpgradeSystemUpgradeStatus parent struct
fn get_vsan_upgrade_system_upgrade_status_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeStatus;
}
impl std::ops::Deref for dyn VsanUpgradeSystemUpgradeStatusTrait {
type Target = super::structs::VsanUpgradeSystemUpgradeStatus;
fn deref(&self) -> &Self::Target {
self.get_vsan_upgrade_system_upgrade_status()
}
}
impl std::ops::DerefMut for dyn VsanUpgradeSystemUpgradeStatusTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_upgrade_system_upgrade_status_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanUpgradeSystemUpgradeStatusTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanUpgradeSystemUpgradeStatusTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanUpgradeSystemUpgradeStatusTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanUpgradeSystemUpgradeStatus"),
__out: &mut self.out,
}))
}
}
struct VsanUpgradeSystemUpgradeStatusTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanUpgradeSystemUpgradeStatusTrait>>,
}
impl miniserde::de::Map for VsanUpgradeSystemUpgradeStatusTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanUpgradeSystemUpgradeStatusTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanUpgradeSystemUpgradeStatusTrait for VsanUpgradeSystemUpgradeStatus {
fn get_vsan_upgrade_system_upgrade_status(&self) -> &super::structs::VsanUpgradeSystemUpgradeStatus { &self }
fn get_vsan_upgrade_system_upgrade_status_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeStatus { self }
}
impl VsanUpgradeSystemUpgradeStatusTrait for VsanUpgradeStatusEx {
fn get_vsan_upgrade_system_upgrade_status(&self) -> &super::structs::VsanUpgradeSystemUpgradeStatus { &self.vsan_upgrade_system_upgrade_status_ }
fn get_vsan_upgrade_system_upgrade_status_mut(&mut self) -> &mut super::structs::VsanUpgradeSystemUpgradeStatus { &mut self.vsan_upgrade_system_upgrade_status_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanUpgradeSystemUpgradeStatusTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemUpgradeStatus => Some(from.as_any_ref().downcast_ref::<VsanUpgradeSystemUpgradeStatus>()?),
StructType::VsanUpgradeStatusEx => Some(from.as_any_ref().downcast_ref::<VsanUpgradeStatusEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanUpgradeSystemUpgradeStatus => Ok(from.as_any_box().downcast::<VsanUpgradeSystemUpgradeStatus>()?),
StructType::VsanUpgradeStatusEx => Ok(from.as_any_box().downcast::<VsanUpgradeStatusEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type defines the action initiated by a scheduled task or alarm.
///
/// This is an abstract type.
/// A client creates a scheduled task or an alarm each of which triggers
/// an action, defined by a subclass of this type.
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).action`
/// - `ScheduledTaskManager::create_scheduled_task(spec).action`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).action`
/// - `Alarm::reconfigure_alarm(spec).action?→AlarmTriggeringAction.action`
/// - `AlarmManager::create_alarm(spec).action?→AlarmTriggeringAction.action`
pub trait ActionTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ActionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ActionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ActionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("Action"),
__out: &mut self.out,
}))
}
}
struct ActionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ActionTrait>>,
}
impl miniserde::de::Map for ActionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ActionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ActionTrait for Action {
}
impl ActionTrait for CreateTaskAction {
}
impl ActionTrait for MethodAction {
}
impl ActionTrait for RunScriptAction {
}
impl ActionTrait for SendEmailAction {
}
impl ActionTrait for SendSnmpAction {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ActionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::Action => Some(from.as_any_ref().downcast_ref::<Action>()?),
StructType::CreateTaskAction => Some(from.as_any_ref().downcast_ref::<CreateTaskAction>()?),
StructType::MethodAction => Some(from.as_any_ref().downcast_ref::<MethodAction>()?),
StructType::RunScriptAction => Some(from.as_any_ref().downcast_ref::<RunScriptAction>()?),
StructType::SendEmailAction => Some(from.as_any_ref().downcast_ref::<SendEmailAction>()?),
StructType::SendSnmpAction => Some(from.as_any_ref().downcast_ref::<SendSnmpAction>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::Action => Ok(from.as_any_box().downcast::<Action>()?),
StructType::CreateTaskAction => Ok(from.as_any_box().downcast::<CreateTaskAction>()?),
StructType::MethodAction => Ok(from.as_any_box().downcast::<MethodAction>()?),
StructType::RunScriptAction => Ok(from.as_any_box().downcast::<RunScriptAction>()?),
StructType::SendEmailAction => Ok(from.as_any_box().downcast::<SendEmailAction>()?),
StructType::SendSnmpAction => Ok(from.as_any_box().downcast::<SendSnmpAction>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Action invoked by triggered alarm.
///
/// This is an abstract type.
///
/// ### How to access
/// - `Alarm::reconfigure_alarm(spec).action?`
/// - `AlarmManager::create_alarm(spec).action?`
pub trait AlarmActionTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn AlarmActionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AlarmActionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AlarmActionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AlarmAction"),
__out: &mut self.out,
}))
}
}
struct AlarmActionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AlarmActionTrait>>,
}
impl miniserde::de::Map for AlarmActionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AlarmActionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AlarmActionTrait for AlarmAction {
}
impl AlarmActionTrait for AlarmTriggeringAction {
}
impl AlarmActionTrait for GroupAlarmAction {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AlarmActionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AlarmAction => Some(from.as_any_ref().downcast_ref::<AlarmAction>()?),
StructType::AlarmTriggeringAction => Some(from.as_any_ref().downcast_ref::<AlarmTriggeringAction>()?),
StructType::GroupAlarmAction => Some(from.as_any_ref().downcast_ref::<GroupAlarmAction>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AlarmAction => Ok(from.as_any_box().downcast::<AlarmAction>()?),
StructType::AlarmTriggeringAction => Ok(from.as_any_box().downcast::<AlarmTriggeringAction>()?),
StructType::GroupAlarmAction => Ok(from.as_any_box().downcast::<GroupAlarmAction>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for the expressions specifying the conditions that define
/// the status of an alarm.
///
/// ### How to access
/// - `AlarmManager::default_expression`
/// - `Alarm::reconfigure_alarm(spec).expression`
/// - `AlarmManager::create_alarm(spec).expression`
pub trait AlarmExpressionTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn AlarmExpressionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AlarmExpressionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AlarmExpressionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AlarmExpression"),
__out: &mut self.out,
}))
}
}
struct AlarmExpressionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AlarmExpressionTrait>>,
}
impl miniserde::de::Map for AlarmExpressionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AlarmExpressionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AlarmExpressionTrait for AlarmExpression {
}
impl AlarmExpressionTrait for AndAlarmExpression {
}
impl AlarmExpressionTrait for EventAlarmExpression {
}
impl AlarmExpressionTrait for MetricAlarmExpression {
}
impl AlarmExpressionTrait for OrAlarmExpression {
}
impl AlarmExpressionTrait for StateAlarmExpression {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AlarmExpressionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AlarmExpression => Some(from.as_any_ref().downcast_ref::<AlarmExpression>()?),
StructType::AndAlarmExpression => Some(from.as_any_ref().downcast_ref::<AndAlarmExpression>()?),
StructType::EventAlarmExpression => Some(from.as_any_ref().downcast_ref::<EventAlarmExpression>()?),
StructType::MetricAlarmExpression => Some(from.as_any_ref().downcast_ref::<MetricAlarmExpression>()?),
StructType::OrAlarmExpression => Some(from.as_any_ref().downcast_ref::<OrAlarmExpression>()?),
StructType::StateAlarmExpression => Some(from.as_any_ref().downcast_ref::<StateAlarmExpression>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AlarmExpression => Ok(from.as_any_box().downcast::<AlarmExpression>()?),
StructType::AndAlarmExpression => Ok(from.as_any_box().downcast::<AndAlarmExpression>()?),
StructType::EventAlarmExpression => Ok(from.as_any_box().downcast::<EventAlarmExpression>()?),
StructType::MetricAlarmExpression => Ok(from.as_any_box().downcast::<MetricAlarmExpression>()?),
StructType::OrAlarmExpression => Ok(from.as_any_box().downcast::<OrAlarmExpression>()?),
StructType::StateAlarmExpression => Ok(from.as_any_box().downcast::<StateAlarmExpression>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Parameters for alarm creation.
///
/// ### How to access
/// - `Alarm::reconfigure_alarm(spec)`
/// - `AlarmManager::create_alarm(spec)`
pub trait AlarmSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the AlarmSpec parent struct
fn get_alarm_spec(&self) -> &super::structs::AlarmSpec;
/// Get a mutable reference to the AlarmSpec parent struct
fn get_alarm_spec_mut(&mut self) -> &mut super::structs::AlarmSpec;
}
impl std::ops::Deref for dyn AlarmSpecTrait {
type Target = super::structs::AlarmSpec;
fn deref(&self) -> &Self::Target {
self.get_alarm_spec()
}
}
impl std::ops::DerefMut for dyn AlarmSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_alarm_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn AlarmSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AlarmSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AlarmSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AlarmSpec"),
__out: &mut self.out,
}))
}
}
struct AlarmSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AlarmSpecTrait>>,
}
impl miniserde::de::Map for AlarmSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AlarmSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AlarmSpecTrait for AlarmSpec {
fn get_alarm_spec(&self) -> &super::structs::AlarmSpec { &self }
fn get_alarm_spec_mut(&mut self) -> &mut super::structs::AlarmSpec { self }
}
impl AlarmSpecTrait for AlarmInfo {
fn get_alarm_spec(&self) -> &super::structs::AlarmSpec { &self.alarm_spec_ }
fn get_alarm_spec_mut(&mut self) -> &mut super::structs::AlarmSpec { &mut self.alarm_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AlarmSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AlarmSpec => Some(from.as_any_ref().downcast_ref::<AlarmSpec>()?),
StructType::AlarmInfo => Some(from.as_any_ref().downcast_ref::<AlarmInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AlarmSpec => Ok(from.as_any_box().downcast::<AlarmSpec>()?),
StructType::AlarmInfo => Ok(from.as_any_box().downcast::<AlarmInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all action recommendations in VirtualCenter.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action`
/// - `ClusterComputeResource::action_history.action`
/// - `ClusterComputeResource::recommendation.action?[*]`
/// - `Datastore::datastore_enter_maintenance_mode().recommendations?[*].action?[*]`
/// - `ClusterComputeResource::cluster_enter_maintenance_mode().recommendations?[*].action?[*]`
/// - `ClusterComputeResource::place_vm().recommendations?[*].action?[*]`
/// - `StorageResourceManager::recommend_datastores().recommendations?[*].action?[*]`
pub trait ClusterActionTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterAction parent struct
fn get_cluster_action(&self) -> &super::structs::ClusterAction;
/// Get a mutable reference to the ClusterAction parent struct
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction;
}
impl std::ops::Deref for dyn ClusterActionTrait {
type Target = super::structs::ClusterAction;
fn deref(&self) -> &Self::Target {
self.get_cluster_action()
}
}
impl std::ops::DerefMut for dyn ClusterActionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_action_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterActionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterActionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterActionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterAction"),
__out: &mut self.out,
}))
}
}
struct ClusterActionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterActionTrait>>,
}
impl miniserde::de::Map for ClusterActionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterActionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterActionTrait for ClusterAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { self }
}
impl ClusterActionTrait for ClusterClusterInitialPlacementAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for ClusterHostInfraUpdateHaModeAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for ClusterHostPowerAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for ClusterInitialPlacementAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for ClusterMigrationAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for PlacementAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for HbrDiskMigrationAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for StorageMigrationAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl ClusterActionTrait for StoragePlacementAction {
fn get_cluster_action(&self) -> &super::structs::ClusterAction { &self.cluster_action_ }
fn get_cluster_action_mut(&mut self) -> &mut super::structs::ClusterAction { &mut self.cluster_action_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterActionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAction => Some(from.as_any_ref().downcast_ref::<ClusterAction>()?),
StructType::ClusterClusterInitialPlacementAction => Some(from.as_any_ref().downcast_ref::<ClusterClusterInitialPlacementAction>()?),
StructType::ClusterHostInfraUpdateHaModeAction => Some(from.as_any_ref().downcast_ref::<ClusterHostInfraUpdateHaModeAction>()?),
StructType::ClusterHostPowerAction => Some(from.as_any_ref().downcast_ref::<ClusterHostPowerAction>()?),
StructType::ClusterInitialPlacementAction => Some(from.as_any_ref().downcast_ref::<ClusterInitialPlacementAction>()?),
StructType::ClusterMigrationAction => Some(from.as_any_ref().downcast_ref::<ClusterMigrationAction>()?),
StructType::PlacementAction => Some(from.as_any_ref().downcast_ref::<PlacementAction>()?),
StructType::HbrDiskMigrationAction => Some(from.as_any_ref().downcast_ref::<HbrDiskMigrationAction>()?),
StructType::StorageMigrationAction => Some(from.as_any_ref().downcast_ref::<StorageMigrationAction>()?),
StructType::StoragePlacementAction => Some(from.as_any_ref().downcast_ref::<StoragePlacementAction>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterAction => Ok(from.as_any_box().downcast::<ClusterAction>()?),
StructType::ClusterClusterInitialPlacementAction => Ok(from.as_any_box().downcast::<ClusterClusterInitialPlacementAction>()?),
StructType::ClusterHostInfraUpdateHaModeAction => Ok(from.as_any_box().downcast::<ClusterHostInfraUpdateHaModeAction>()?),
StructType::ClusterHostPowerAction => Ok(from.as_any_box().downcast::<ClusterHostPowerAction>()?),
StructType::ClusterInitialPlacementAction => Ok(from.as_any_box().downcast::<ClusterInitialPlacementAction>()?),
StructType::ClusterMigrationAction => Ok(from.as_any_box().downcast::<ClusterMigrationAction>()?),
StructType::PlacementAction => Ok(from.as_any_box().downcast::<PlacementAction>()?),
StructType::HbrDiskMigrationAction => Ok(from.as_any_box().downcast::<HbrDiskMigrationAction>()?),
StructType::StorageMigrationAction => Ok(from.as_any_box().downcast::<StorageMigrationAction>()?),
StructType::StoragePlacementAction => Ok(from.as_any_box().downcast::<StoragePlacementAction>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for admission control related information of a vSphere HA cluster.
///
/// ### How to access
/// - `ComputeResource::summary→ClusterComputeResourceSummary.admission_control_info?`
/// - `ClusterComputeResource::summary_ex.admission_control_info?`
/// - `ClusterComputeResource::summary→ClusterComputeResourceSummary.admission_control_info?`
pub trait ClusterDasAdmissionControlInfoTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ClusterDasAdmissionControlInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDasAdmissionControlInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDasAdmissionControlInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDasAdmissionControlInfo"),
__out: &mut self.out,
}))
}
}
struct ClusterDasAdmissionControlInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDasAdmissionControlInfoTrait>>,
}
impl miniserde::de::Map for ClusterDasAdmissionControlInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDasAdmissionControlInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDasAdmissionControlInfoTrait for ClusterDasAdmissionControlInfo {
}
impl ClusterDasAdmissionControlInfoTrait for ClusterFailoverHostAdmissionControlInfo {
}
impl ClusterDasAdmissionControlInfoTrait for ClusterFailoverLevelAdmissionControlInfo {
}
impl ClusterDasAdmissionControlInfoTrait for ClusterFailoverResourcesAdmissionControlInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDasAdmissionControlInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAdmissionControlInfo>()?),
StructType::ClusterFailoverHostAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverHostAdmissionControlInfo>()?),
StructType::ClusterFailoverLevelAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverLevelAdmissionControlInfo>()?),
StructType::ClusterFailoverResourcesAdmissionControlInfo => Some(from.as_any_ref().downcast_ref::<ClusterFailoverResourcesAdmissionControlInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterDasAdmissionControlInfo>()?),
StructType::ClusterFailoverHostAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverHostAdmissionControlInfo>()?),
StructType::ClusterFailoverLevelAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverLevelAdmissionControlInfo>()?),
StructType::ClusterFailoverResourcesAdmissionControlInfo => Ok(from.as_any_box().downcast::<ClusterFailoverResourcesAdmissionControlInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for specifying how admission control should be done for vSphere HA.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.admission_control_policy?`
/// - `ClusterComputeResource::configuration.das_config.admission_control_policy?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.admission_control_policy?`
/// - `Folder::create_cluster(spec).das_config?.admission_control_policy?`
/// - `Folder::create_cluster_ex(spec).das_config?.admission_control_policy?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?`
/// - `StoragePod::create_cluster(spec).das_config?.admission_control_policy?`
/// - `StoragePod::create_cluster_ex(spec).das_config?.admission_control_policy?`
///
/// *(10 of 18 paths)*
pub trait ClusterDasAdmissionControlPolicyTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterDasAdmissionControlPolicy parent struct
fn get_cluster_das_admission_control_policy(&self) -> &super::structs::ClusterDasAdmissionControlPolicy;
/// Get a mutable reference to the ClusterDasAdmissionControlPolicy parent struct
fn get_cluster_das_admission_control_policy_mut(&mut self) -> &mut super::structs::ClusterDasAdmissionControlPolicy;
}
impl std::ops::Deref for dyn ClusterDasAdmissionControlPolicyTrait {
type Target = super::structs::ClusterDasAdmissionControlPolicy;
fn deref(&self) -> &Self::Target {
self.get_cluster_das_admission_control_policy()
}
}
impl std::ops::DerefMut for dyn ClusterDasAdmissionControlPolicyTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_das_admission_control_policy_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterDasAdmissionControlPolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDasAdmissionControlPolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDasAdmissionControlPolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDasAdmissionControlPolicy"),
__out: &mut self.out,
}))
}
}
struct ClusterDasAdmissionControlPolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDasAdmissionControlPolicyTrait>>,
}
impl miniserde::de::Map for ClusterDasAdmissionControlPolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDasAdmissionControlPolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDasAdmissionControlPolicyTrait for ClusterDasAdmissionControlPolicy {
fn get_cluster_das_admission_control_policy(&self) -> &super::structs::ClusterDasAdmissionControlPolicy { &self }
fn get_cluster_das_admission_control_policy_mut(&mut self) -> &mut super::structs::ClusterDasAdmissionControlPolicy { self }
}
impl ClusterDasAdmissionControlPolicyTrait for ClusterFailoverHostAdmissionControlPolicy {
fn get_cluster_das_admission_control_policy(&self) -> &super::structs::ClusterDasAdmissionControlPolicy { &self.cluster_das_admission_control_policy_ }
fn get_cluster_das_admission_control_policy_mut(&mut self) -> &mut super::structs::ClusterDasAdmissionControlPolicy { &mut self.cluster_das_admission_control_policy_ }
}
impl ClusterDasAdmissionControlPolicyTrait for ClusterFailoverLevelAdmissionControlPolicy {
fn get_cluster_das_admission_control_policy(&self) -> &super::structs::ClusterDasAdmissionControlPolicy { &self.cluster_das_admission_control_policy_ }
fn get_cluster_das_admission_control_policy_mut(&mut self) -> &mut super::structs::ClusterDasAdmissionControlPolicy { &mut self.cluster_das_admission_control_policy_ }
}
impl ClusterDasAdmissionControlPolicyTrait for ClusterFailoverResourcesAdmissionControlPolicy {
fn get_cluster_das_admission_control_policy(&self) -> &super::structs::ClusterDasAdmissionControlPolicy { &self.cluster_das_admission_control_policy_ }
fn get_cluster_das_admission_control_policy_mut(&mut self) -> &mut super::structs::ClusterDasAdmissionControlPolicy { &mut self.cluster_das_admission_control_policy_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDasAdmissionControlPolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterDasAdmissionControlPolicy>()?),
StructType::ClusterFailoverHostAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverHostAdmissionControlPolicy>()?),
StructType::ClusterFailoverLevelAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverLevelAdmissionControlPolicy>()?),
StructType::ClusterFailoverResourcesAdmissionControlPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFailoverResourcesAdmissionControlPolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterDasAdmissionControlPolicy>()?),
StructType::ClusterFailoverHostAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverHostAdmissionControlPolicy>()?),
StructType::ClusterFailoverLevelAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverLevelAdmissionControlPolicy>()?),
StructType::ClusterFailoverResourcesAdmissionControlPolicy => Ok(from.as_any_box().downcast::<ClusterFailoverResourcesAdmissionControlPolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for advanced runtime information related to the high
/// availability service for a cluster.
///
/// ### How to access
/// - `ClusterComputeResource::retrieve_das_advanced_runtime_info()`
pub trait ClusterDasAdvancedRuntimeInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterDasAdvancedRuntimeInfo parent struct
fn get_cluster_das_advanced_runtime_info(&self) -> &super::structs::ClusterDasAdvancedRuntimeInfo;
/// Get a mutable reference to the ClusterDasAdvancedRuntimeInfo parent struct
fn get_cluster_das_advanced_runtime_info_mut(&mut self) -> &mut super::structs::ClusterDasAdvancedRuntimeInfo;
}
impl std::ops::Deref for dyn ClusterDasAdvancedRuntimeInfoTrait {
type Target = super::structs::ClusterDasAdvancedRuntimeInfo;
fn deref(&self) -> &Self::Target {
self.get_cluster_das_advanced_runtime_info()
}
}
impl std::ops::DerefMut for dyn ClusterDasAdvancedRuntimeInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_das_advanced_runtime_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterDasAdvancedRuntimeInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDasAdvancedRuntimeInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDasAdvancedRuntimeInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDasAdvancedRuntimeInfo"),
__out: &mut self.out,
}))
}
}
struct ClusterDasAdvancedRuntimeInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDasAdvancedRuntimeInfoTrait>>,
}
impl miniserde::de::Map for ClusterDasAdvancedRuntimeInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDasAdvancedRuntimeInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDasAdvancedRuntimeInfoTrait for ClusterDasAdvancedRuntimeInfo {
fn get_cluster_das_advanced_runtime_info(&self) -> &super::structs::ClusterDasAdvancedRuntimeInfo { &self }
fn get_cluster_das_advanced_runtime_info_mut(&mut self) -> &mut super::structs::ClusterDasAdvancedRuntimeInfo { self }
}
impl ClusterDasAdvancedRuntimeInfoTrait for ClusterDasFailoverLevelAdvancedRuntimeInfo {
fn get_cluster_das_advanced_runtime_info(&self) -> &super::structs::ClusterDasAdvancedRuntimeInfo { &self.cluster_das_advanced_runtime_info_ }
fn get_cluster_das_advanced_runtime_info_mut(&mut self) -> &mut super::structs::ClusterDasAdvancedRuntimeInfo { &mut self.cluster_das_advanced_runtime_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDasAdvancedRuntimeInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdvancedRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAdvancedRuntimeInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasFailoverLevelAdvancedRuntimeInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasAdvancedRuntimeInfo => Ok(from.as_any_box().downcast::<ClusterDasAdvancedRuntimeInfo>()?),
StructType::ClusterDasFailoverLevelAdvancedRuntimeInfo => Ok(from.as_any_box().downcast::<ClusterDasFailoverLevelAdvancedRuntimeInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for DAS data for high availability service for a cluster.
///
/// ### How to access
/// - `ComputeResource::summary→ClusterComputeResourceSummary.das_data?`
/// - `ClusterComputeResource::summary_ex.das_data?`
/// - `ClusterComputeResource::summary→ClusterComputeResourceSummary.das_data?`
pub trait ClusterDasDataTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ClusterDasDataTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDasDataTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDasDataTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDasData"),
__out: &mut self.out,
}))
}
}
struct ClusterDasDataTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDasDataTrait>>,
}
impl miniserde::de::Map for ClusterDasDataTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDasDataTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDasDataTrait for ClusterDasData {
}
impl ClusterDasDataTrait for ClusterDasDataSummary {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDasDataTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasData => Some(from.as_any_ref().downcast_ref::<ClusterDasData>()?),
StructType::ClusterDasDataSummary => Some(from.as_any_ref().downcast_ref::<ClusterDasDataSummary>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasData => Ok(from.as_any_box().downcast::<ClusterDasData>()?),
StructType::ClusterDasDataSummary => Ok(from.as_any_box().downcast::<ClusterDasDataSummary>()?),
_ => Err(from.as_any_box()),
}
}
}
/// HA specific advanced information pertaining to the hosts in the cluster.
///
/// ### How to access
/// - `ClusterComputeResource::retrieve_das_advanced_runtime_info().das_host_info?`
pub trait ClusterDasHostInfoTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ClusterDasHostInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDasHostInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDasHostInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDasHostInfo"),
__out: &mut self.out,
}))
}
}
struct ClusterDasHostInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDasHostInfoTrait>>,
}
impl miniserde::de::Map for ClusterDasHostInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDasHostInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDasHostInfoTrait for ClusterDasHostInfo {
}
impl ClusterDasHostInfoTrait for ClusterDasAamHostInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDasHostInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasHostInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasHostInfo>()?),
StructType::ClusterDasAamHostInfo => Some(from.as_any_ref().downcast_ref::<ClusterDasAamHostInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDasHostInfo => Ok(from.as_any_box().downcast::<ClusterDasHostInfo>()?),
StructType::ClusterDasAamHostInfo => Ok(from.as_any_box().downcast::<ClusterDasAamHostInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// FaultsByVm is the faults generated by DRS when it tries to
/// move a VM.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.drs_fault?[*].faults_by_vm[*]`
/// - `ClusterComputeResource::drs_fault.faults_by_vm[*]`
/// - `Datastore::datastore_enter_maintenance_mode().drs_fault?.faults_by_vm[*]`
/// - `ClusterComputeResource::cluster_enter_maintenance_mode().fault?.faults_by_vm[*]`
/// - `ClusterComputeResource::place_vm().drs_fault?.faults_by_vm[*]`
/// - `StorageResourceManager::recommend_datastores().drs_fault?.faults_by_vm[*]`
pub trait ClusterDrsFaultsFaultsByVmTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterDrsFaultsFaultsByVm parent struct
fn get_cluster_drs_faults_faults_by_vm(&self) -> &super::structs::ClusterDrsFaultsFaultsByVm;
/// Get a mutable reference to the ClusterDrsFaultsFaultsByVm parent struct
fn get_cluster_drs_faults_faults_by_vm_mut(&mut self) -> &mut super::structs::ClusterDrsFaultsFaultsByVm;
}
impl std::ops::Deref for dyn ClusterDrsFaultsFaultsByVmTrait {
type Target = super::structs::ClusterDrsFaultsFaultsByVm;
fn deref(&self) -> &Self::Target {
self.get_cluster_drs_faults_faults_by_vm()
}
}
impl std::ops::DerefMut for dyn ClusterDrsFaultsFaultsByVmTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_drs_faults_faults_by_vm_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterDrsFaultsFaultsByVmTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterDrsFaultsFaultsByVmTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterDrsFaultsFaultsByVmTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterDrsFaultsFaultsByVm"),
__out: &mut self.out,
}))
}
}
struct ClusterDrsFaultsFaultsByVmTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterDrsFaultsFaultsByVmTrait>>,
}
impl miniserde::de::Map for ClusterDrsFaultsFaultsByVmTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterDrsFaultsFaultsByVmTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterDrsFaultsFaultsByVmTrait for ClusterDrsFaultsFaultsByVm {
fn get_cluster_drs_faults_faults_by_vm(&self) -> &super::structs::ClusterDrsFaultsFaultsByVm { &self }
fn get_cluster_drs_faults_faults_by_vm_mut(&mut self) -> &mut super::structs::ClusterDrsFaultsFaultsByVm { self }
}
impl ClusterDrsFaultsFaultsByVmTrait for ClusterDrsFaultsFaultsByVirtualDisk {
fn get_cluster_drs_faults_faults_by_vm(&self) -> &super::structs::ClusterDrsFaultsFaultsByVm { &self.cluster_drs_faults_faults_by_vm_ }
fn get_cluster_drs_faults_faults_by_vm_mut(&mut self) -> &mut super::structs::ClusterDrsFaultsFaultsByVm { &mut self.cluster_drs_faults_faults_by_vm_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterDrsFaultsFaultsByVmTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDrsFaultsFaultsByVm => Some(from.as_any_ref().downcast_ref::<ClusterDrsFaultsFaultsByVm>()?),
StructType::ClusterDrsFaultsFaultsByVirtualDisk => Some(from.as_any_ref().downcast_ref::<ClusterDrsFaultsFaultsByVirtualDisk>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterDrsFaultsFaultsByVm => Ok(from.as_any_box().downcast::<ClusterDrsFaultsFaultsByVm>()?),
StructType::ClusterDrsFaultsFaultsByVirtualDisk => Ok(from.as_any_box().downcast::<ClusterDrsFaultsFaultsByVirtualDisk>()?),
_ => Err(from.as_any_box()),
}
}
}
/// *ClusterGroupInfo* is the base type for all virtual machine
/// and host groups.
///
/// All virtual machines and hosts that are part of a group
/// must be part of the same cluster.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.group?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.group?[*]`
/// - `Folder::create_cluster_ex(spec).group_spec?[*].info?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
/// - `StoragePod::create_cluster_ex(spec).group_spec?[*].info?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.group_spec?[*].info?`
///
/// *(10 of 14 paths)*
pub trait ClusterGroupInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterGroupInfo parent struct
fn get_cluster_group_info(&self) -> &super::structs::ClusterGroupInfo;
/// Get a mutable reference to the ClusterGroupInfo parent struct
fn get_cluster_group_info_mut(&mut self) -> &mut super::structs::ClusterGroupInfo;
}
impl std::ops::Deref for dyn ClusterGroupInfoTrait {
type Target = super::structs::ClusterGroupInfo;
fn deref(&self) -> &Self::Target {
self.get_cluster_group_info()
}
}
impl std::ops::DerefMut for dyn ClusterGroupInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_group_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterGroupInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterGroupInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterGroupInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterGroupInfo"),
__out: &mut self.out,
}))
}
}
struct ClusterGroupInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterGroupInfoTrait>>,
}
impl miniserde::de::Map for ClusterGroupInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterGroupInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterGroupInfoTrait for ClusterGroupInfo {
fn get_cluster_group_info(&self) -> &super::structs::ClusterGroupInfo { &self }
fn get_cluster_group_info_mut(&mut self) -> &mut super::structs::ClusterGroupInfo { self }
}
impl ClusterGroupInfoTrait for ClusterHostGroup {
fn get_cluster_group_info(&self) -> &super::structs::ClusterGroupInfo { &self.cluster_group_info_ }
fn get_cluster_group_info_mut(&mut self) -> &mut super::structs::ClusterGroupInfo { &mut self.cluster_group_info_ }
}
impl ClusterGroupInfoTrait for ClusterVmGroup {
fn get_cluster_group_info(&self) -> &super::structs::ClusterGroupInfo { &self.cluster_group_info_ }
fn get_cluster_group_info_mut(&mut self) -> &mut super::structs::ClusterGroupInfo { &mut self.cluster_group_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterGroupInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterGroupInfo => Some(from.as_any_ref().downcast_ref::<ClusterGroupInfo>()?),
StructType::ClusterHostGroup => Some(from.as_any_ref().downcast_ref::<ClusterHostGroup>()?),
StructType::ClusterVmGroup => Some(from.as_any_ref().downcast_ref::<ClusterVmGroup>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterGroupInfo => Ok(from.as_any_box().downcast::<ClusterGroupInfo>()?),
StructType::ClusterHostGroup => Ok(from.as_any_box().downcast::<ClusterHostGroup>()?),
StructType::ClusterVmGroup => Ok(from.as_any_box().downcast::<ClusterVmGroup>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ClusterRuleInfo* data object is the base type for affinity
/// and anti-affinity rules.
///
/// The affinity and anti-affinity rules
/// are DRS (Distributed Resource Scheduling) rules that affect the placement
/// of virtual machines in a cluster. Hosts and virtual machines referenced
/// in a DRS rule must be in the same cluster.
///
/// Note: DRS rules are different than an individual host's CPU affinity rules
/// (*VirtualMachineAffinityInfo*).
///
/// The Server uses DRS rule objects to describe the current rule configuration
/// (*ClusterConfigInfoEx*.*ClusterConfigInfoEx.rule*).
/// Your client application uses rule objects to configure the affinity and
/// anti-affinity rules
/// (*ClusterConfigSpecEx*.*ClusterConfigSpecEx.rulesSpec*).
///
/// You can create the following types of rules:
/// - An affinity rule defines a set of virtual machines that should run
/// on the same host.
/// The *ClusterAffinityRuleSpec* object describes a rule that
/// identifies virtual machines, but does not identify any specific host.
/// - An anti-affinity rule defines a set of virtual machines that should run
/// on different hosts.
/// The *ClusterAntiAffinityRuleSpec* object describes a rule that
/// identifies virtual machines, but does not identify any specific host.
/// - A VM-Host rule defines affinity and anti-affinity relationships between
/// virtual machines and hosts.
/// The *ClusterVmHostRuleInfo* object describes a rule that identifies
/// a virtual machine group (*ClusterVmGroup*) and affinity and
/// anti-affinity host groups (*ClusterHostGroup*).
///
/// Rule configuration is a dynamic process. When you create or modify a DRS rule,
/// the Server applies the rule to the cluster. If the existing cluster configuration
/// violates the rule, the Server attempts to correct the situation. If that is not
/// possible, the Server generates a fault and produces a log event.
/// DRS rules do not have precedence; all rules are applied equally.
/// DRS does not validate one rule against another. If you create conflicting
/// rules, the older rule takes precedence and DRS disables the newer rule.
///
/// Improperly used, DRS rules can fragment the cluster and inhibit the proper
/// functioning of DRS, HA, and DPM services. vSphere services never
/// take any actions that would result in the violation of mandatory DRS rules.
/// An operation that violates a mandatory rule would produce the following
/// consequences.
/// - DRS does not evacuate virtual machines to place a host in maintenance
/// mode.
/// - DRS does not place virtual machines for power-on or load balance virtual
/// machines.
/// - HA does not perform failovers.
/// - DPM does not optimize power management by placing hosts into standby
/// mode.
///
/// To avoid these situations, exercise caution when creating more than one
/// mandatory rule, or consider using only optional rules. Make sure that
/// the number of hosts with which a virtual machine is related by affinity rule
/// is large enough that losing a host does not prevent the virtual machine
/// from running.
///
/// For manual and partially automated DRS clusters, the Server produces migration
/// recommendations to satisfy the DRS rules. You are not required to act on the
/// recommendations, but the Server maintains the recommendations until the rules
/// are satisfied.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.storage_drs_config.pod_config.rule?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.rule?[*]`
/// - `ClusterComputeResource::configuration.rule?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.rule?[*]`
/// - `Folder::create_cluster(spec).rules_spec?[*].info?`
/// - `Folder::create_cluster_ex(spec).rules_spec?[*].info?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.rules_spec?[*].info?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.rules_spec?[*].info?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.rules_spec?[*].info?`
/// - `StoragePod::create_cluster(spec).rules_spec?[*].info?`
///
/// *(10 of 24 paths)*
pub trait ClusterRuleInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the ClusterRuleInfo parent struct
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo;
/// Get a mutable reference to the ClusterRuleInfo parent struct
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo;
}
impl std::ops::Deref for dyn ClusterRuleInfoTrait {
type Target = super::structs::ClusterRuleInfo;
fn deref(&self) -> &Self::Target {
self.get_cluster_rule_info()
}
}
impl std::ops::DerefMut for dyn ClusterRuleInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_rule_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterRuleInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterRuleInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterRuleInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterRuleInfo"),
__out: &mut self.out,
}))
}
}
struct ClusterRuleInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterRuleInfoTrait>>,
}
impl miniserde::de::Map for ClusterRuleInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterRuleInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterRuleInfoTrait for ClusterRuleInfo {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { self }
}
impl ClusterRuleInfoTrait for ClusterAffinityRuleSpec {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for ClusterAntiAffinityRuleSpec {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for ClusterDependencyRuleInfo {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for ClusterFtVmHostRuleInfo {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for ClusterVmHostRuleInfo {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for VirtualDiskAntiAffinityRuleSpec {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl ClusterRuleInfoTrait for VirtualDiskRuleSpec {
fn get_cluster_rule_info(&self) -> &super::structs::ClusterRuleInfo { &self.cluster_rule_info_ }
fn get_cluster_rule_info_mut(&mut self) -> &mut super::structs::ClusterRuleInfo { &mut self.cluster_rule_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterRuleInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterRuleInfo>()?),
StructType::ClusterAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterAffinityRuleSpec>()?),
StructType::ClusterAntiAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterAntiAffinityRuleSpec>()?),
StructType::ClusterDependencyRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterDependencyRuleInfo>()?),
StructType::ClusterFtVmHostRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterFtVmHostRuleInfo>()?),
StructType::ClusterVmHostRuleInfo => Some(from.as_any_ref().downcast_ref::<ClusterVmHostRuleInfo>()?),
StructType::VirtualDiskAntiAffinityRuleSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskAntiAffinityRuleSpec>()?),
StructType::VirtualDiskRuleSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskRuleSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterRuleInfo => Ok(from.as_any_box().downcast::<ClusterRuleInfo>()?),
StructType::ClusterAffinityRuleSpec => Ok(from.as_any_box().downcast::<ClusterAffinityRuleSpec>()?),
StructType::ClusterAntiAffinityRuleSpec => Ok(from.as_any_box().downcast::<ClusterAntiAffinityRuleSpec>()?),
StructType::ClusterDependencyRuleInfo => Ok(from.as_any_box().downcast::<ClusterDependencyRuleInfo>()?),
StructType::ClusterFtVmHostRuleInfo => Ok(from.as_any_box().downcast::<ClusterFtVmHostRuleInfo>()?),
StructType::ClusterVmHostRuleInfo => Ok(from.as_any_box().downcast::<ClusterVmHostRuleInfo>()?),
StructType::VirtualDiskAntiAffinityRuleSpec => Ok(from.as_any_box().downcast::<VirtualDiskAntiAffinityRuleSpec>()?),
StructType::VirtualDiskRuleSpec => Ok(from.as_any_box().downcast::<VirtualDiskRuleSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class *ClusterSlotPolicy* is used for specifying how
/// the slot size is to be computed for the failover level HA admission control
/// policy.
///
/// By default, vSphere HA defines the slot size using the largest memory
/// and cpu reservations of any powered on virtual machine in the cluster.
/// Subclasses of this class define various policies to modify how the slot size
/// is chosen to prevent outlier virtual machines (i.e. those with much larger
/// reservations than the average) from skewing the slot size. If such a policy is chosen,
/// outlier virtual machines will use multiple slots. Using such a policy introduces
/// a risk that vSphere HA will be unable to failover these virtual machines because
/// of resource fragmentation.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `ClusterComputeResource::configuration.das_config.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `Folder::create_cluster(spec).das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `Folder::create_cluster_ex(spec).das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `StoragePod::create_cluster(spec).das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
/// - `StoragePod::create_cluster_ex(spec).das_config?.admission_control_policy?→ClusterFailoverLevelAdmissionControlPolicy.slot_policy?`
///
/// *(10 of 18 paths)*
pub trait ClusterSlotPolicyTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn ClusterSlotPolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterSlotPolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterSlotPolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterSlotPolicy"),
__out: &mut self.out,
}))
}
}
struct ClusterSlotPolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterSlotPolicyTrait>>,
}
impl miniserde::de::Map for ClusterSlotPolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterSlotPolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterSlotPolicyTrait for ClusterSlotPolicy {
}
impl ClusterSlotPolicyTrait for ClusterFixedSizeSlotPolicy {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterSlotPolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterSlotPolicy => Some(from.as_any_ref().downcast_ref::<ClusterSlotPolicy>()?),
StructType::ClusterFixedSizeSlotPolicy => Some(from.as_any_ref().downcast_ref::<ClusterFixedSizeSlotPolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterSlotPolicy => Ok(from.as_any_box().downcast::<ClusterSlotPolicy>()?),
StructType::ClusterFixedSizeSlotPolicy => Ok(from.as_any_box().downcast::<ClusterFixedSizeSlotPolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Defines a link in the context of a ResultTable cell, which
/// will be consumed by vSAN UI for UI navigation
///
/// This structure may be used only with operations rendered under `/vsan`.
pub trait VsanClusterHealthLinkBaseTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanClusterHealthLinkBase parent struct
fn get_vsan_cluster_health_link_base(&self) -> &super::structs::VsanClusterHealthLinkBase;
/// Get a mutable reference to the VsanClusterHealthLinkBase parent struct
fn get_vsan_cluster_health_link_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthLinkBase;
}
impl std::ops::Deref for dyn VsanClusterHealthLinkBaseTrait {
type Target = super::structs::VsanClusterHealthLinkBase;
fn deref(&self) -> &Self::Target {
self.get_vsan_cluster_health_link_base()
}
}
impl std::ops::DerefMut for dyn VsanClusterHealthLinkBaseTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_cluster_health_link_base_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanClusterHealthLinkBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanClusterHealthLinkBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanClusterHealthLinkBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanClusterHealthLinkBase"),
__out: &mut self.out,
}))
}
}
struct VsanClusterHealthLinkBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanClusterHealthLinkBaseTrait>>,
}
impl miniserde::de::Map for VsanClusterHealthLinkBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanClusterHealthLinkBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanClusterHealthLinkBaseTrait for VsanClusterHealthLinkBase {
fn get_vsan_cluster_health_link_base(&self) -> &super::structs::VsanClusterHealthLinkBase { &self }
fn get_vsan_cluster_health_link_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthLinkBase { self }
}
impl VsanClusterHealthLinkBaseTrait for VsanClusterHealthLink {
fn get_vsan_cluster_health_link_base(&self) -> &super::structs::VsanClusterHealthLinkBase { &self.vsan_cluster_health_link_base_ }
fn get_vsan_cluster_health_link_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthLinkBase { &mut self.vsan_cluster_health_link_base_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanClusterHealthLinkBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterHealthLinkBase => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthLinkBase>()?),
StructType::VsanClusterHealthLink => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthLink>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterHealthLinkBase => Ok(from.as_any_box().downcast::<VsanClusterHealthLinkBase>()?),
StructType::VsanClusterHealthLink => Ok(from.as_any_box().downcast::<VsanClusterHealthLink>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base class for vSAN health summary test result
///
/// ### How to access
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_details?[*]`
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_tests?[*].test_details?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().groups?[*].group_details?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_cluster_historical_health().groups?[*].group_details?[*]`
/// - `VsanClusterHealthSystem::vsan_query_cluster_create_vm_health_test().cluster_result.health_test?.test_details?[*]`
/// - `VsanClusterHealthSystem::vsan_query_cluster_network_perf_test().cluster_result.health_test?.test_details?[*]`
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_tests?[*].historical_results?[*].test_details?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_create_vm_health_history_test().cluster_result.health_test?.test_details?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_create_vm_health_test().cluster_result.health_test?.test_details?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().groups?[*].group_tests?[*].test_details?[*]`
///
/// *(10 of 26 paths)*
pub trait VsanClusterHealthResultBaseTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanClusterHealthResultBase parent struct
fn get_vsan_cluster_health_result_base(&self) -> &super::structs::VsanClusterHealthResultBase;
/// Get a mutable reference to the VsanClusterHealthResultBase parent struct
fn get_vsan_cluster_health_result_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthResultBase;
}
impl std::ops::Deref for dyn VsanClusterHealthResultBaseTrait {
type Target = super::structs::VsanClusterHealthResultBase;
fn deref(&self) -> &Self::Target {
self.get_vsan_cluster_health_result_base()
}
}
impl std::ops::DerefMut for dyn VsanClusterHealthResultBaseTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_cluster_health_result_base_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanClusterHealthResultBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanClusterHealthResultBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanClusterHealthResultBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanClusterHealthResultBase"),
__out: &mut self.out,
}))
}
}
struct VsanClusterHealthResultBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanClusterHealthResultBaseTrait>>,
}
impl miniserde::de::Map for VsanClusterHealthResultBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanClusterHealthResultBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanClusterHealthResultBaseTrait for VsanClusterHealthResultBase {
fn get_vsan_cluster_health_result_base(&self) -> &super::structs::VsanClusterHealthResultBase { &self }
fn get_vsan_cluster_health_result_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthResultBase { self }
}
impl VsanClusterHealthResultBaseTrait for VsanClusterHealthResultTable {
fn get_vsan_cluster_health_result_base(&self) -> &super::structs::VsanClusterHealthResultBase { &self.vsan_cluster_health_result_base_ }
fn get_vsan_cluster_health_result_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthResultBase { &mut self.vsan_cluster_health_result_base_ }
}
impl VsanClusterHealthResultBaseTrait for VsanClusterHealthResultWithRemediation {
fn get_vsan_cluster_health_result_base(&self) -> &super::structs::VsanClusterHealthResultBase { &self.vsan_cluster_health_result_base_ }
fn get_vsan_cluster_health_result_base_mut(&mut self) -> &mut super::structs::VsanClusterHealthResultBase { &mut self.vsan_cluster_health_result_base_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanClusterHealthResultBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterHealthResultBase => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultBase>()?),
StructType::VsanClusterHealthResultTable => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultTable>()?),
StructType::VsanClusterHealthResultWithRemediation => Some(from.as_any_ref().downcast_ref::<VsanClusterHealthResultWithRemediation>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterHealthResultBase => Ok(from.as_any_box().downcast::<VsanClusterHealthResultBase>()?),
StructType::VsanClusterHealthResultTable => Ok(from.as_any_box().downcast::<VsanClusterHealthResultTable>()?),
StructType::VsanClusterHealthResultWithRemediation => Ok(from.as_any_box().downcast::<VsanClusterHealthResultWithRemediation>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Describes a fault domain structure.
///
/// ### How to access
/// - `ClusterComputeResource::extend_hci_task(v_san_config_spec)→VimVsanReconfigSpec.fault_domains_spec?.fault_domains[*]`
/// - `ClusterComputeResource::configure_hci_task(cluster_spec).v_san_config_spec?→VimVsanReconfigSpec.fault_domains_spec?.fault_domains[*]`
/// - `ClusterComputeResource::validate_hci_configuration(hci_config_spec).v_san_config_spec?→VimVsanReconfigSpec.fault_domains_spec?.fault_domains[*]`
/// - `VsanVcClusterConfigSystem::vsan_cluster_reconfig(vsan_reconfig_spec).fault_domains_spec?.fault_domains[*]`
/// - `VsanVcClusterConfigSystem::vsan_validate_config_spec(vsan_reconfig_spec).fault_domains_spec?.fault_domains[*]`
pub trait VimClusterVsanFaultDomainSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VimClusterVsanFaultDomainSpec parent struct
fn get_vim_cluster_vsan_fault_domain_spec(&self) -> &super::structs::VimClusterVsanFaultDomainSpec;
/// Get a mutable reference to the VimClusterVsanFaultDomainSpec parent struct
fn get_vim_cluster_vsan_fault_domain_spec_mut(&mut self) -> &mut super::structs::VimClusterVsanFaultDomainSpec;
}
impl std::ops::Deref for dyn VimClusterVsanFaultDomainSpecTrait {
type Target = super::structs::VimClusterVsanFaultDomainSpec;
fn deref(&self) -> &Self::Target {
self.get_vim_cluster_vsan_fault_domain_spec()
}
}
impl std::ops::DerefMut for dyn VimClusterVsanFaultDomainSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vim_cluster_vsan_fault_domain_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VimClusterVsanFaultDomainSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VimClusterVsanFaultDomainSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VimClusterVsanFaultDomainSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VimClusterVsanFaultDomainSpec"),
__out: &mut self.out,
}))
}
}
struct VimClusterVsanFaultDomainSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VimClusterVsanFaultDomainSpecTrait>>,
}
impl miniserde::de::Map for VimClusterVsanFaultDomainSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VimClusterVsanFaultDomainSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VimClusterVsanFaultDomainSpecTrait for VimClusterVsanFaultDomainSpec {
fn get_vim_cluster_vsan_fault_domain_spec(&self) -> &super::structs::VimClusterVsanFaultDomainSpec { &self }
fn get_vim_cluster_vsan_fault_domain_spec_mut(&mut self) -> &mut super::structs::VimClusterVsanFaultDomainSpec { self }
}
impl VimClusterVsanFaultDomainSpecTrait for VsanFaultDomainDestroySpec {
fn get_vim_cluster_vsan_fault_domain_spec(&self) -> &super::structs::VimClusterVsanFaultDomainSpec { &self.vim_cluster_vsan_fault_domain_spec_ }
fn get_vim_cluster_vsan_fault_domain_spec_mut(&mut self) -> &mut super::structs::VimClusterVsanFaultDomainSpec { &mut self.vim_cluster_vsan_fault_domain_spec_ }
}
impl VimClusterVsanFaultDomainSpecTrait for VsanFaultDomainUpdateSpec {
fn get_vim_cluster_vsan_fault_domain_spec(&self) -> &super::structs::VimClusterVsanFaultDomainSpec { &self.vim_cluster_vsan_fault_domain_spec_ }
fn get_vim_cluster_vsan_fault_domain_spec_mut(&mut self) -> &mut super::structs::VimClusterVsanFaultDomainSpec { &mut self.vim_cluster_vsan_fault_domain_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VimClusterVsanFaultDomainSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VimClusterVsanFaultDomainSpec => Some(from.as_any_ref().downcast_ref::<VimClusterVsanFaultDomainSpec>()?),
StructType::VsanFaultDomainDestroySpec => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainDestroySpec>()?),
StructType::VsanFaultDomainUpdateSpec => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainUpdateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VimClusterVsanFaultDomainSpec => Ok(from.as_any_box().downcast::<VimClusterVsanFaultDomainSpec>()?),
StructType::VsanFaultDomainDestroySpec => Ok(from.as_any_box().downcast::<VsanFaultDomainDestroySpec>()?),
StructType::VsanFaultDomainUpdateSpec => Ok(from.as_any_box().downcast::<VsanFaultDomainUpdateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This is the base class for vSAN health issue remediation or troubleshooting.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.diagnostic_steps?[*]`
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.remediations?[*]`
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_tests?[*].test_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.diagnostic_steps?[*]`
/// - `VsanPerformanceManager::vsan_perf_query_cluster_health().group_tests?[*].test_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.remediations?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().groups?[*].group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.diagnostic_steps?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().groups?[*].group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.remediations?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_cluster_historical_health().groups?[*].group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.diagnostic_steps?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_cluster_historical_health().groups?[*].group_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.remediations?[*]`
/// - `VsanClusterHealthSystem::vsan_query_cluster_create_vm_health_test().cluster_result.health_test?.test_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.diagnostic_steps?[*]`
/// - `VsanClusterHealthSystem::vsan_query_cluster_create_vm_health_test().cluster_result.health_test?.test_details?[*]→VsanClusterHealthResultWithRemediation.troubleshooting?.remediations?[*]`
///
/// *(10 of 52 paths)*
pub trait VsanHealthActionBaseTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHealthActionBase parent struct
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase;
/// Get a mutable reference to the VsanHealthActionBase parent struct
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase;
}
impl std::ops::Deref for dyn VsanHealthActionBaseTrait {
type Target = super::structs::VsanHealthActionBase;
fn deref(&self) -> &Self::Target {
self.get_vsan_health_action_base()
}
}
impl std::ops::DerefMut for dyn VsanHealthActionBaseTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_health_action_base_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHealthActionBaseTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHealthActionBaseTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHealthActionBaseTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHealthActionBase"),
__out: &mut self.out,
}))
}
}
struct VsanHealthActionBaseTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHealthActionBaseTrait>>,
}
impl miniserde::de::Map for VsanHealthActionBaseTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHealthActionBaseTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHealthActionBaseTrait for VsanHealthActionBase {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { self }
}
impl VsanHealthActionBaseTrait for VsanHealthActionSteps {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self.vsan_health_action_base_ }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { &mut self.vsan_health_action_base_ }
}
impl VsanHealthActionBaseTrait for VsanHealthApiBasedAction {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self.vsan_health_action_base_ }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { &mut self.vsan_health_action_base_ }
}
impl VsanHealthActionBaseTrait for VsanHealthCmdBasedAction {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self.vsan_health_action_base_ }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { &mut self.vsan_health_action_base_ }
}
impl VsanHealthActionBaseTrait for VsanHealthDataDrivenAction {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self.vsan_health_action_base_ }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { &mut self.vsan_health_action_base_ }
}
impl VsanHealthActionBaseTrait for VsanHealthTxtBasedAction {
fn get_vsan_health_action_base(&self) -> &super::structs::VsanHealthActionBase { &self.vsan_health_action_base_ }
fn get_vsan_health_action_base_mut(&mut self) -> &mut super::structs::VsanHealthActionBase { &mut self.vsan_health_action_base_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHealthActionBaseTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHealthActionBase => Some(from.as_any_ref().downcast_ref::<VsanHealthActionBase>()?),
StructType::VsanHealthActionSteps => Some(from.as_any_ref().downcast_ref::<VsanHealthActionSteps>()?),
StructType::VsanHealthApiBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthApiBasedAction>()?),
StructType::VsanHealthCmdBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthCmdBasedAction>()?),
StructType::VsanHealthDataDrivenAction => Some(from.as_any_ref().downcast_ref::<VsanHealthDataDrivenAction>()?),
StructType::VsanHealthTxtBasedAction => Some(from.as_any_ref().downcast_ref::<VsanHealthTxtBasedAction>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHealthActionBase => Ok(from.as_any_box().downcast::<VsanHealthActionBase>()?),
StructType::VsanHealthActionSteps => Ok(from.as_any_box().downcast::<VsanHealthActionSteps>()?),
StructType::VsanHealthApiBasedAction => Ok(from.as_any_box().downcast::<VsanHealthApiBasedAction>()?),
StructType::VsanHealthCmdBasedAction => Ok(from.as_any_box().downcast::<VsanHealthCmdBasedAction>()?),
StructType::VsanHealthDataDrivenAction => Ok(from.as_any_box().downcast::<VsanHealthDataDrivenAction>()?),
StructType::VsanHealthTxtBasedAction => Ok(from.as_any_box().downcast::<VsanHealthTxtBasedAction>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies common properties for iSCSI LUN.
pub trait VsanIscsiLunCommonInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanIscsiLunCommonInfo parent struct
fn get_vsan_iscsi_lun_common_info(&self) -> &super::structs::VsanIscsiLunCommonInfo;
/// Get a mutable reference to the VsanIscsiLunCommonInfo parent struct
fn get_vsan_iscsi_lun_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiLunCommonInfo;
}
impl std::ops::Deref for dyn VsanIscsiLunCommonInfoTrait {
type Target = super::structs::VsanIscsiLunCommonInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_iscsi_lun_common_info()
}
}
impl std::ops::DerefMut for dyn VsanIscsiLunCommonInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_iscsi_lun_common_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanIscsiLunCommonInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanIscsiLunCommonInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanIscsiLunCommonInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanIscsiLunCommonInfo"),
__out: &mut self.out,
}))
}
}
struct VsanIscsiLunCommonInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanIscsiLunCommonInfoTrait>>,
}
impl miniserde::de::Map for VsanIscsiLunCommonInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanIscsiLunCommonInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanIscsiLunCommonInfoTrait for VsanIscsiLunCommonInfo {
fn get_vsan_iscsi_lun_common_info(&self) -> &super::structs::VsanIscsiLunCommonInfo { &self }
fn get_vsan_iscsi_lun_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiLunCommonInfo { self }
}
impl VsanIscsiLunCommonInfoTrait for VsanIscsiLun {
fn get_vsan_iscsi_lun_common_info(&self) -> &super::structs::VsanIscsiLunCommonInfo { &self.vsan_iscsi_lun_common_info_ }
fn get_vsan_iscsi_lun_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiLunCommonInfo { &mut self.vsan_iscsi_lun_common_info_ }
}
impl VsanIscsiLunCommonInfoTrait for VsanIscsiLunSpec {
fn get_vsan_iscsi_lun_common_info(&self) -> &super::structs::VsanIscsiLunCommonInfo { &self.vsan_iscsi_lun_common_info_ }
fn get_vsan_iscsi_lun_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiLunCommonInfo { &mut self.vsan_iscsi_lun_common_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanIscsiLunCommonInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiLunCommonInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiLunCommonInfo>()?),
StructType::VsanIscsiLun => Some(from.as_any_ref().downcast_ref::<VsanIscsiLun>()?),
StructType::VsanIscsiLunSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiLunSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiLunCommonInfo => Ok(from.as_any_box().downcast::<VsanIscsiLunCommonInfo>()?),
StructType::VsanIscsiLun => Ok(from.as_any_box().downcast::<VsanIscsiLun>()?),
StructType::VsanIscsiLunSpec => Ok(from.as_any_box().downcast::<VsanIscsiLunSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies the basic properties for iSCSI target.
///
/// ### How to access
/// - `VsanIscsiTargetSystem::vsan_vit_get_iscsi_initiator_group().targets?[*]`
/// - `VsanIscsiTargetSystem::vsan_vit_get_iscsi_initiator_groups().targets?[*]`
pub trait VsanIscsiTargetBasicInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanIscsiTargetBasicInfo parent struct
fn get_vsan_iscsi_target_basic_info(&self) -> &super::structs::VsanIscsiTargetBasicInfo;
/// Get a mutable reference to the VsanIscsiTargetBasicInfo parent struct
fn get_vsan_iscsi_target_basic_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetBasicInfo;
}
impl std::ops::Deref for dyn VsanIscsiTargetBasicInfoTrait {
type Target = super::structs::VsanIscsiTargetBasicInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_iscsi_target_basic_info()
}
}
impl std::ops::DerefMut for dyn VsanIscsiTargetBasicInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_iscsi_target_basic_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanIscsiTargetBasicInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanIscsiTargetBasicInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanIscsiTargetBasicInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanIscsiTargetBasicInfo"),
__out: &mut self.out,
}))
}
}
struct VsanIscsiTargetBasicInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanIscsiTargetBasicInfoTrait>>,
}
impl miniserde::de::Map for VsanIscsiTargetBasicInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanIscsiTargetBasicInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanIscsiTargetBasicInfoTrait for VsanIscsiTargetBasicInfo {
fn get_vsan_iscsi_target_basic_info(&self) -> &super::structs::VsanIscsiTargetBasicInfo { &self }
fn get_vsan_iscsi_target_basic_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetBasicInfo { self }
}
impl VsanIscsiTargetBasicInfoTrait for VsanIscsiTargetCommonInfo {
fn get_vsan_iscsi_target_basic_info(&self) -> &super::structs::VsanIscsiTargetBasicInfo { &self.vsan_iscsi_target_basic_info_ }
fn get_vsan_iscsi_target_basic_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetBasicInfo { &mut self.vsan_iscsi_target_basic_info_ }
}
impl VsanIscsiTargetBasicInfoTrait for VsanIscsiTarget {
fn get_vsan_iscsi_target_basic_info(&self) -> &super::structs::VsanIscsiTargetBasicInfo { &self.vsan_iscsi_target_common_info_.vsan_iscsi_target_basic_info_ }
fn get_vsan_iscsi_target_basic_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetBasicInfo { &mut self.vsan_iscsi_target_common_info_.vsan_iscsi_target_basic_info_ }
}
impl VsanIscsiTargetBasicInfoTrait for VsanIscsiTargetSpec {
fn get_vsan_iscsi_target_basic_info(&self) -> &super::structs::VsanIscsiTargetBasicInfo { &self.vsan_iscsi_target_common_info_.vsan_iscsi_target_basic_info_ }
fn get_vsan_iscsi_target_basic_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetBasicInfo { &mut self.vsan_iscsi_target_common_info_.vsan_iscsi_target_basic_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanIscsiTargetBasicInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetBasicInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetBasicInfo>()?),
StructType::VsanIscsiTargetCommonInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Some(from.as_any_ref().downcast_ref::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetBasicInfo => Ok(from.as_any_box().downcast::<VsanIscsiTargetBasicInfo>()?),
StructType::VsanIscsiTargetCommonInfo => Ok(from.as_any_box().downcast::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Ok(from.as_any_box().downcast::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies the common properties for vSAN iSCSI target.
///
/// ### How to access
/// - `VsanIscsiTargetSystem::vsan_vit_get_iscsi_initiator_group().targets?[*]⇒VsanIscsiTargetCommonInfoTrait`
/// - `VsanIscsiTargetSystem::vsan_vit_get_iscsi_initiator_groups().targets?[*]⇒VsanIscsiTargetCommonInfoTrait`
pub trait VsanIscsiTargetCommonInfoTrait : super::traits::VsanIscsiTargetBasicInfoTrait {
/// Get a reference to the VsanIscsiTargetCommonInfo parent struct
fn get_vsan_iscsi_target_common_info(&self) -> &super::structs::VsanIscsiTargetCommonInfo;
/// Get a mutable reference to the VsanIscsiTargetCommonInfo parent struct
fn get_vsan_iscsi_target_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetCommonInfo;
}
impl std::ops::Deref for dyn VsanIscsiTargetCommonInfoTrait {
type Target = super::structs::VsanIscsiTargetCommonInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_iscsi_target_common_info()
}
}
impl std::ops::DerefMut for dyn VsanIscsiTargetCommonInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_iscsi_target_common_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanIscsiTargetCommonInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanIscsiTargetCommonInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanIscsiTargetCommonInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanIscsiTargetCommonInfo"),
__out: &mut self.out,
}))
}
}
struct VsanIscsiTargetCommonInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanIscsiTargetCommonInfoTrait>>,
}
impl miniserde::de::Map for VsanIscsiTargetCommonInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanIscsiTargetCommonInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanIscsiTargetCommonInfoTrait for VsanIscsiTargetCommonInfo {
fn get_vsan_iscsi_target_common_info(&self) -> &super::structs::VsanIscsiTargetCommonInfo { &self }
fn get_vsan_iscsi_target_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetCommonInfo { self }
}
impl VsanIscsiTargetCommonInfoTrait for VsanIscsiTarget {
fn get_vsan_iscsi_target_common_info(&self) -> &super::structs::VsanIscsiTargetCommonInfo { &self.vsan_iscsi_target_common_info_ }
fn get_vsan_iscsi_target_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetCommonInfo { &mut self.vsan_iscsi_target_common_info_ }
}
impl VsanIscsiTargetCommonInfoTrait for VsanIscsiTargetSpec {
fn get_vsan_iscsi_target_common_info(&self) -> &super::structs::VsanIscsiTargetCommonInfo { &self.vsan_iscsi_target_common_info_ }
fn get_vsan_iscsi_target_common_info_mut(&mut self) -> &mut super::structs::VsanIscsiTargetCommonInfo { &mut self.vsan_iscsi_target_common_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanIscsiTargetCommonInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetCommonInfo => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Some(from.as_any_ref().downcast_ref::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetCommonInfo => Ok(from.as_any_box().downcast::<VsanIscsiTargetCommonInfo>()?),
StructType::VsanIscsiTarget => Ok(from.as_any_box().downcast::<VsanIscsiTarget>()?),
StructType::VsanIscsiTargetSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specified common properties for vSAN iSCSI target service.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `StoragePod::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?`
///
/// *(10 of 20 paths)*
pub trait VsanIscsiTargetServiceConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanIscsiTargetServiceConfig parent struct
fn get_vsan_iscsi_target_service_config(&self) -> &super::structs::VsanIscsiTargetServiceConfig;
/// Get a mutable reference to the VsanIscsiTargetServiceConfig parent struct
fn get_vsan_iscsi_target_service_config_mut(&mut self) -> &mut super::structs::VsanIscsiTargetServiceConfig;
}
impl std::ops::Deref for dyn VsanIscsiTargetServiceConfigTrait {
type Target = super::structs::VsanIscsiTargetServiceConfig;
fn deref(&self) -> &Self::Target {
self.get_vsan_iscsi_target_service_config()
}
}
impl std::ops::DerefMut for dyn VsanIscsiTargetServiceConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_iscsi_target_service_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanIscsiTargetServiceConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanIscsiTargetServiceConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanIscsiTargetServiceConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanIscsiTargetServiceConfig"),
__out: &mut self.out,
}))
}
}
struct VsanIscsiTargetServiceConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanIscsiTargetServiceConfigTrait>>,
}
impl miniserde::de::Map for VsanIscsiTargetServiceConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanIscsiTargetServiceConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanIscsiTargetServiceConfigTrait for VsanIscsiTargetServiceConfig {
fn get_vsan_iscsi_target_service_config(&self) -> &super::structs::VsanIscsiTargetServiceConfig { &self }
fn get_vsan_iscsi_target_service_config_mut(&mut self) -> &mut super::structs::VsanIscsiTargetServiceConfig { self }
}
impl VsanIscsiTargetServiceConfigTrait for VsanIscsiTargetServiceSpec {
fn get_vsan_iscsi_target_service_config(&self) -> &super::structs::VsanIscsiTargetServiceConfig { &self.vsan_iscsi_target_service_config_ }
fn get_vsan_iscsi_target_service_config_mut(&mut self) -> &mut super::structs::VsanIscsiTargetServiceConfig { &mut self.vsan_iscsi_target_service_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanIscsiTargetServiceConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetServiceConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetServiceConfig>()?),
StructType::VsanIscsiTargetServiceSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiTargetServiceSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiTargetServiceConfig => Ok(from.as_any_box().downcast::<VsanIscsiTargetServiceConfig>()?),
StructType::VsanIscsiTargetServiceSpec => Ok(from.as_any_box().downcast::<VsanIscsiTargetServiceSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines general access control list spec.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_configure_volume_ac_ls(acl_config_specs).access_control_spec_list[*]`
pub trait CnsAccessControlSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CnsAccessControlSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsAccessControlSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsAccessControlSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsAccessControlSpec"),
__out: &mut self.out,
}))
}
}
struct CnsAccessControlSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsAccessControlSpecTrait>>,
}
impl miniserde::de::Map for CnsAccessControlSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsAccessControlSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsAccessControlSpecTrait for CnsAccessControlSpec {
}
impl CnsAccessControlSpecTrait for CnsNfsAccessControlSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsAccessControlSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsAccessControlSpec => Some(from.as_any_ref().downcast_ref::<CnsAccessControlSpec>()?),
StructType::CnsNfsAccessControlSpec => Some(from.as_any_ref().downcast_ref::<CnsNfsAccessControlSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsAccessControlSpec => Ok(from.as_any_box().downcast::<CnsAccessControlSpec>()?),
StructType::CnsNfsAccessControlSpec => Ok(from.as_any_box().downcast::<CnsNfsAccessControlSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for providing additional option for creating backing for a
/// container volume.
///
///
/// The child-classes of this class will be used at the time
/// of volume creation to specify options that should be used to create volume,
/// and will also be returned as part of query result to give more information
/// about the volume, *CnsVolume*. Type of child-class will also serve
/// as the volume type specification during creation.
///
/// Backing type specific fields would be there in the respective child classes.
///
/// E.g. BlockBackingDetails class will have details related to block type of
/// backing object. One example of such property is ID of the block disk that
/// backs the volume.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).backing_object_details`
/// - `CnsVolumeManager::cns_query_volume().volumes?[*].backing_object_details?`
pub trait CnsBackingObjectDetailsTrait : super::traits::DataObjectTrait {
/// Get a reference to the CnsBackingObjectDetails parent struct
fn get_cns_backing_object_details(&self) -> &super::structs::CnsBackingObjectDetails;
/// Get a mutable reference to the CnsBackingObjectDetails parent struct
fn get_cns_backing_object_details_mut(&mut self) -> &mut super::structs::CnsBackingObjectDetails;
}
impl std::ops::Deref for dyn CnsBackingObjectDetailsTrait {
type Target = super::structs::CnsBackingObjectDetails;
fn deref(&self) -> &Self::Target {
self.get_cns_backing_object_details()
}
}
impl std::ops::DerefMut for dyn CnsBackingObjectDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_backing_object_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsBackingObjectDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsBackingObjectDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsBackingObjectDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsBackingObjectDetails"),
__out: &mut self.out,
}))
}
}
struct CnsBackingObjectDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsBackingObjectDetailsTrait>>,
}
impl miniserde::de::Map for CnsBackingObjectDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsBackingObjectDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsBackingObjectDetailsTrait for CnsBackingObjectDetails {
fn get_cns_backing_object_details(&self) -> &super::structs::CnsBackingObjectDetails { &self }
fn get_cns_backing_object_details_mut(&mut self) -> &mut super::structs::CnsBackingObjectDetails { self }
}
impl CnsBackingObjectDetailsTrait for CnsBlockBackingDetails {
fn get_cns_backing_object_details(&self) -> &super::structs::CnsBackingObjectDetails { &self.cns_backing_object_details_ }
fn get_cns_backing_object_details_mut(&mut self) -> &mut super::structs::CnsBackingObjectDetails { &mut self.cns_backing_object_details_ }
}
impl CnsBackingObjectDetailsTrait for CnsFileBackingDetails {
fn get_cns_backing_object_details(&self) -> &super::structs::CnsBackingObjectDetails { &self.cns_backing_object_details_ }
fn get_cns_backing_object_details_mut(&mut self) -> &mut super::structs::CnsBackingObjectDetails { &mut self.cns_backing_object_details_ }
}
impl CnsBackingObjectDetailsTrait for CnsVsanFileShareBackingDetails {
fn get_cns_backing_object_details(&self) -> &super::structs::CnsBackingObjectDetails { &self.cns_file_backing_details_.cns_backing_object_details_ }
fn get_cns_backing_object_details_mut(&mut self) -> &mut super::structs::CnsBackingObjectDetails { &mut self.cns_file_backing_details_.cns_backing_object_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsBackingObjectDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsBackingObjectDetails => Some(from.as_any_ref().downcast_ref::<CnsBackingObjectDetails>()?),
StructType::CnsBlockBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsBlockBackingDetails>()?),
StructType::CnsFileBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsVsanFileShareBackingDetails>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsBackingObjectDetails => Ok(from.as_any_box().downcast::<CnsBackingObjectDetails>()?),
StructType::CnsBlockBackingDetails => Ok(from.as_any_box().downcast::<CnsBlockBackingDetails>()?),
StructType::CnsFileBackingDetails => Ok(from.as_any_box().downcast::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Ok(from.as_any_box().downcast::<CnsVsanFileShareBackingDetails>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Details for a file type backing for container volume.
///
///
/// This class will be used as input at the time of volume creation and will also
/// be returned as part of query result to give more information about a
/// container volume.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).backing_object_details⇒CnsFileBackingDetailsTrait`
/// - `CnsVolumeManager::cns_query_volume().volumes?[*].backing_object_details?⇒CnsFileBackingDetailsTrait`
pub trait CnsFileBackingDetailsTrait : super::traits::CnsBackingObjectDetailsTrait {
/// Get a reference to the CnsFileBackingDetails parent struct
fn get_cns_file_backing_details(&self) -> &super::structs::CnsFileBackingDetails;
/// Get a mutable reference to the CnsFileBackingDetails parent struct
fn get_cns_file_backing_details_mut(&mut self) -> &mut super::structs::CnsFileBackingDetails;
}
impl std::ops::Deref for dyn CnsFileBackingDetailsTrait {
type Target = super::structs::CnsFileBackingDetails;
fn deref(&self) -> &Self::Target {
self.get_cns_file_backing_details()
}
}
impl std::ops::DerefMut for dyn CnsFileBackingDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_file_backing_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsFileBackingDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsFileBackingDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsFileBackingDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsFileBackingDetails"),
__out: &mut self.out,
}))
}
}
struct CnsFileBackingDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsFileBackingDetailsTrait>>,
}
impl miniserde::de::Map for CnsFileBackingDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsFileBackingDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsFileBackingDetailsTrait for CnsFileBackingDetails {
fn get_cns_file_backing_details(&self) -> &super::structs::CnsFileBackingDetails { &self }
fn get_cns_file_backing_details_mut(&mut self) -> &mut super::structs::CnsFileBackingDetails { self }
}
impl CnsFileBackingDetailsTrait for CnsVsanFileShareBackingDetails {
fn get_cns_file_backing_details(&self) -> &super::structs::CnsFileBackingDetails { &self.cns_file_backing_details_ }
fn get_cns_file_backing_details_mut(&mut self) -> &mut super::structs::CnsFileBackingDetails { &mut self.cns_file_backing_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsFileBackingDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsFileBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Some(from.as_any_ref().downcast_ref::<CnsVsanFileShareBackingDetails>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsFileBackingDetails => Ok(from.as_any_box().downcast::<CnsFileBackingDetails>()?),
StructType::CnsVsanFileShareBackingDetails => Ok(from.as_any_box().downcast::<CnsVsanFileShareBackingDetails>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base specification for volume creation.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).create_spec?`
pub trait CnsBaseCreateSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CnsBaseCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsBaseCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsBaseCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsBaseCreateSpec"),
__out: &mut self.out,
}))
}
}
struct CnsBaseCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsBaseCreateSpecTrait>>,
}
impl miniserde::de::Map for CnsBaseCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsBaseCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsBaseCreateSpecTrait for CnsBaseCreateSpec {
}
impl CnsBaseCreateSpecTrait for CnsFileCreateSpec {
}
impl CnsBaseCreateSpecTrait for CnsVsanFileCreateSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsBaseCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsBaseCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsBaseCreateSpec>()?),
StructType::CnsFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsVsanFileCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsBaseCreateSpec => Ok(from.as_any_box().downcast::<CnsBaseCreateSpec>()?),
StructType::CnsFileCreateSpec => Ok(from.as_any_box().downcast::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Ok(from.as_any_box().downcast::<CnsVsanFileCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification for file volume creation.
///
/// The file volume could be
/// NFS or SMB file share. Currently, only NFS file shares provisioned by
/// vSAN file service will be supported. CNS may support non NFS,
/// non vSAN file service based file shares in future.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).create_spec?⇒CnsFileCreateSpecTrait`
pub trait CnsFileCreateSpecTrait : super::traits::CnsBaseCreateSpecTrait {
}
impl miniserde::Deserialize for Box<dyn CnsFileCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsFileCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsFileCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsFileCreateSpec"),
__out: &mut self.out,
}))
}
}
struct CnsFileCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsFileCreateSpecTrait>>,
}
impl miniserde::de::Map for CnsFileCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsFileCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsFileCreateSpecTrait for CnsFileCreateSpec {
}
impl CnsFileCreateSpecTrait for CnsVsanFileCreateSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsFileCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Some(from.as_any_ref().downcast_ref::<CnsVsanFileCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsFileCreateSpec => Ok(from.as_any_box().downcast::<CnsFileCreateSpec>()?),
StructType::CnsVsanFileCreateSpec => Ok(from.as_any_box().downcast::<CnsVsanFileCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base data object that represents the metadata associated with an entity
/// in container orchestrators like Kubernetes, Docker swarm etc.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).metadata?.entity_metadata?[*]`
/// - `CnsVolumeManager::cns_update_volume_metadata(update_specs).metadata.entity_metadata?[*]`
/// - `CnsVolumeManager::cns_query_volume().volumes?[*].metadata?.entity_metadata?[*]`
pub trait CnsEntityMetadataTrait : super::traits::DataObjectTrait {
/// Get a reference to the CnsEntityMetadata parent struct
fn get_cns_entity_metadata(&self) -> &super::structs::CnsEntityMetadata;
/// Get a mutable reference to the CnsEntityMetadata parent struct
fn get_cns_entity_metadata_mut(&mut self) -> &mut super::structs::CnsEntityMetadata;
}
impl std::ops::Deref for dyn CnsEntityMetadataTrait {
type Target = super::structs::CnsEntityMetadata;
fn deref(&self) -> &Self::Target {
self.get_cns_entity_metadata()
}
}
impl std::ops::DerefMut for dyn CnsEntityMetadataTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_entity_metadata_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsEntityMetadataTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsEntityMetadataTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsEntityMetadataTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsEntityMetadata"),
__out: &mut self.out,
}))
}
}
struct CnsEntityMetadataTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsEntityMetadataTrait>>,
}
impl miniserde::de::Map for CnsEntityMetadataTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsEntityMetadataTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsEntityMetadataTrait for CnsEntityMetadata {
fn get_cns_entity_metadata(&self) -> &super::structs::CnsEntityMetadata { &self }
fn get_cns_entity_metadata_mut(&mut self) -> &mut super::structs::CnsEntityMetadata { self }
}
impl CnsEntityMetadataTrait for CnsKubernetesEntityMetadata {
fn get_cns_entity_metadata(&self) -> &super::structs::CnsEntityMetadata { &self.cns_entity_metadata_ }
fn get_cns_entity_metadata_mut(&mut self) -> &mut super::structs::CnsEntityMetadata { &mut self.cns_entity_metadata_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsEntityMetadataTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsEntityMetadata => Some(from.as_any_ref().downcast_ref::<CnsEntityMetadata>()?),
StructType::CnsKubernetesEntityMetadata => Some(from.as_any_ref().downcast_ref::<CnsKubernetesEntityMetadata>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsEntityMetadata => Ok(from.as_any_box().downcast::<CnsEntityMetadata>()?),
StructType::CnsKubernetesEntityMetadata => Ok(from.as_any_box().downcast::<CnsKubernetesEntityMetadata>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Filter object to query matching volumes.
///
///
/// Every property criteria that is specified through array, like labels, datastores
/// and so on will add complexity in retrieving the query result, and it should be
/// minimal (preferrably less than or equal to 10). The query may be slow or fail
/// if this guideline is not honored. All string matchings will be absolute, unless
/// specified.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_query_volume(filter)`
/// - `CnsVolumeManager::cns_query_async(filter)`
pub trait CnsQueryFilterTrait : super::traits::DataObjectTrait {
/// Get a reference to the CnsQueryFilter parent struct
fn get_cns_query_filter(&self) -> &super::structs::CnsQueryFilter;
/// Get a mutable reference to the CnsQueryFilter parent struct
fn get_cns_query_filter_mut(&mut self) -> &mut super::structs::CnsQueryFilter;
}
impl std::ops::Deref for dyn CnsQueryFilterTrait {
type Target = super::structs::CnsQueryFilter;
fn deref(&self) -> &Self::Target {
self.get_cns_query_filter()
}
}
impl std::ops::DerefMut for dyn CnsQueryFilterTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_query_filter_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsQueryFilterTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsQueryFilterTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsQueryFilterTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsQueryFilter"),
__out: &mut self.out,
}))
}
}
struct CnsQueryFilterTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsQueryFilterTrait>>,
}
impl miniserde::de::Map for CnsQueryFilterTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsQueryFilterTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsQueryFilterTrait for CnsQueryFilter {
fn get_cns_query_filter(&self) -> &super::structs::CnsQueryFilter { &self }
fn get_cns_query_filter_mut(&mut self) -> &mut super::structs::CnsQueryFilter { self }
}
impl CnsQueryFilterTrait for CnsKubernetesQueryFilter {
fn get_cns_query_filter(&self) -> &super::structs::CnsQueryFilter { &self.cns_query_filter_ }
fn get_cns_query_filter_mut(&mut self) -> &mut super::structs::CnsQueryFilter { &mut self.cns_query_filter_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsQueryFilterTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsQueryFilter => Some(from.as_any_ref().downcast_ref::<CnsQueryFilter>()?),
StructType::CnsKubernetesQueryFilter => Some(from.as_any_ref().downcast_ref::<CnsKubernetesQueryFilter>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsQueryFilter => Ok(from.as_any_box().downcast::<CnsQueryFilter>()?),
StructType::CnsKubernetesQueryFilter => Ok(from.as_any_box().downcast::<CnsKubernetesQueryFilter>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for returning result of operation invoked on a specific volume.
///
///
/// Operations that require some additional fields in their result can extend this
/// class. E.g. result classes for create and attach operations extend this class to
/// add additional fields.
///
/// If an operation allows batch input, then the output should contain same number
/// of result objects. One object corresponding to each input entry.
///
/// Since every result object will have its own fault, that fault will be limited to the
/// corresponding input object and should not be used for overall operation failure.
///
/// This structure may be used only with operations rendered under `/vsan`.
pub trait CnsVolumeOperationResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the CnsVolumeOperationResult parent struct
fn get_cns_volume_operation_result(&self) -> &super::structs::CnsVolumeOperationResult;
/// Get a mutable reference to the CnsVolumeOperationResult parent struct
fn get_cns_volume_operation_result_mut(&mut self) -> &mut super::structs::CnsVolumeOperationResult;
}
impl std::ops::Deref for dyn CnsVolumeOperationResultTrait {
type Target = super::structs::CnsVolumeOperationResult;
fn deref(&self) -> &Self::Target {
self.get_cns_volume_operation_result()
}
}
impl std::ops::DerefMut for dyn CnsVolumeOperationResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_volume_operation_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsVolumeOperationResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsVolumeOperationResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsVolumeOperationResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsVolumeOperationResult"),
__out: &mut self.out,
}))
}
}
struct CnsVolumeOperationResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsVolumeOperationResultTrait>>,
}
impl miniserde::de::Map for CnsVolumeOperationResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsVolumeOperationResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsVolumeOperationResultTrait for CnsVolumeOperationResult {
fn get_cns_volume_operation_result(&self) -> &super::structs::CnsVolumeOperationResult { &self }
fn get_cns_volume_operation_result_mut(&mut self) -> &mut super::structs::CnsVolumeOperationResult { self }
}
impl CnsVolumeOperationResultTrait for CnsAsyncQueryResult {
fn get_cns_volume_operation_result(&self) -> &super::structs::CnsVolumeOperationResult { &self.cns_volume_operation_result_ }
fn get_cns_volume_operation_result_mut(&mut self) -> &mut super::structs::CnsVolumeOperationResult { &mut self.cns_volume_operation_result_ }
}
impl CnsVolumeOperationResultTrait for CnsVolumeAttachResult {
fn get_cns_volume_operation_result(&self) -> &super::structs::CnsVolumeOperationResult { &self.cns_volume_operation_result_ }
fn get_cns_volume_operation_result_mut(&mut self) -> &mut super::structs::CnsVolumeOperationResult { &mut self.cns_volume_operation_result_ }
}
impl CnsVolumeOperationResultTrait for CnsVolumeCreateResult {
fn get_cns_volume_operation_result(&self) -> &super::structs::CnsVolumeOperationResult { &self.cns_volume_operation_result_ }
fn get_cns_volume_operation_result_mut(&mut self) -> &mut super::structs::CnsVolumeOperationResult { &mut self.cns_volume_operation_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsVolumeOperationResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeOperationResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeOperationResult>()?),
StructType::CnsAsyncQueryResult => Some(from.as_any_ref().downcast_ref::<CnsAsyncQueryResult>()?),
StructType::CnsVolumeAttachResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeAttachResult>()?),
StructType::CnsVolumeCreateResult => Some(from.as_any_ref().downcast_ref::<CnsVolumeCreateResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeOperationResult => Ok(from.as_any_box().downcast::<CnsVolumeOperationResult>()?),
StructType::CnsAsyncQueryResult => Ok(from.as_any_box().downcast::<CnsAsyncQueryResult>()?),
StructType::CnsVolumeAttachResult => Ok(from.as_any_box().downcast::<CnsVolumeAttachResult>()?),
StructType::CnsVolumeCreateResult => Ok(from.as_any_box().downcast::<CnsVolumeCreateResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for the volume relocation spec.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_relocate_volume(relocate_specs)`
pub trait CnsVolumeRelocateSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the CnsVolumeRelocateSpec parent struct
fn get_cns_volume_relocate_spec(&self) -> &super::structs::CnsVolumeRelocateSpec;
/// Get a mutable reference to the CnsVolumeRelocateSpec parent struct
fn get_cns_volume_relocate_spec_mut(&mut self) -> &mut super::structs::CnsVolumeRelocateSpec;
}
impl std::ops::Deref for dyn CnsVolumeRelocateSpecTrait {
type Target = super::structs::CnsVolumeRelocateSpec;
fn deref(&self) -> &Self::Target {
self.get_cns_volume_relocate_spec()
}
}
impl std::ops::DerefMut for dyn CnsVolumeRelocateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cns_volume_relocate_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn CnsVolumeRelocateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsVolumeRelocateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsVolumeRelocateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsVolumeRelocateSpec"),
__out: &mut self.out,
}))
}
}
struct CnsVolumeRelocateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsVolumeRelocateSpecTrait>>,
}
impl miniserde::de::Map for CnsVolumeRelocateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsVolumeRelocateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsVolumeRelocateSpecTrait for CnsVolumeRelocateSpec {
fn get_cns_volume_relocate_spec(&self) -> &super::structs::CnsVolumeRelocateSpec { &self }
fn get_cns_volume_relocate_spec_mut(&mut self) -> &mut super::structs::CnsVolumeRelocateSpec { self }
}
impl CnsVolumeRelocateSpecTrait for CnsBlockVolumeRelocateSpec {
fn get_cns_volume_relocate_spec(&self) -> &super::structs::CnsVolumeRelocateSpec { &self.cns_volume_relocate_spec_ }
fn get_cns_volume_relocate_spec_mut(&mut self) -> &mut super::structs::CnsVolumeRelocateSpec { &mut self.cns_volume_relocate_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsVolumeRelocateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeRelocateSpec => Some(from.as_any_ref().downcast_ref::<CnsVolumeRelocateSpec>()?),
StructType::CnsBlockVolumeRelocateSpec => Some(from.as_any_ref().downcast_ref::<CnsBlockVolumeRelocateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeRelocateSpec => Ok(from.as_any_box().downcast::<CnsVolumeRelocateSpec>()?),
StructType::CnsBlockVolumeRelocateSpec => Ok(from.as_any_box().downcast::<CnsBlockVolumeRelocateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for the source of volumes creation.
///
/// The source can be a volume snapshot or a volume.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `CnsVolumeManager::cns_create_volume(create_specs).volume_source?`
pub trait CnsVolumeSourceTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CnsVolumeSourceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CnsVolumeSourceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CnsVolumeSourceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CnsVolumeSource"),
__out: &mut self.out,
}))
}
}
struct CnsVolumeSourceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CnsVolumeSourceTrait>>,
}
impl miniserde::de::Map for CnsVolumeSourceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CnsVolumeSourceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CnsVolumeSourceTrait for CnsVolumeSource {
}
impl CnsVolumeSourceTrait for CnsSnapshotVolumeSource {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CnsVolumeSourceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeSource => Some(from.as_any_ref().downcast_ref::<CnsVolumeSource>()?),
StructType::CnsSnapshotVolumeSource => Some(from.as_any_ref().downcast_ref::<CnsSnapshotVolumeSource>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CnsVolumeSource => Ok(from.as_any_box().downcast::<CnsVolumeSource>()?),
StructType::CnsSnapshotVolumeSource => Ok(from.as_any_box().downcast::<CnsSnapshotVolumeSource>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DVPortSetting* data object
/// describes the network configuration of a *DistributedVirtualPort*.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config`
/// - `DistributedVirtualSwitch::config.default_port_config`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?`
///
/// *(10 of 20 paths)*
pub trait DvPortSettingTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvPortSetting parent struct
fn get_dv_port_setting(&self) -> &super::structs::DvPortSetting;
/// Get a mutable reference to the DvPortSetting parent struct
fn get_dv_port_setting_mut(&mut self) -> &mut super::structs::DvPortSetting;
}
impl std::ops::Deref for dyn DvPortSettingTrait {
type Target = super::structs::DvPortSetting;
fn deref(&self) -> &Self::Target {
self.get_dv_port_setting()
}
}
impl std::ops::DerefMut for dyn DvPortSettingTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dv_port_setting_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvPortSettingTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvPortSettingTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvPortSettingTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvPortSetting"),
__out: &mut self.out,
}))
}
}
struct DvPortSettingTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvPortSettingTrait>>,
}
impl miniserde::de::Map for DvPortSettingTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvPortSettingTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvPortSettingTrait for DvPortSetting {
fn get_dv_port_setting(&self) -> &super::structs::DvPortSetting { &self }
fn get_dv_port_setting_mut(&mut self) -> &mut super::structs::DvPortSetting { self }
}
impl DvPortSettingTrait for VMwareDvsPortSetting {
fn get_dv_port_setting(&self) -> &super::structs::DvPortSetting { &self.dv_port_setting_ }
fn get_dv_port_setting_mut(&mut self) -> &mut super::structs::DvPortSetting { &mut self.dv_port_setting_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvPortSettingTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvPortSetting => Some(from.as_any_ref().downcast_ref::<DvPortSetting>()?),
StructType::VMwareDvsPortSetting => Some(from.as_any_ref().downcast_ref::<VMwareDvsPortSetting>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvPortSetting => Ok(from.as_any_box().downcast::<DvPortSetting>()?),
StructType::VMwareDvsPortSetting => Ok(from.as_any_box().downcast::<VMwareDvsPortSetting>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The DistributedVirtualPortgroup policies.
///
/// This field is not applicable
/// when queried directly against an ESX host.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.policy`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).policy?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).policy?`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).policy?`
/// - `ClusterComputeResource::configure_hci_task(cluster_spec).dvs_prof?[*].dv_portgroup_mapping?[*].dv_portgroup_spec?.policy?`
/// - `ClusterComputeResource::validate_hci_configuration(hci_config_spec).dvs_prof?[*].dv_portgroup_mapping?[*].dv_portgroup_spec?.policy?`
/// - `DistributedVirtualSwitch::create_dv_portgroup_task(spec).policy?`
/// - `DistributedVirtualSwitch::add_dv_portgroup_task(spec).policy?`
pub trait DvPortgroupPolicyTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvPortgroupPolicy parent struct
fn get_dv_portgroup_policy(&self) -> &super::structs::DvPortgroupPolicy;
/// Get a mutable reference to the DvPortgroupPolicy parent struct
fn get_dv_portgroup_policy_mut(&mut self) -> &mut super::structs::DvPortgroupPolicy;
}
impl std::ops::Deref for dyn DvPortgroupPolicyTrait {
type Target = super::structs::DvPortgroupPolicy;
fn deref(&self) -> &Self::Target {
self.get_dv_portgroup_policy()
}
}
impl std::ops::DerefMut for dyn DvPortgroupPolicyTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dv_portgroup_policy_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvPortgroupPolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvPortgroupPolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvPortgroupPolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvPortgroupPolicy"),
__out: &mut self.out,
}))
}
}
struct DvPortgroupPolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvPortgroupPolicyTrait>>,
}
impl miniserde::de::Map for DvPortgroupPolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvPortgroupPolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvPortgroupPolicyTrait for DvPortgroupPolicy {
fn get_dv_portgroup_policy(&self) -> &super::structs::DvPortgroupPolicy { &self }
fn get_dv_portgroup_policy_mut(&mut self) -> &mut super::structs::DvPortgroupPolicy { self }
}
impl DvPortgroupPolicyTrait for VMwareDvsPortgroupPolicy {
fn get_dv_portgroup_policy(&self) -> &super::structs::DvPortgroupPolicy { &self.dv_portgroup_policy_ }
fn get_dv_portgroup_policy_mut(&mut self) -> &mut super::structs::DvPortgroupPolicy { &mut self.dv_portgroup_policy_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvPortgroupPolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvPortgroupPolicy => Some(from.as_any_ref().downcast_ref::<DvPortgroupPolicy>()?),
StructType::VMwareDvsPortgroupPolicy => Some(from.as_any_ref().downcast_ref::<VMwareDvsPortgroupPolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvPortgroupPolicy => Ok(from.as_any_box().downcast::<DvPortgroupPolicy>()?),
StructType::VMwareDvsPortgroupPolicy => Ok(from.as_any_box().downcast::<VMwareDvsPortgroupPolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for filters to check host compatibility.
///
/// ### How to access
/// - `DistributedVirtualSwitchManager::query_dvs_check_compatibility(host_filter_spec)`
pub trait DistributedVirtualSwitchManagerHostDvsFilterSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the DistributedVirtualSwitchManagerHostDvsFilterSpec parent struct
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec(&self) -> &super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec;
/// Get a mutable reference to the DistributedVirtualSwitchManagerHostDvsFilterSpec parent struct
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut(&mut self) -> &mut super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec;
}
impl std::ops::Deref for dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait {
type Target = super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec;
fn deref(&self) -> &Self::Target {
self.get_distributed_virtual_switch_manager_host_dvs_filter_spec()
}
}
impl std::ops::DerefMut for dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DistributedVirtualSwitchManagerHostDvsFilterSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DistributedVirtualSwitchManagerHostDvsFilterSpec"),
__out: &mut self.out,
}))
}
}
struct DistributedVirtualSwitchManagerHostDvsFilterSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait>>,
}
impl miniserde::de::Map for DistributedVirtualSwitchManagerHostDvsFilterSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DistributedVirtualSwitchManagerHostDvsFilterSpecTrait for DistributedVirtualSwitchManagerHostDvsFilterSpec {
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec(&self) -> &super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &self }
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut(&mut self) -> &mut super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { self }
}
impl DistributedVirtualSwitchManagerHostDvsFilterSpecTrait for DistributedVirtualSwitchManagerHostArrayFilter {
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec(&self) -> &super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut(&mut self) -> &mut super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &mut self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
}
impl DistributedVirtualSwitchManagerHostDvsFilterSpecTrait for DistributedVirtualSwitchManagerHostContainerFilter {
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec(&self) -> &super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut(&mut self) -> &mut super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &mut self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
}
impl DistributedVirtualSwitchManagerHostDvsFilterSpecTrait for DistributedVirtualSwitchManagerHostDvsMembershipFilter {
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec(&self) -> &super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
fn get_distributed_virtual_switch_manager_host_dvs_filter_spec_mut(&mut self) -> &mut super::structs::DistributedVirtualSwitchManagerHostDvsFilterSpec { &mut self.distributed_virtual_switch_manager_host_dvs_filter_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DistributedVirtualSwitchManagerHostDvsFilterSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DistributedVirtualSwitchManagerHostDvsFilterSpec => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostDvsFilterSpec>()?),
StructType::DistributedVirtualSwitchManagerHostArrayFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostArrayFilter>()?),
StructType::DistributedVirtualSwitchManagerHostContainerFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostContainerFilter>()?),
StructType::DistributedVirtualSwitchManagerHostDvsMembershipFilter => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchManagerHostDvsMembershipFilter>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DistributedVirtualSwitchManagerHostDvsFilterSpec => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostDvsFilterSpec>()?),
StructType::DistributedVirtualSwitchManagerHostArrayFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostArrayFilter>()?),
StructType::DistributedVirtualSwitchManagerHostContainerFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostContainerFilter>()?),
StructType::DistributedVirtualSwitchManagerHostDvsMembershipFilter => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchManagerHostDvsMembershipFilter>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for connectee filters.
///
/// This class serves as a base for different types of connectee filters.
/// It has three sub-classes.
///
/// ***Since:*** vSphere API Release 8.0.3.0
pub trait DvsFilterSpecConnecteeSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DvsFilterSpecConnecteeSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsFilterSpecConnecteeSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsFilterSpecConnecteeSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsFilterSpecConnecteeSpec"),
__out: &mut self.out,
}))
}
}
struct DvsFilterSpecConnecteeSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsFilterSpecConnecteeSpecTrait>>,
}
impl miniserde::de::Map for DvsFilterSpecConnecteeSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsFilterSpecConnecteeSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsFilterSpecConnecteeSpecTrait for DvsFilterSpecConnecteeSpec {
}
impl DvsFilterSpecConnecteeSpecTrait for DvsFilterSpecPnicConnecteeSpec {
}
impl DvsFilterSpecConnecteeSpecTrait for DvsFilterSpecVmConnecteeSpec {
}
impl DvsFilterSpecConnecteeSpecTrait for DvsFilterSpecVmknicConnecteeSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsFilterSpecConnecteeSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterSpecConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecConnecteeSpec>()?),
StructType::DvsFilterSpecPnicConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecPnicConnecteeSpec>()?),
StructType::DvsFilterSpecVmConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVmConnecteeSpec>()?),
StructType::DvsFilterSpecVmknicConnecteeSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVmknicConnecteeSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterSpecConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecConnecteeSpec>()?),
StructType::DvsFilterSpecPnicConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecPnicConnecteeSpec>()?),
StructType::DvsFilterSpecVmConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVmConnecteeSpec>()?),
StructType::DvsFilterSpecVmknicConnecteeSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVmknicConnecteeSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for VlanSpec filters.
///
/// This class serves as a base for different types of VlanSpec filters.
/// It has three sub-classes.
///
/// ***Since:*** vSphere API Release 8.0.3.0
pub trait DvsFilterSpecVlanSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DvsFilterSpecVlanSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsFilterSpecVlanSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsFilterSpecVlanSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsFilterSpecVlanSpec"),
__out: &mut self.out,
}))
}
}
struct DvsFilterSpecVlanSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsFilterSpecVlanSpecTrait>>,
}
impl miniserde::de::Map for DvsFilterSpecVlanSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsFilterSpecVlanSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsFilterSpecVlanSpecTrait for DvsFilterSpecVlanSpec {
}
impl DvsFilterSpecVlanSpecTrait for DvsFilterSpecPvlanSpec {
}
impl DvsFilterSpecVlanSpecTrait for DvsFilterSpecTrunkVlanSpec {
}
impl DvsFilterSpecVlanSpecTrait for DvsFilterSpecVlanIdSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsFilterSpecVlanSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterSpecVlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVlanSpec>()?),
StructType::DvsFilterSpecPvlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecPvlanSpec>()?),
StructType::DvsFilterSpecTrunkVlanSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecTrunkVlanSpec>()?),
StructType::DvsFilterSpecVlanIdSpec => Some(from.as_any_ref().downcast_ref::<DvsFilterSpecVlanIdSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsFilterSpecVlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVlanSpec>()?),
StructType::DvsFilterSpecPvlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecPvlanSpec>()?),
StructType::DvsFilterSpecTrunkVlanSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecTrunkVlanSpec>()?),
StructType::DvsFilterSpecVlanIdSpec => Ok(from.as_any_box().downcast::<DvsFilterSpecVlanIdSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class.
///
/// ### How to access
/// - `HostSystem::config.network?.proxy_switch?[*].spec.backing?`
/// - `VmwareDistributedVirtualSwitch::config.host?[*].config.backing`
/// - `DistributedVirtualSwitch::config.host?[*].config.backing`
/// - `HostNetworkSystem::network_config.proxy_switch?[*].spec?.backing?`
/// - `HostNetworkSystem::network_info.proxy_switch?[*].spec.backing?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).host?[*].backing?`
/// - `Folder::create_dvs_task(spec).config_spec.host?[*].backing?`
/// - `StoragePod::create_dvs_task(spec).config_spec.host?[*].backing?`
/// - `DistributedVirtualSwitch::reconfigure_dvs_task(spec).host?[*].backing?`
/// - `HostNetworkSystem::update_network_config(config).proxy_switch?[*].spec?.backing?`
///
/// *(10 of 17 paths)*
pub trait DistributedVirtualSwitchHostMemberBackingTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DistributedVirtualSwitchHostMemberBackingTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DistributedVirtualSwitchHostMemberBackingTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DistributedVirtualSwitchHostMemberBackingTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DistributedVirtualSwitchHostMemberBacking"),
__out: &mut self.out,
}))
}
}
struct DistributedVirtualSwitchHostMemberBackingTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DistributedVirtualSwitchHostMemberBackingTrait>>,
}
impl miniserde::de::Map for DistributedVirtualSwitchHostMemberBackingTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DistributedVirtualSwitchHostMemberBackingTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DistributedVirtualSwitchHostMemberBackingTrait for DistributedVirtualSwitchHostMemberBacking {
}
impl DistributedVirtualSwitchHostMemberBackingTrait for DistributedVirtualSwitchHostMemberPnicBacking {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DistributedVirtualSwitchHostMemberBackingTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DistributedVirtualSwitchHostMemberBacking => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberBacking>()?),
StructType::DistributedVirtualSwitchHostMemberPnicBacking => Some(from.as_any_ref().downcast_ref::<DistributedVirtualSwitchHostMemberPnicBacking>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DistributedVirtualSwitchHostMemberBacking => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberBacking>()?),
StructType::DistributedVirtualSwitchHostMemberPnicBacking => Ok(from.as_any_box().downcast::<DistributedVirtualSwitchHostMemberPnicBacking>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines healthcheck result of the vSphere Distributed Switch.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::runtime.host_member_runtime?[*].health_check_result?[*]`
/// - `DistributedVirtualSwitch::runtime.host_member_runtime?[*].health_check_result?[*]`
pub trait HostMemberHealthCheckResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostMemberHealthCheckResult parent struct
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult;
/// Get a mutable reference to the HostMemberHealthCheckResult parent struct
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult;
}
impl std::ops::Deref for dyn HostMemberHealthCheckResultTrait {
type Target = super::structs::HostMemberHealthCheckResult;
fn deref(&self) -> &Self::Target {
self.get_host_member_health_check_result()
}
}
impl std::ops::DerefMut for dyn HostMemberHealthCheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_member_health_check_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostMemberHealthCheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostMemberHealthCheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostMemberHealthCheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostMemberHealthCheckResult"),
__out: &mut self.out,
}))
}
}
struct HostMemberHealthCheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostMemberHealthCheckResultTrait>>,
}
impl miniserde::de::Map for HostMemberHealthCheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostMemberHealthCheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostMemberHealthCheckResultTrait for HostMemberHealthCheckResult {
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult { &self }
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult { self }
}
impl HostMemberHealthCheckResultTrait for HostMemberUplinkHealthCheckResult {
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult { &self.host_member_health_check_result_ }
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult { &mut self.host_member_health_check_result_ }
}
impl HostMemberHealthCheckResultTrait for VMwareDvsMtuHealthCheckResult {
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult { &self.host_member_uplink_health_check_result_.host_member_health_check_result_ }
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult { &mut self.host_member_uplink_health_check_result_.host_member_health_check_result_ }
}
impl HostMemberHealthCheckResultTrait for VMwareDvsVlanHealthCheckResult {
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult { &self.host_member_uplink_health_check_result_.host_member_health_check_result_ }
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult { &mut self.host_member_uplink_health_check_result_.host_member_health_check_result_ }
}
impl HostMemberHealthCheckResultTrait for VMwareDvsTeamingHealthCheckResult {
fn get_host_member_health_check_result(&self) -> &super::structs::HostMemberHealthCheckResult { &self.host_member_health_check_result_ }
fn get_host_member_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberHealthCheckResult { &mut self.host_member_health_check_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostMemberHealthCheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostMemberHealthCheckResult => Some(from.as_any_ref().downcast_ref::<HostMemberHealthCheckResult>()?),
StructType::HostMemberUplinkHealthCheckResult => Some(from.as_any_ref().downcast_ref::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanHealthCheckResult>()?),
StructType::VMwareDvsTeamingHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsTeamingHealthCheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostMemberHealthCheckResult => Ok(from.as_any_box().downcast::<HostMemberHealthCheckResult>()?),
StructType::HostMemberUplinkHealthCheckResult => Ok(from.as_any_box().downcast::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsVlanHealthCheckResult>()?),
StructType::VMwareDvsTeamingHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsTeamingHealthCheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class defines healthcheck result of a specified Uplink port
/// in vSphere Distributed Switch.
///
/// ### How to access
/// - `VmwareDistributedVirtualSwitch::runtime.host_member_runtime?[*].health_check_result?[*]⇒HostMemberUplinkHealthCheckResultTrait`
/// - `DistributedVirtualSwitch::runtime.host_member_runtime?[*].health_check_result?[*]⇒HostMemberUplinkHealthCheckResultTrait`
pub trait HostMemberUplinkHealthCheckResultTrait : super::traits::HostMemberHealthCheckResultTrait {
/// Get a reference to the HostMemberUplinkHealthCheckResult parent struct
fn get_host_member_uplink_health_check_result(&self) -> &super::structs::HostMemberUplinkHealthCheckResult;
/// Get a mutable reference to the HostMemberUplinkHealthCheckResult parent struct
fn get_host_member_uplink_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberUplinkHealthCheckResult;
}
impl std::ops::Deref for dyn HostMemberUplinkHealthCheckResultTrait {
type Target = super::structs::HostMemberUplinkHealthCheckResult;
fn deref(&self) -> &Self::Target {
self.get_host_member_uplink_health_check_result()
}
}
impl std::ops::DerefMut for dyn HostMemberUplinkHealthCheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_member_uplink_health_check_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostMemberUplinkHealthCheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostMemberUplinkHealthCheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostMemberUplinkHealthCheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostMemberUplinkHealthCheckResult"),
__out: &mut self.out,
}))
}
}
struct HostMemberUplinkHealthCheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostMemberUplinkHealthCheckResultTrait>>,
}
impl miniserde::de::Map for HostMemberUplinkHealthCheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostMemberUplinkHealthCheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostMemberUplinkHealthCheckResultTrait for HostMemberUplinkHealthCheckResult {
fn get_host_member_uplink_health_check_result(&self) -> &super::structs::HostMemberUplinkHealthCheckResult { &self }
fn get_host_member_uplink_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberUplinkHealthCheckResult { self }
}
impl HostMemberUplinkHealthCheckResultTrait for VMwareDvsMtuHealthCheckResult {
fn get_host_member_uplink_health_check_result(&self) -> &super::structs::HostMemberUplinkHealthCheckResult { &self.host_member_uplink_health_check_result_ }
fn get_host_member_uplink_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberUplinkHealthCheckResult { &mut self.host_member_uplink_health_check_result_ }
}
impl HostMemberUplinkHealthCheckResultTrait for VMwareDvsVlanHealthCheckResult {
fn get_host_member_uplink_health_check_result(&self) -> &super::structs::HostMemberUplinkHealthCheckResult { &self.host_member_uplink_health_check_result_ }
fn get_host_member_uplink_health_check_result_mut(&mut self) -> &mut super::structs::HostMemberUplinkHealthCheckResult { &mut self.host_member_uplink_health_check_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostMemberUplinkHealthCheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostMemberUplinkHealthCheckResult => Some(from.as_any_ref().downcast_ref::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Some(from.as_any_ref().downcast_ref::<VMwareDvsVlanHealthCheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostMemberUplinkHealthCheckResult => Ok(from.as_any_box().downcast::<HostMemberUplinkHealthCheckResult>()?),
StructType::VMwareDvsMtuHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsMtuHealthCheckResult>()?),
StructType::VMwareDvsVlanHealthCheckResult => Ok(from.as_any_box().downcast::<VMwareDvsVlanHealthCheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class is the base class for network rule action.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].action?`
///
/// *(10 of 20 paths)*
pub trait DvsNetworkRuleActionTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn DvsNetworkRuleActionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsNetworkRuleActionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsNetworkRuleActionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsNetworkRuleAction"),
__out: &mut self.out,
}))
}
}
struct DvsNetworkRuleActionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsNetworkRuleActionTrait>>,
}
impl miniserde::de::Map for DvsNetworkRuleActionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsNetworkRuleActionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsNetworkRuleActionTrait for DvsNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsAcceptNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsCopyNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsDropNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsGreEncapNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsLogNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsMacRewriteNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsPuntNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsRateLimitNetworkRuleAction {
}
impl DvsNetworkRuleActionTrait for DvsUpdateTagNetworkRuleAction {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsNetworkRuleActionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsNetworkRuleAction>()?),
StructType::DvsAcceptNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsAcceptNetworkRuleAction>()?),
StructType::DvsCopyNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsCopyNetworkRuleAction>()?),
StructType::DvsDropNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsDropNetworkRuleAction>()?),
StructType::DvsGreEncapNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsGreEncapNetworkRuleAction>()?),
StructType::DvsLogNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsLogNetworkRuleAction>()?),
StructType::DvsMacRewriteNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsMacRewriteNetworkRuleAction>()?),
StructType::DvsPuntNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsPuntNetworkRuleAction>()?),
StructType::DvsRateLimitNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsRateLimitNetworkRuleAction>()?),
StructType::DvsUpdateTagNetworkRuleAction => Some(from.as_any_ref().downcast_ref::<DvsUpdateTagNetworkRuleAction>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsNetworkRuleAction>()?),
StructType::DvsAcceptNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsAcceptNetworkRuleAction>()?),
StructType::DvsCopyNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsCopyNetworkRuleAction>()?),
StructType::DvsDropNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsDropNetworkRuleAction>()?),
StructType::DvsGreEncapNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsGreEncapNetworkRuleAction>()?),
StructType::DvsLogNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsLogNetworkRuleAction>()?),
StructType::DvsMacRewriteNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsMacRewriteNetworkRuleAction>()?),
StructType::DvsPuntNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsPuntNetworkRuleAction>()?),
StructType::DvsRateLimitNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsRateLimitNetworkRuleAction>()?),
StructType::DvsUpdateTagNetworkRuleAction => Ok(from.as_any_box().downcast::<DvsUpdateTagNetworkRuleAction>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This class is the base class for identifying network traffic.
///
/// ### How to access
/// - `DistributedVirtualPortgroup::config.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `VmwareDistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `DistributedVirtualSwitch::config.default_port_config.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `DistributedVirtualPortgroup::reconfigure_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `VmwareDistributedVirtualSwitch::create_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `VmwareDistributedVirtualSwitch::add_dv_portgroup_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dvs_task(spec).default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `VmwareDistributedVirtualSwitch::reconfigure_dv_port_task(port).setting?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `Folder::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
/// - `StoragePod::create_dvs_task(spec).config_spec.default_port_config?.filter_policy?.filter_config?[*]⇒DvsTrafficFilterConfigTrait.traffic_ruleset?.rules?[*].qualifier?[*]`
///
/// *(10 of 20 paths)*
pub trait DvsNetworkRuleQualifierTrait : super::traits::DataObjectTrait {
/// Get a reference to the DvsNetworkRuleQualifier parent struct
fn get_dvs_network_rule_qualifier(&self) -> &super::structs::DvsNetworkRuleQualifier;
/// Get a mutable reference to the DvsNetworkRuleQualifier parent struct
fn get_dvs_network_rule_qualifier_mut(&mut self) -> &mut super::structs::DvsNetworkRuleQualifier;
}
impl std::ops::Deref for dyn DvsNetworkRuleQualifierTrait {
type Target = super::structs::DvsNetworkRuleQualifier;
fn deref(&self) -> &Self::Target {
self.get_dvs_network_rule_qualifier()
}
}
impl std::ops::DerefMut for dyn DvsNetworkRuleQualifierTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_network_rule_qualifier_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsNetworkRuleQualifierTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsNetworkRuleQualifierTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsNetworkRuleQualifierTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsNetworkRuleQualifier"),
__out: &mut self.out,
}))
}
}
struct DvsNetworkRuleQualifierTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsNetworkRuleQualifierTrait>>,
}
impl miniserde::de::Map for DvsNetworkRuleQualifierTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsNetworkRuleQualifierTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsNetworkRuleQualifierTrait for DvsNetworkRuleQualifier {
fn get_dvs_network_rule_qualifier(&self) -> &super::structs::DvsNetworkRuleQualifier { &self }
fn get_dvs_network_rule_qualifier_mut(&mut self) -> &mut super::structs::DvsNetworkRuleQualifier { self }
}
impl DvsNetworkRuleQualifierTrait for DvsIpNetworkRuleQualifier {
fn get_dvs_network_rule_qualifier(&self) -> &super::structs::DvsNetworkRuleQualifier { &self.dvs_network_rule_qualifier_ }
fn get_dvs_network_rule_qualifier_mut(&mut self) -> &mut super::structs::DvsNetworkRuleQualifier { &mut self.dvs_network_rule_qualifier_ }
}
impl DvsNetworkRuleQualifierTrait for DvsMacNetworkRuleQualifier {
fn get_dvs_network_rule_qualifier(&self) -> &super::structs::DvsNetworkRuleQualifier { &self.dvs_network_rule_qualifier_ }
fn get_dvs_network_rule_qualifier_mut(&mut self) -> &mut super::structs::DvsNetworkRuleQualifier { &mut self.dvs_network_rule_qualifier_ }
}
impl DvsNetworkRuleQualifierTrait for DvsSystemTrafficNetworkRuleQualifier {
fn get_dvs_network_rule_qualifier(&self) -> &super::structs::DvsNetworkRuleQualifier { &self.dvs_network_rule_qualifier_ }
fn get_dvs_network_rule_qualifier_mut(&mut self) -> &mut super::structs::DvsNetworkRuleQualifier { &mut self.dvs_network_rule_qualifier_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsNetworkRuleQualifierTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsNetworkRuleQualifier>()?),
StructType::DvsIpNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsIpNetworkRuleQualifier>()?),
StructType::DvsMacNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsMacNetworkRuleQualifier>()?),
StructType::DvsSystemTrafficNetworkRuleQualifier => Some(from.as_any_ref().downcast_ref::<DvsSystemTrafficNetworkRuleQualifier>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsNetworkRuleQualifier>()?),
StructType::DvsIpNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsIpNetworkRuleQualifier>()?),
StructType::DvsMacNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsMacNetworkRuleQualifier>()?),
StructType::DvsSystemTrafficNetworkRuleQualifier => Ok(from.as_any_box().downcast::<DvsSystemTrafficNetworkRuleQualifier>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class of key information.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `CryptoManagerKmip::query_crypto_key_status().key_info?`
pub trait CryptoManagerKmipCryptoKeyStatusKeyInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the CryptoManagerKmipCryptoKeyStatusKeyInfo parent struct
fn get_crypto_manager_kmip_crypto_key_status_key_info(&self) -> &super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo;
/// Get a mutable reference to the CryptoManagerKmipCryptoKeyStatusKeyInfo parent struct
fn get_crypto_manager_kmip_crypto_key_status_key_info_mut(&mut self) -> &mut super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo;
}
impl std::ops::Deref for dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait {
type Target = super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo;
fn deref(&self) -> &Self::Target {
self.get_crypto_manager_kmip_crypto_key_status_key_info()
}
}
impl std::ops::DerefMut for dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_crypto_manager_kmip_crypto_key_status_key_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CryptoManagerKmipCryptoKeyStatusKeyInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CryptoManagerKmipCryptoKeyStatusKeyInfo"),
__out: &mut self.out,
}))
}
}
struct CryptoManagerKmipCryptoKeyStatusKeyInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait>>,
}
impl miniserde::de::Map for CryptoManagerKmipCryptoKeyStatusKeyInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CryptoManagerKmipCryptoKeyStatusKeyInfoTrait for CryptoManagerKmipCryptoKeyStatusKeyInfo {
fn get_crypto_manager_kmip_crypto_key_status_key_info(&self) -> &super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { &self }
fn get_crypto_manager_kmip_crypto_key_status_key_info_mut(&mut self) -> &mut super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { self }
}
impl CryptoManagerKmipCryptoKeyStatusKeyInfoTrait for CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo {
fn get_crypto_manager_kmip_crypto_key_status_key_info(&self) -> &super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { &self.crypto_manager_kmip_crypto_key_status_key_info_ }
fn get_crypto_manager_kmip_crypto_key_status_key_info_mut(&mut self) -> &mut super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { &mut self.crypto_manager_kmip_crypto_key_status_key_info_ }
}
impl CryptoManagerKmipCryptoKeyStatusKeyInfoTrait for CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo {
fn get_crypto_manager_kmip_crypto_key_status_key_info(&self) -> &super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { &self.crypto_manager_kmip_crypto_key_status_key_info_ }
fn get_crypto_manager_kmip_crypto_key_status_key_info_mut(&mut self) -> &mut super::structs::CryptoManagerKmipCryptoKeyStatusKeyInfo { &mut self.crypto_manager_kmip_crypto_key_status_key_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CryptoManagerKmipCryptoKeyStatusKeyInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CryptoManagerKmipCryptoKeyStatusKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo => Some(from.as_any_ref().downcast_ref::<CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CryptoManagerKmipCryptoKeyStatusKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusWrappingKeyIdKeyInfo>()?),
StructType::CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo => Ok(from.as_any_box().downcast::<CryptoManagerKmipCryptoKeyStatusWrappingRotationIntervalKeyInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type encapsulates virtual machine or disk encryption
/// settings.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.crypto_spec?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.crypto_spec?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.crypto_spec?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.crypto?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.crypto_spec?`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.crypto_spec?`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.crypto_spec?`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.crypto_spec?`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.crypto?`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.crypto_spec?`
///
/// *(10 of 100 paths)*
pub trait CryptoSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CryptoSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CryptoSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CryptoSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CryptoSpec"),
__out: &mut self.out,
}))
}
}
struct CryptoSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CryptoSpecTrait>>,
}
impl miniserde::de::Map for CryptoSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CryptoSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CryptoSpecTrait for CryptoSpec {
}
impl CryptoSpecTrait for CryptoSpecDecrypt {
}
impl CryptoSpecTrait for CryptoSpecDeepRecrypt {
}
impl CryptoSpecTrait for CryptoSpecEncrypt {
}
impl CryptoSpecTrait for CryptoSpecNoOp {
}
impl CryptoSpecTrait for CryptoSpecRegister {
}
impl CryptoSpecTrait for CryptoSpecShallowRecrypt {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CryptoSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CryptoSpec => Some(from.as_any_ref().downcast_ref::<CryptoSpec>()?),
StructType::CryptoSpecDecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecDecrypt>()?),
StructType::CryptoSpecDeepRecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecDeepRecrypt>()?),
StructType::CryptoSpecEncrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecEncrypt>()?),
StructType::CryptoSpecNoOp => Some(from.as_any_ref().downcast_ref::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Some(from.as_any_ref().downcast_ref::<CryptoSpecRegister>()?),
StructType::CryptoSpecShallowRecrypt => Some(from.as_any_ref().downcast_ref::<CryptoSpecShallowRecrypt>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CryptoSpec => Ok(from.as_any_box().downcast::<CryptoSpec>()?),
StructType::CryptoSpecDecrypt => Ok(from.as_any_box().downcast::<CryptoSpecDecrypt>()?),
StructType::CryptoSpecDeepRecrypt => Ok(from.as_any_box().downcast::<CryptoSpecDeepRecrypt>()?),
StructType::CryptoSpecEncrypt => Ok(from.as_any_box().downcast::<CryptoSpecEncrypt>()?),
StructType::CryptoSpecNoOp => Ok(from.as_any_box().downcast::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Ok(from.as_any_box().downcast::<CryptoSpecRegister>()?),
StructType::CryptoSpecShallowRecrypt => Ok(from.as_any_box().downcast::<CryptoSpecShallowRecrypt>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type indicates that the encryption settings of the
/// virtual machine or disk should not be modified by the operation.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.crypto?⇒CryptoSpecNoOpTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.crypto_spec?⇒CryptoSpecNoOpTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.crypto?⇒CryptoSpecNoOpTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.crypto_spec?⇒CryptoSpecNoOpTrait`
///
/// *(10 of 100 paths)*
pub trait CryptoSpecNoOpTrait : super::traits::CryptoSpecTrait {
}
impl miniserde::Deserialize for Box<dyn CryptoSpecNoOpTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CryptoSpecNoOpTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CryptoSpecNoOpTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CryptoSpecNoOp"),
__out: &mut self.out,
}))
}
}
struct CryptoSpecNoOpTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CryptoSpecNoOpTrait>>,
}
impl miniserde::de::Map for CryptoSpecNoOpTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CryptoSpecNoOpTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CryptoSpecNoOpTrait for CryptoSpecNoOp {
}
impl CryptoSpecNoOpTrait for CryptoSpecRegister {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CryptoSpecNoOpTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CryptoSpecNoOp => Some(from.as_any_ref().downcast_ref::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Some(from.as_any_ref().downcast_ref::<CryptoSpecRegister>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CryptoSpecNoOp => Ok(from.as_any_box().downcast::<CryptoSpecNoOp>()?),
StructType::CryptoSpecRegister => Ok(from.as_any_box().downcast::<CryptoSpecRegister>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class of key information.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `CryptoManagerKmip::kmip_servers.key_info?`
/// - `CryptoManagerKmip::list_kmip_servers().key_info?`
/// - `CryptoManagerKmip::list_kms_clusters().key_info?`
/// - `CryptoManagerKmip::retrieve_kmip_servers_status_task(clusters).key_info?`
pub trait KmipClusterInfoKeyInfoTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn KmipClusterInfoKeyInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn KmipClusterInfoKeyInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(KmipClusterInfoKeyInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("KmipClusterInfoKeyInfo"),
__out: &mut self.out,
}))
}
}
struct KmipClusterInfoKeyInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn KmipClusterInfoKeyInfoTrait>>,
}
impl miniserde::de::Map for KmipClusterInfoKeyInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn KmipClusterInfoKeyInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl KmipClusterInfoKeyInfoTrait for KmipClusterInfoKeyInfo {
}
impl KmipClusterInfoKeyInfoTrait for KmipClusterInfoWrappingKeyIdKeyInfo {
}
impl KmipClusterInfoKeyInfoTrait for KmipClusterInfoWrappingRotationIntervalKeyInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn KmipClusterInfoKeyInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::KmipClusterInfoKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoKeyInfo>()?),
StructType::KmipClusterInfoWrappingKeyIdKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoWrappingKeyIdKeyInfo>()?),
StructType::KmipClusterInfoWrappingRotationIntervalKeyInfo => Some(from.as_any_ref().downcast_ref::<KmipClusterInfoWrappingRotationIntervalKeyInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::KmipClusterInfoKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoKeyInfo>()?),
StructType::KmipClusterInfoWrappingKeyIdKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoWrappingKeyIdKeyInfo>()?),
StructType::KmipClusterInfoWrappingRotationIntervalKeyInfo => Ok(from.as_any_box().downcast::<KmipClusterInfoWrappingRotationIntervalKeyInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class of key specification.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `HostVsanSystem::config→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `StoragePod::create_cluster_ex(spec).vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.encryption_info?.kmip_servers?[*].key_spec?`
///
/// *(10 of 25 paths)*
pub trait KmipServerSpecKeySpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn KmipServerSpecKeySpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn KmipServerSpecKeySpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(KmipServerSpecKeySpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("KmipServerSpecKeySpec"),
__out: &mut self.out,
}))
}
}
struct KmipServerSpecKeySpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn KmipServerSpecKeySpecTrait>>,
}
impl miniserde::de::Map for KmipServerSpecKeySpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn KmipServerSpecKeySpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl KmipServerSpecKeySpecTrait for KmipServerSpecKeySpec {
}
impl KmipServerSpecKeySpecTrait for KmipServerSpecWrappingKeyIdKeySpec {
}
impl KmipServerSpecKeySpecTrait for KmipServerSpecWrappingRotationIntervalKeySpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn KmipServerSpecKeySpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::KmipServerSpecKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecKeySpec>()?),
StructType::KmipServerSpecWrappingKeyIdKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecWrappingKeyIdKeySpec>()?),
StructType::KmipServerSpecWrappingRotationIntervalKeySpec => Some(from.as_any_ref().downcast_ref::<KmipServerSpecWrappingRotationIntervalKeySpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::KmipServerSpecKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecKeySpec>()?),
StructType::KmipServerSpecWrappingKeyIdKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecWrappingKeyIdKeySpec>()?),
StructType::KmipServerSpecWrappingRotationIntervalKeySpec => Ok(from.as_any_box().downcast::<KmipServerSpecWrappingRotationIntervalKeySpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This is the base type for event argument types.
///
/// Event argument objects, which inherit from a common subtype,
/// are used to manage supplementary properties of different kinds
/// of event objects.
pub trait EventArgumentTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn EventArgumentTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn EventArgumentTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(EventArgumentTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("EventArgument"),
__out: &mut self.out,
}))
}
}
struct EventArgumentTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn EventArgumentTrait>>,
}
impl miniserde::de::Map for EventArgumentTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn EventArgumentTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl EventArgumentTrait for EventArgument {
}
impl EventArgumentTrait for EntityEventArgument {
}
impl EventArgumentTrait for AlarmEventArgument {
}
impl EventArgumentTrait for ComputeResourceEventArgument {
}
impl EventArgumentTrait for DatacenterEventArgument {
}
impl EventArgumentTrait for DatastoreEventArgument {
}
impl EventArgumentTrait for DvsEventArgument {
}
impl EventArgumentTrait for FolderEventArgument {
}
impl EventArgumentTrait for HostEventArgument {
}
impl EventArgumentTrait for ManagedEntityEventArgument {
}
impl EventArgumentTrait for NetworkEventArgument {
}
impl EventArgumentTrait for ResourcePoolEventArgument {
}
impl EventArgumentTrait for ScheduledTaskEventArgument {
}
impl EventArgumentTrait for VmEventArgument {
}
impl EventArgumentTrait for ProfileEventArgument {
}
impl EventArgumentTrait for RoleEventArgument {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn EventArgumentTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::EventArgument => Some(from.as_any_ref().downcast_ref::<EventArgument>()?),
StructType::EntityEventArgument => Some(from.as_any_ref().downcast_ref::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Some(from.as_any_ref().downcast_ref::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Some(from.as_any_ref().downcast_ref::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Some(from.as_any_ref().downcast_ref::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Some(from.as_any_ref().downcast_ref::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Some(from.as_any_ref().downcast_ref::<DvsEventArgument>()?),
StructType::FolderEventArgument => Some(from.as_any_ref().downcast_ref::<FolderEventArgument>()?),
StructType::HostEventArgument => Some(from.as_any_ref().downcast_ref::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Some(from.as_any_ref().downcast_ref::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Some(from.as_any_ref().downcast_ref::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Some(from.as_any_ref().downcast_ref::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Some(from.as_any_ref().downcast_ref::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Some(from.as_any_ref().downcast_ref::<VmEventArgument>()?),
StructType::ProfileEventArgument => Some(from.as_any_ref().downcast_ref::<ProfileEventArgument>()?),
StructType::RoleEventArgument => Some(from.as_any_ref().downcast_ref::<RoleEventArgument>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::EventArgument => Ok(from.as_any_box().downcast::<EventArgument>()?),
StructType::EntityEventArgument => Ok(from.as_any_box().downcast::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Ok(from.as_any_box().downcast::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Ok(from.as_any_box().downcast::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Ok(from.as_any_box().downcast::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Ok(from.as_any_box().downcast::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Ok(from.as_any_box().downcast::<DvsEventArgument>()?),
StructType::FolderEventArgument => Ok(from.as_any_box().downcast::<FolderEventArgument>()?),
StructType::HostEventArgument => Ok(from.as_any_box().downcast::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Ok(from.as_any_box().downcast::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Ok(from.as_any_box().downcast::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Ok(from.as_any_box().downcast::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Ok(from.as_any_box().downcast::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Ok(from.as_any_box().downcast::<VmEventArgument>()?),
StructType::ProfileEventArgument => Ok(from.as_any_box().downcast::<ProfileEventArgument>()?),
StructType::RoleEventArgument => Ok(from.as_any_box().downcast::<RoleEventArgument>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The event argument is a managed entity object.
///
/// Subclasses of this type distinguish the different managed entities
/// referenced in event objects.
pub trait EntityEventArgumentTrait : super::traits::EventArgumentTrait {
/// Get a reference to the EntityEventArgument parent struct
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument;
/// Get a mutable reference to the EntityEventArgument parent struct
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument;
}
impl std::ops::Deref for dyn EntityEventArgumentTrait {
type Target = super::structs::EntityEventArgument;
fn deref(&self) -> &Self::Target {
self.get_entity_event_argument()
}
}
impl std::ops::DerefMut for dyn EntityEventArgumentTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_entity_event_argument_mut()
}
}
impl miniserde::Deserialize for Box<dyn EntityEventArgumentTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn EntityEventArgumentTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(EntityEventArgumentTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("EntityEventArgument"),
__out: &mut self.out,
}))
}
}
struct EntityEventArgumentTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn EntityEventArgumentTrait>>,
}
impl miniserde::de::Map for EntityEventArgumentTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn EntityEventArgumentTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl EntityEventArgumentTrait for EntityEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { self }
}
impl EntityEventArgumentTrait for AlarmEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for ComputeResourceEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for DatacenterEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for DatastoreEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for DvsEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for FolderEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for HostEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for ManagedEntityEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for NetworkEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for ResourcePoolEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for ScheduledTaskEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl EntityEventArgumentTrait for VmEventArgument {
fn get_entity_event_argument(&self) -> &super::structs::EntityEventArgument { &self.entity_event_argument_ }
fn get_entity_event_argument_mut(&mut self) -> &mut super::structs::EntityEventArgument { &mut self.entity_event_argument_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn EntityEventArgumentTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::EntityEventArgument => Some(from.as_any_ref().downcast_ref::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Some(from.as_any_ref().downcast_ref::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Some(from.as_any_ref().downcast_ref::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Some(from.as_any_ref().downcast_ref::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Some(from.as_any_ref().downcast_ref::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Some(from.as_any_ref().downcast_ref::<DvsEventArgument>()?),
StructType::FolderEventArgument => Some(from.as_any_ref().downcast_ref::<FolderEventArgument>()?),
StructType::HostEventArgument => Some(from.as_any_ref().downcast_ref::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Some(from.as_any_ref().downcast_ref::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Some(from.as_any_ref().downcast_ref::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Some(from.as_any_ref().downcast_ref::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Some(from.as_any_ref().downcast_ref::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Some(from.as_any_ref().downcast_ref::<VmEventArgument>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::EntityEventArgument => Ok(from.as_any_box().downcast::<EntityEventArgument>()?),
StructType::AlarmEventArgument => Ok(from.as_any_box().downcast::<AlarmEventArgument>()?),
StructType::ComputeResourceEventArgument => Ok(from.as_any_box().downcast::<ComputeResourceEventArgument>()?),
StructType::DatacenterEventArgument => Ok(from.as_any_box().downcast::<DatacenterEventArgument>()?),
StructType::DatastoreEventArgument => Ok(from.as_any_box().downcast::<DatastoreEventArgument>()?),
StructType::DvsEventArgument => Ok(from.as_any_box().downcast::<DvsEventArgument>()?),
StructType::FolderEventArgument => Ok(from.as_any_box().downcast::<FolderEventArgument>()?),
StructType::HostEventArgument => Ok(from.as_any_box().downcast::<HostEventArgument>()?),
StructType::ManagedEntityEventArgument => Ok(from.as_any_box().downcast::<ManagedEntityEventArgument>()?),
StructType::NetworkEventArgument => Ok(from.as_any_box().downcast::<NetworkEventArgument>()?),
StructType::ResourcePoolEventArgument => Ok(from.as_any_box().downcast::<ResourcePoolEventArgument>()?),
StructType::ScheduledTaskEventArgument => Ok(from.as_any_box().downcast::<ScheduledTaskEventArgument>()?),
StructType::VmEventArgument => Ok(from.as_any_box().downcast::<VmEventArgument>()?),
_ => Err(from.as_any_box()),
}
}
}
/// BaseClass allowing different views on filtered set.
///
/// ***Since:*** vSphere API Release 9.0.0.0
///
/// ### How to access
/// - `EventManager::query_events(event_view_spec)`
pub trait EventManagerEventViewSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn EventManagerEventViewSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn EventManagerEventViewSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(EventManagerEventViewSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("EventManagerEventViewSpec"),
__out: &mut self.out,
}))
}
}
struct EventManagerEventViewSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn EventManagerEventViewSpecTrait>>,
}
impl miniserde::de::Map for EventManagerEventViewSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn EventManagerEventViewSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl EventManagerEventViewSpecTrait for EventManagerEventViewSpec {
}
impl EventManagerEventViewSpecTrait for EventManagerViewByStartId {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn EventManagerEventViewSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::EventManagerEventViewSpec => Some(from.as_any_ref().downcast_ref::<EventManagerEventViewSpec>()?),
StructType::EventManagerViewByStartId => Some(from.as_any_ref().downcast_ref::<EventManagerViewByStartId>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::EventManagerEventViewSpec => Ok(from.as_any_box().downcast::<EventManagerEventViewSpec>()?),
StructType::EventManagerViewByStartId => Ok(from.as_any_box().downcast::<EventManagerViewByStartId>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *HostAuthenticationStoreInfo* base class defines status information
/// for local and host Active Directory authentication.
///
/// ### How to access
/// - `HostSystem::config.authentication_manager_info?.auth_config[*]`
/// - `HostActiveDirectoryAuthentication::info`
/// - `HostAuthenticationStore::info`
/// - `HostDirectoryStore::info`
/// - `HostLocalAuthentication::info`
/// - `HostAuthenticationManager::info.auth_config[*]`
pub trait HostAuthenticationStoreInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostAuthenticationStoreInfo parent struct
fn get_host_authentication_store_info(&self) -> &super::structs::HostAuthenticationStoreInfo;
/// Get a mutable reference to the HostAuthenticationStoreInfo parent struct
fn get_host_authentication_store_info_mut(&mut self) -> &mut super::structs::HostAuthenticationStoreInfo;
}
impl std::ops::Deref for dyn HostAuthenticationStoreInfoTrait {
type Target = super::structs::HostAuthenticationStoreInfo;
fn deref(&self) -> &Self::Target {
self.get_host_authentication_store_info()
}
}
impl std::ops::DerefMut for dyn HostAuthenticationStoreInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_authentication_store_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostAuthenticationStoreInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostAuthenticationStoreInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostAuthenticationStoreInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostAuthenticationStoreInfo"),
__out: &mut self.out,
}))
}
}
struct HostAuthenticationStoreInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostAuthenticationStoreInfoTrait>>,
}
impl miniserde::de::Map for HostAuthenticationStoreInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostAuthenticationStoreInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostAuthenticationStoreInfoTrait for HostAuthenticationStoreInfo {
fn get_host_authentication_store_info(&self) -> &super::structs::HostAuthenticationStoreInfo { &self }
fn get_host_authentication_store_info_mut(&mut self) -> &mut super::structs::HostAuthenticationStoreInfo { self }
}
impl HostAuthenticationStoreInfoTrait for HostDirectoryStoreInfo {
fn get_host_authentication_store_info(&self) -> &super::structs::HostAuthenticationStoreInfo { &self.host_authentication_store_info_ }
fn get_host_authentication_store_info_mut(&mut self) -> &mut super::structs::HostAuthenticationStoreInfo { &mut self.host_authentication_store_info_ }
}
impl HostAuthenticationStoreInfoTrait for HostActiveDirectoryInfo {
fn get_host_authentication_store_info(&self) -> &super::structs::HostAuthenticationStoreInfo { &self.host_directory_store_info_.host_authentication_store_info_ }
fn get_host_authentication_store_info_mut(&mut self) -> &mut super::structs::HostAuthenticationStoreInfo { &mut self.host_directory_store_info_.host_authentication_store_info_ }
}
impl HostAuthenticationStoreInfoTrait for HostLocalAuthenticationInfo {
fn get_host_authentication_store_info(&self) -> &super::structs::HostAuthenticationStoreInfo { &self.host_authentication_store_info_ }
fn get_host_authentication_store_info_mut(&mut self) -> &mut super::structs::HostAuthenticationStoreInfo { &mut self.host_authentication_store_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostAuthenticationStoreInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostAuthenticationStoreInfo => Some(from.as_any_ref().downcast_ref::<HostAuthenticationStoreInfo>()?),
StructType::HostDirectoryStoreInfo => Some(from.as_any_ref().downcast_ref::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Some(from.as_any_ref().downcast_ref::<HostActiveDirectoryInfo>()?),
StructType::HostLocalAuthenticationInfo => Some(from.as_any_ref().downcast_ref::<HostLocalAuthenticationInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostAuthenticationStoreInfo => Ok(from.as_any_box().downcast::<HostAuthenticationStoreInfo>()?),
StructType::HostDirectoryStoreInfo => Ok(from.as_any_box().downcast::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Ok(from.as_any_box().downcast::<HostActiveDirectoryInfo>()?),
StructType::HostLocalAuthenticationInfo => Ok(from.as_any_box().downcast::<HostLocalAuthenticationInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// *HostDirectoryStoreInfo* is a base class for objects that
/// provide information about directory-based authentication stores.
///
/// ### How to access
/// - `HostSystem::config.authentication_manager_info?.auth_config[*]⇒HostDirectoryStoreInfoTrait`
/// - `HostActiveDirectoryAuthentication::info⇒HostDirectoryStoreInfoTrait`
/// - `HostAuthenticationStore::info⇒HostDirectoryStoreInfoTrait`
/// - `HostDirectoryStore::info⇒HostDirectoryStoreInfoTrait`
/// - `HostLocalAuthentication::info⇒HostDirectoryStoreInfoTrait`
/// - `HostAuthenticationManager::info.auth_config[*]⇒HostDirectoryStoreInfoTrait`
pub trait HostDirectoryStoreInfoTrait : super::traits::HostAuthenticationStoreInfoTrait {
/// Get a reference to the HostDirectoryStoreInfo parent struct
fn get_host_directory_store_info(&self) -> &super::structs::HostDirectoryStoreInfo;
/// Get a mutable reference to the HostDirectoryStoreInfo parent struct
fn get_host_directory_store_info_mut(&mut self) -> &mut super::structs::HostDirectoryStoreInfo;
}
impl std::ops::Deref for dyn HostDirectoryStoreInfoTrait {
type Target = super::structs::HostDirectoryStoreInfo;
fn deref(&self) -> &Self::Target {
self.get_host_directory_store_info()
}
}
impl std::ops::DerefMut for dyn HostDirectoryStoreInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_directory_store_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDirectoryStoreInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDirectoryStoreInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDirectoryStoreInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDirectoryStoreInfo"),
__out: &mut self.out,
}))
}
}
struct HostDirectoryStoreInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDirectoryStoreInfoTrait>>,
}
impl miniserde::de::Map for HostDirectoryStoreInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDirectoryStoreInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDirectoryStoreInfoTrait for HostDirectoryStoreInfo {
fn get_host_directory_store_info(&self) -> &super::structs::HostDirectoryStoreInfo { &self }
fn get_host_directory_store_info_mut(&mut self) -> &mut super::structs::HostDirectoryStoreInfo { self }
}
impl HostDirectoryStoreInfoTrait for HostActiveDirectoryInfo {
fn get_host_directory_store_info(&self) -> &super::structs::HostDirectoryStoreInfo { &self.host_directory_store_info_ }
fn get_host_directory_store_info_mut(&mut self) -> &mut super::structs::HostDirectoryStoreInfo { &mut self.host_directory_store_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDirectoryStoreInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDirectoryStoreInfo => Some(from.as_any_ref().downcast_ref::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Some(from.as_any_ref().downcast_ref::<HostActiveDirectoryInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDirectoryStoreInfo => Ok(from.as_any_box().downcast::<HostDirectoryStoreInfo>()?),
StructType::HostActiveDirectoryInfo => Ok(from.as_any_box().downcast::<HostActiveDirectoryInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base data object type for information about datastores on the host.
///
/// ### How to access
/// - `HostSystem::query_host_connection_info().datastore?[*]`
/// - `Datacenter::query_connection_info().datastore?[*]`
/// - `Datacenter::query_connection_info_via_spec().datastore?[*]`
pub trait HostDatastoreConnectInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostDatastoreConnectInfo parent struct
fn get_host_datastore_connect_info(&self) -> &super::structs::HostDatastoreConnectInfo;
/// Get a mutable reference to the HostDatastoreConnectInfo parent struct
fn get_host_datastore_connect_info_mut(&mut self) -> &mut super::structs::HostDatastoreConnectInfo;
}
impl std::ops::Deref for dyn HostDatastoreConnectInfoTrait {
type Target = super::structs::HostDatastoreConnectInfo;
fn deref(&self) -> &Self::Target {
self.get_host_datastore_connect_info()
}
}
impl std::ops::DerefMut for dyn HostDatastoreConnectInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_datastore_connect_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDatastoreConnectInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDatastoreConnectInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDatastoreConnectInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDatastoreConnectInfo"),
__out: &mut self.out,
}))
}
}
struct HostDatastoreConnectInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDatastoreConnectInfoTrait>>,
}
impl miniserde::de::Map for HostDatastoreConnectInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDatastoreConnectInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDatastoreConnectInfoTrait for HostDatastoreConnectInfo {
fn get_host_datastore_connect_info(&self) -> &super::structs::HostDatastoreConnectInfo { &self }
fn get_host_datastore_connect_info_mut(&mut self) -> &mut super::structs::HostDatastoreConnectInfo { self }
}
impl HostDatastoreConnectInfoTrait for HostDatastoreExistsConnectInfo {
fn get_host_datastore_connect_info(&self) -> &super::structs::HostDatastoreConnectInfo { &self.host_datastore_connect_info_ }
fn get_host_datastore_connect_info_mut(&mut self) -> &mut super::structs::HostDatastoreConnectInfo { &mut self.host_datastore_connect_info_ }
}
impl HostDatastoreConnectInfoTrait for HostDatastoreNameConflictConnectInfo {
fn get_host_datastore_connect_info(&self) -> &super::structs::HostDatastoreConnectInfo { &self.host_datastore_connect_info_ }
fn get_host_datastore_connect_info_mut(&mut self) -> &mut super::structs::HostDatastoreConnectInfo { &mut self.host_datastore_connect_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDatastoreConnectInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDatastoreConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreConnectInfo>()?),
StructType::HostDatastoreExistsConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreExistsConnectInfo>()?),
StructType::HostDatastoreNameConflictConnectInfo => Some(from.as_any_ref().downcast_ref::<HostDatastoreNameConflictConnectInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDatastoreConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreConnectInfo>()?),
StructType::HostDatastoreExistsConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreExistsConnectInfo>()?),
StructType::HostDatastoreNameConflictConnectInfo => Ok(from.as_any_box().downcast::<HostDatastoreNameConflictConnectInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base data object type for information about networks on the host.
///
/// ### How to access
/// - `HostSystem::query_host_connection_info().network?[*]`
/// - `Datacenter::query_connection_info().network?[*]`
/// - `Datacenter::query_connection_info_via_spec().network?[*]`
pub trait HostConnectInfoNetworkInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostConnectInfoNetworkInfo parent struct
fn get_host_connect_info_network_info(&self) -> &super::structs::HostConnectInfoNetworkInfo;
/// Get a mutable reference to the HostConnectInfoNetworkInfo parent struct
fn get_host_connect_info_network_info_mut(&mut self) -> &mut super::structs::HostConnectInfoNetworkInfo;
}
impl std::ops::Deref for dyn HostConnectInfoNetworkInfoTrait {
type Target = super::structs::HostConnectInfoNetworkInfo;
fn deref(&self) -> &Self::Target {
self.get_host_connect_info_network_info()
}
}
impl std::ops::DerefMut for dyn HostConnectInfoNetworkInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_connect_info_network_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostConnectInfoNetworkInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostConnectInfoNetworkInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostConnectInfoNetworkInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostConnectInfoNetworkInfo"),
__out: &mut self.out,
}))
}
}
struct HostConnectInfoNetworkInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostConnectInfoNetworkInfoTrait>>,
}
impl miniserde::de::Map for HostConnectInfoNetworkInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostConnectInfoNetworkInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostConnectInfoNetworkInfoTrait for HostConnectInfoNetworkInfo {
fn get_host_connect_info_network_info(&self) -> &super::structs::HostConnectInfoNetworkInfo { &self }
fn get_host_connect_info_network_info_mut(&mut self) -> &mut super::structs::HostConnectInfoNetworkInfo { self }
}
impl HostConnectInfoNetworkInfoTrait for HostNewNetworkConnectInfo {
fn get_host_connect_info_network_info(&self) -> &super::structs::HostConnectInfoNetworkInfo { &self.host_connect_info_network_info_ }
fn get_host_connect_info_network_info_mut(&mut self) -> &mut super::structs::HostConnectInfoNetworkInfo { &mut self.host_connect_info_network_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostConnectInfoNetworkInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostConnectInfoNetworkInfo => Some(from.as_any_ref().downcast_ref::<HostConnectInfoNetworkInfo>()?),
StructType::HostNewNetworkConnectInfo => Some(from.as_any_ref().downcast_ref::<HostNewNetworkConnectInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostConnectInfoNetworkInfo => Ok(from.as_any_box().downcast::<HostConnectInfoNetworkInfo>()?),
StructType::HostNewNetworkConnectInfo => Ok(from.as_any_box().downcast::<HostNewNetworkConnectInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// DataTransportConnectionInfo contains common information about data transport
/// connections on a host.
///
/// ***Since:*** vSphere API Release 7.0.3.0
pub trait HostDataTransportConnectionInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostDataTransportConnectionInfo parent struct
fn get_host_data_transport_connection_info(&self) -> &super::structs::HostDataTransportConnectionInfo;
/// Get a mutable reference to the HostDataTransportConnectionInfo parent struct
fn get_host_data_transport_connection_info_mut(&mut self) -> &mut super::structs::HostDataTransportConnectionInfo;
}
impl std::ops::Deref for dyn HostDataTransportConnectionInfoTrait {
type Target = super::structs::HostDataTransportConnectionInfo;
fn deref(&self) -> &Self::Target {
self.get_host_data_transport_connection_info()
}
}
impl std::ops::DerefMut for dyn HostDataTransportConnectionInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_data_transport_connection_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDataTransportConnectionInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDataTransportConnectionInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDataTransportConnectionInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDataTransportConnectionInfo"),
__out: &mut self.out,
}))
}
}
struct HostDataTransportConnectionInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDataTransportConnectionInfoTrait>>,
}
impl miniserde::de::Map for HostDataTransportConnectionInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDataTransportConnectionInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDataTransportConnectionInfoTrait for HostDataTransportConnectionInfo {
fn get_host_data_transport_connection_info(&self) -> &super::structs::HostDataTransportConnectionInfo { &self }
fn get_host_data_transport_connection_info_mut(&mut self) -> &mut super::structs::HostDataTransportConnectionInfo { self }
}
impl HostDataTransportConnectionInfoTrait for HostNfcConnectionInfo {
fn get_host_data_transport_connection_info(&self) -> &super::structs::HostDataTransportConnectionInfo { &self.host_data_transport_connection_info_ }
fn get_host_data_transport_connection_info_mut(&mut self) -> &mut super::structs::HostDataTransportConnectionInfo { &mut self.host_data_transport_connection_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDataTransportConnectionInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDataTransportConnectionInfo => Some(from.as_any_ref().downcast_ref::<HostDataTransportConnectionInfo>()?),
StructType::HostNfcConnectionInfo => Some(from.as_any_ref().downcast_ref::<HostNfcConnectionInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDataTransportConnectionInfo => Ok(from.as_any_box().downcast::<HostDataTransportConnectionInfo>()?),
StructType::HostNfcConnectionInfo => Ok(from.as_any_box().downcast::<HostNfcConnectionInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type contains rudimentary information about a file in a
/// datastore.
///
/// The information here is not meant to cover all information in
/// traditional file systems, but rather to provide sufficient information for files
/// that are associated with virtual machines. Derived types describe the known file
/// types for a datastore.
pub trait FileInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the FileInfo parent struct
fn get_file_info(&self) -> &super::structs::FileInfo;
/// Get a mutable reference to the FileInfo parent struct
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo;
}
impl std::ops::Deref for dyn FileInfoTrait {
type Target = super::structs::FileInfo;
fn deref(&self) -> &Self::Target {
self.get_file_info()
}
}
impl std::ops::DerefMut for dyn FileInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_file_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn FileInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FileInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FileInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FileInfo"),
__out: &mut self.out,
}))
}
}
struct FileInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FileInfoTrait>>,
}
impl miniserde::de::Map for FileInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FileInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FileInfoTrait for FileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { self }
}
impl FileInfoTrait for FloppyImageFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for FolderFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for IsoImageFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for VmConfigFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for TemplateConfigFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.vm_config_file_info_.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.vm_config_file_info_.file_info_ }
}
impl FileInfoTrait for VmDiskFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for VmLogFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for VmNvramFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl FileInfoTrait for VmSnapshotFileInfo {
fn get_file_info(&self) -> &super::structs::FileInfo { &self.file_info_ }
fn get_file_info_mut(&mut self) -> &mut super::structs::FileInfo { &mut self.file_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FileInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FileInfo => Some(from.as_any_ref().downcast_ref::<FileInfo>()?),
StructType::FloppyImageFileInfo => Some(from.as_any_ref().downcast_ref::<FloppyImageFileInfo>()?),
StructType::FolderFileInfo => Some(from.as_any_ref().downcast_ref::<FolderFileInfo>()?),
StructType::IsoImageFileInfo => Some(from.as_any_ref().downcast_ref::<IsoImageFileInfo>()?),
StructType::VmConfigFileInfo => Some(from.as_any_ref().downcast_ref::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileInfo>()?),
StructType::VmDiskFileInfo => Some(from.as_any_ref().downcast_ref::<VmDiskFileInfo>()?),
StructType::VmLogFileInfo => Some(from.as_any_ref().downcast_ref::<VmLogFileInfo>()?),
StructType::VmNvramFileInfo => Some(from.as_any_ref().downcast_ref::<VmNvramFileInfo>()?),
StructType::VmSnapshotFileInfo => Some(from.as_any_ref().downcast_ref::<VmSnapshotFileInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FileInfo => Ok(from.as_any_box().downcast::<FileInfo>()?),
StructType::FloppyImageFileInfo => Ok(from.as_any_box().downcast::<FloppyImageFileInfo>()?),
StructType::FolderFileInfo => Ok(from.as_any_box().downcast::<FolderFileInfo>()?),
StructType::IsoImageFileInfo => Ok(from.as_any_box().downcast::<IsoImageFileInfo>()?),
StructType::VmConfigFileInfo => Ok(from.as_any_box().downcast::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Ok(from.as_any_box().downcast::<TemplateConfigFileInfo>()?),
StructType::VmDiskFileInfo => Ok(from.as_any_box().downcast::<VmDiskFileInfo>()?),
StructType::VmLogFileInfo => Ok(from.as_any_box().downcast::<VmLogFileInfo>()?),
StructType::VmNvramFileInfo => Ok(from.as_any_box().downcast::<VmNvramFileInfo>()?),
StructType::VmSnapshotFileInfo => Ok(from.as_any_box().downcast::<VmSnapshotFileInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes a virtual machine configuration file.
pub trait VmConfigFileInfoTrait : super::traits::FileInfoTrait {
/// Get a reference to the VmConfigFileInfo parent struct
fn get_vm_config_file_info(&self) -> &super::structs::VmConfigFileInfo;
/// Get a mutable reference to the VmConfigFileInfo parent struct
fn get_vm_config_file_info_mut(&mut self) -> &mut super::structs::VmConfigFileInfo;
}
impl std::ops::Deref for dyn VmConfigFileInfoTrait {
type Target = super::structs::VmConfigFileInfo;
fn deref(&self) -> &Self::Target {
self.get_vm_config_file_info()
}
}
impl std::ops::DerefMut for dyn VmConfigFileInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_config_file_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmConfigFileInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmConfigFileInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmConfigFileInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmConfigFileInfo"),
__out: &mut self.out,
}))
}
}
struct VmConfigFileInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmConfigFileInfoTrait>>,
}
impl miniserde::de::Map for VmConfigFileInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmConfigFileInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmConfigFileInfoTrait for VmConfigFileInfo {
fn get_vm_config_file_info(&self) -> &super::structs::VmConfigFileInfo { &self }
fn get_vm_config_file_info_mut(&mut self) -> &mut super::structs::VmConfigFileInfo { self }
}
impl VmConfigFileInfoTrait for TemplateConfigFileInfo {
fn get_vm_config_file_info(&self) -> &super::structs::VmConfigFileInfo { &self.vm_config_file_info_ }
fn get_vm_config_file_info_mut(&mut self) -> &mut super::structs::VmConfigFileInfo { &mut self.vm_config_file_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmConfigFileInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigFileInfo => Some(from.as_any_ref().downcast_ref::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigFileInfo => Ok(from.as_any_box().downcast::<VmConfigFileInfo>()?),
StructType::TemplateConfigFileInfo => Ok(from.as_any_box().downcast::<TemplateConfigFileInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The data object type that describes the base query specification.
///
/// Contains query
/// filters and details that apply to every file. Querying only file details generally
/// does not require opening files and so is an efficient query. Derived types add
/// query parameters specific to the type of file.
///
/// ### How to access
/// - `HostDatastoreBrowser::supported_type`
/// - `HostDatastoreBrowser::search_datastore_task(search_spec).query?[*]`
/// - `HostDatastoreBrowser::search_datastore_sub_folders_task(search_spec).query?[*]`
pub trait FileQueryTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn FileQueryTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FileQueryTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FileQueryTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FileQuery"),
__out: &mut self.out,
}))
}
}
struct FileQueryTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FileQueryTrait>>,
}
impl miniserde::de::Map for FileQueryTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FileQueryTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FileQueryTrait for FileQuery {
}
impl FileQueryTrait for FloppyImageFileQuery {
}
impl FileQueryTrait for FolderFileQuery {
}
impl FileQueryTrait for IsoImageFileQuery {
}
impl FileQueryTrait for VmConfigFileQuery {
}
impl FileQueryTrait for TemplateConfigFileQuery {
}
impl FileQueryTrait for VmDiskFileQuery {
}
impl FileQueryTrait for VmLogFileQuery {
}
impl FileQueryTrait for VmNvramFileQuery {
}
impl FileQueryTrait for VmSnapshotFileQuery {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FileQueryTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FileQuery => Some(from.as_any_ref().downcast_ref::<FileQuery>()?),
StructType::FloppyImageFileQuery => Some(from.as_any_ref().downcast_ref::<FloppyImageFileQuery>()?),
StructType::FolderFileQuery => Some(from.as_any_ref().downcast_ref::<FolderFileQuery>()?),
StructType::IsoImageFileQuery => Some(from.as_any_ref().downcast_ref::<IsoImageFileQuery>()?),
StructType::VmConfigFileQuery => Some(from.as_any_ref().downcast_ref::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileQuery>()?),
StructType::VmDiskFileQuery => Some(from.as_any_ref().downcast_ref::<VmDiskFileQuery>()?),
StructType::VmLogFileQuery => Some(from.as_any_ref().downcast_ref::<VmLogFileQuery>()?),
StructType::VmNvramFileQuery => Some(from.as_any_ref().downcast_ref::<VmNvramFileQuery>()?),
StructType::VmSnapshotFileQuery => Some(from.as_any_ref().downcast_ref::<VmSnapshotFileQuery>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FileQuery => Ok(from.as_any_box().downcast::<FileQuery>()?),
StructType::FloppyImageFileQuery => Ok(from.as_any_box().downcast::<FloppyImageFileQuery>()?),
StructType::FolderFileQuery => Ok(from.as_any_box().downcast::<FolderFileQuery>()?),
StructType::IsoImageFileQuery => Ok(from.as_any_box().downcast::<IsoImageFileQuery>()?),
StructType::VmConfigFileQuery => Ok(from.as_any_box().downcast::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Ok(from.as_any_box().downcast::<TemplateConfigFileQuery>()?),
StructType::VmDiskFileQuery => Ok(from.as_any_box().downcast::<VmDiskFileQuery>()?),
StructType::VmLogFileQuery => Ok(from.as_any_box().downcast::<VmLogFileQuery>()?),
StructType::VmNvramFileQuery => Ok(from.as_any_box().downcast::<VmNvramFileQuery>()?),
StructType::VmSnapshotFileQuery => Ok(from.as_any_box().downcast::<VmSnapshotFileQuery>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes query specification for the virtual machine
/// configuration file.
///
/// ### How to access
/// - `HostDatastoreBrowser::supported_type⇒VmConfigFileQueryTrait`
/// - `HostDatastoreBrowser::search_datastore_task(search_spec).query?[*]⇒VmConfigFileQueryTrait`
/// - `HostDatastoreBrowser::search_datastore_sub_folders_task(search_spec).query?[*]⇒VmConfigFileQueryTrait`
pub trait VmConfigFileQueryTrait : super::traits::FileQueryTrait {
/// Get a reference to the VmConfigFileQuery parent struct
fn get_vm_config_file_query(&self) -> &super::structs::VmConfigFileQuery;
/// Get a mutable reference to the VmConfigFileQuery parent struct
fn get_vm_config_file_query_mut(&mut self) -> &mut super::structs::VmConfigFileQuery;
}
impl std::ops::Deref for dyn VmConfigFileQueryTrait {
type Target = super::structs::VmConfigFileQuery;
fn deref(&self) -> &Self::Target {
self.get_vm_config_file_query()
}
}
impl std::ops::DerefMut for dyn VmConfigFileQueryTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_config_file_query_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmConfigFileQueryTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmConfigFileQueryTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmConfigFileQueryTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmConfigFileQuery"),
__out: &mut self.out,
}))
}
}
struct VmConfigFileQueryTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmConfigFileQueryTrait>>,
}
impl miniserde::de::Map for VmConfigFileQueryTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmConfigFileQueryTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmConfigFileQueryTrait for VmConfigFileQuery {
fn get_vm_config_file_query(&self) -> &super::structs::VmConfigFileQuery { &self }
fn get_vm_config_file_query_mut(&mut self) -> &mut super::structs::VmConfigFileQuery { self }
}
impl VmConfigFileQueryTrait for TemplateConfigFileQuery {
fn get_vm_config_file_query(&self) -> &super::structs::VmConfigFileQuery { &self.vm_config_file_query_ }
fn get_vm_config_file_query_mut(&mut self) -> &mut super::structs::VmConfigFileQuery { &mut self.vm_config_file_query_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmConfigFileQueryTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigFileQuery => Some(from.as_any_ref().downcast_ref::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Some(from.as_any_ref().downcast_ref::<TemplateConfigFileQuery>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigFileQuery => Ok(from.as_any_box().downcast::<VmConfigFileQuery>()?),
StructType::TemplateConfigFileQuery => Ok(from.as_any_box().downcast::<TemplateConfigFileQuery>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type defines a device on the host.
pub trait HostDeviceTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostDevice parent struct
fn get_host_device(&self) -> &super::structs::HostDevice;
/// Get a mutable reference to the HostDevice parent struct
fn get_host_device_mut(&mut self) -> &mut super::structs::HostDevice;
}
impl std::ops::Deref for dyn HostDeviceTrait {
type Target = super::structs::HostDevice;
fn deref(&self) -> &Self::Target {
self.get_host_device()
}
}
impl std::ops::DerefMut for dyn HostDeviceTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_device_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDeviceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDeviceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDeviceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDevice"),
__out: &mut self.out,
}))
}
}
struct HostDeviceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDeviceTrait>>,
}
impl miniserde::de::Map for HostDeviceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDeviceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDeviceTrait for HostDevice {
fn get_host_device(&self) -> &super::structs::HostDevice { &self }
fn get_host_device_mut(&mut self) -> &mut super::structs::HostDevice { self }
}
impl HostDeviceTrait for ScsiLun {
fn get_host_device(&self) -> &super::structs::HostDevice { &self.host_device_ }
fn get_host_device_mut(&mut self) -> &mut super::structs::HostDevice { &mut self.host_device_ }
}
impl HostDeviceTrait for HostScsiDisk {
fn get_host_device(&self) -> &super::structs::HostDevice { &self.scsi_lun_.host_device_ }
fn get_host_device_mut(&mut self) -> &mut super::structs::HostDevice { &mut self.scsi_lun_.host_device_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDeviceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDevice => Some(from.as_any_ref().downcast_ref::<HostDevice>()?),
StructType::ScsiLun => Some(from.as_any_ref().downcast_ref::<ScsiLun>()?),
StructType::HostScsiDisk => Some(from.as_any_ref().downcast_ref::<HostScsiDisk>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDevice => Ok(from.as_any_box().downcast::<HostDevice>()?),
StructType::ScsiLun => Ok(from.as_any_box().downcast::<ScsiLun>()?),
StructType::HostScsiDisk => Ok(from.as_any_box().downcast::<HostScsiDisk>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ScsiLun* data object describes a SCSI logical unit.
///
/// A SCSI logical unit is a host device that an ESX Server or virtual machine
/// can use for I/O operations.
///
/// An ESX Server creates SCSI logical unit objects to represent
/// devices in the host configuration. (See the definition of
/// *ScsiLunType_enum* for a list of the supported device types.)
/// The vSphere API uses one of two object types to represent a SCSI
/// logical unit, depending on the device type.
/// - Disks containing file system volumes or parts of volumes for hosts
/// or raw disks for virtual machines. To represent disks, the ESX Server
/// creates a *HostScsiDisk* object, which inherits properties from
/// the *ScsiLun* base class.
/// - Other SCSI devices, for example SCSI passthrough devices
/// for virtual machines. To represent one of these devices,
/// the ESX Server creates a *ScsiLun* object.
///
/// When the Server creates a *HostScsiDisk* or *ScsiLun* object,
/// it specifies a valid device name and type:
/// - *HostDevice.deviceName* - A string representing the name of the device
/// that is meaningful to the host. The following are some examples of
/// device names.
/// <code>/dev/cdrom</code>
/// <code>/vmkdev/vmhba0:0:1:0</code>
/// <code>PhysicalDrive0</code>
/// - *HostDevice.deviceType* - A string describing the type of device.
/// The following are some examples of device types.
/// <code>scsi-cdrom</code>
/// <code>scsi-tape</code>
/// <code>scsi-disk</code>
/// <code>scsi-processor</code>
/// <code>scsi-unknown</code>
///
/// ### How to access
/// - `HostSystem::config.storage_device?.scsi_lun?[*]`
/// - `HostStorageSystem::storage_device_info.scsi_lun?[*]`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.scsi_lun?[*]`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.scsi_lun?[*]`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.scsi_lun?[*]`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.scsi_lun?[*]`
/// - `HostProfileManager::generate_config_task_list().config_spec?.storage_device?.scsi_lun?[*]`
pub trait ScsiLunTrait : super::traits::HostDeviceTrait {
/// Get a reference to the ScsiLun parent struct
fn get_scsi_lun(&self) -> &super::structs::ScsiLun;
/// Get a mutable reference to the ScsiLun parent struct
fn get_scsi_lun_mut(&mut self) -> &mut super::structs::ScsiLun;
}
impl std::ops::Deref for dyn ScsiLunTrait {
type Target = super::structs::ScsiLun;
fn deref(&self) -> &Self::Target {
self.get_scsi_lun()
}
}
impl std::ops::DerefMut for dyn ScsiLunTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_scsi_lun_mut()
}
}
impl miniserde::Deserialize for Box<dyn ScsiLunTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ScsiLunTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ScsiLunTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ScsiLun"),
__out: &mut self.out,
}))
}
}
struct ScsiLunTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ScsiLunTrait>>,
}
impl miniserde::de::Map for ScsiLunTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ScsiLunTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ScsiLunTrait for ScsiLun {
fn get_scsi_lun(&self) -> &super::structs::ScsiLun { &self }
fn get_scsi_lun_mut(&mut self) -> &mut super::structs::ScsiLun { self }
}
impl ScsiLunTrait for HostScsiDisk {
fn get_scsi_lun(&self) -> &super::structs::ScsiLun { &self.scsi_lun_ }
fn get_scsi_lun_mut(&mut self) -> &mut super::structs::ScsiLun { &mut self.scsi_lun_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ScsiLunTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ScsiLun => Some(from.as_any_ref().downcast_ref::<ScsiLun>()?),
StructType::HostScsiDisk => Some(from.as_any_ref().downcast_ref::<HostScsiDisk>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ScsiLun => Ok(from.as_any_box().downcast::<ScsiLun>()?),
StructType::HostScsiDisk => Ok(from.as_any_box().downcast::<HostScsiDisk>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the digest information
pub trait HostDigestInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostDigestInfo parent struct
fn get_host_digest_info(&self) -> &super::structs::HostDigestInfo;
/// Get a mutable reference to the HostDigestInfo parent struct
fn get_host_digest_info_mut(&mut self) -> &mut super::structs::HostDigestInfo;
}
impl std::ops::Deref for dyn HostDigestInfoTrait {
type Target = super::structs::HostDigestInfo;
fn deref(&self) -> &Self::Target {
self.get_host_digest_info()
}
}
impl std::ops::DerefMut for dyn HostDigestInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_digest_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDigestInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDigestInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDigestInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDigestInfo"),
__out: &mut self.out,
}))
}
}
struct HostDigestInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDigestInfoTrait>>,
}
impl miniserde::de::Map for HostDigestInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDigestInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDigestInfoTrait for HostDigestInfo {
fn get_host_digest_info(&self) -> &super::structs::HostDigestInfo { &self }
fn get_host_digest_info_mut(&mut self) -> &mut super::structs::HostDigestInfo { self }
}
impl HostDigestInfoTrait for HostTpmDigestInfo {
fn get_host_digest_info(&self) -> &super::structs::HostDigestInfo { &self.host_digest_info_ }
fn get_host_digest_info_mut(&mut self) -> &mut super::structs::HostDigestInfo { &mut self.host_digest_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDigestInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDigestInfo => Some(from.as_any_ref().downcast_ref::<HostDigestInfo>()?),
StructType::HostTpmDigestInfo => Some(from.as_any_ref().downcast_ref::<HostTpmDigestInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDigestInfo => Ok(from.as_any_box().downcast::<HostDigestInfo>()?),
StructType::HostTpmDigestInfo => Ok(from.as_any_box().downcast::<HostTpmDigestInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the DNS configuration.
///
/// All IPv4 addresses, subnet addresses, and netmasks are specified using
/// dotted decimal notation. For example, "192.0.2.1".
/// IPv6 addresses are 128-bit addresses represented as
/// eight fields of up to four hexadecimal digits.
/// A colon separates each field (:). For example,
/// 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the
/// symbol '::' to represent multiple 16-bit groups of
/// contiguous 0's only once in an address as described in RFC 2373.
///
/// ### How to access
/// - `HostSystem::config.network?.dns_config?`
/// - `HostSystem::config.network?.net_stack_instance?[*].dns_config?`
/// - `HostNetworkSystem::dns_config`
/// - `HostNetworkSystem::network_config.dns_config?`
/// - `HostNetworkSystem::network_info.dns_config?`
/// - `HostNetworkSystem::network_info.net_stack_instance?[*].dns_config?`
/// - `HostNetworkSystem::network_config.net_stack_spec?[*].net_stack_instance.dns_config?`
/// - `HostProfileManager::apply_host_config_task(config_spec).network?.dns_config?`
/// - `HostProfileManager::generate_config_task_list(config_spec).network?.dns_config?`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).network?.dns_config?`
///
/// *(10 of 20 paths)*
pub trait HostDnsConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostDnsConfig parent struct
fn get_host_dns_config(&self) -> &super::structs::HostDnsConfig;
/// Get a mutable reference to the HostDnsConfig parent struct
fn get_host_dns_config_mut(&mut self) -> &mut super::structs::HostDnsConfig;
}
impl std::ops::Deref for dyn HostDnsConfigTrait {
type Target = super::structs::HostDnsConfig;
fn deref(&self) -> &Self::Target {
self.get_host_dns_config()
}
}
impl std::ops::DerefMut for dyn HostDnsConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_dns_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostDnsConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostDnsConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostDnsConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostDnsConfig"),
__out: &mut self.out,
}))
}
}
struct HostDnsConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostDnsConfigTrait>>,
}
impl miniserde::de::Map for HostDnsConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostDnsConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostDnsConfigTrait for HostDnsConfig {
fn get_host_dns_config(&self) -> &super::structs::HostDnsConfig { &self }
fn get_host_dns_config_mut(&mut self) -> &mut super::structs::HostDnsConfig { self }
}
impl HostDnsConfigTrait for HostDnsConfigSpec {
fn get_host_dns_config(&self) -> &super::structs::HostDnsConfig { &self.host_dns_config_ }
fn get_host_dns_config_mut(&mut self) -> &mut super::structs::HostDnsConfig { &mut self.host_dns_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostDnsConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostDnsConfig => Some(from.as_any_ref().downcast_ref::<HostDnsConfig>()?),
StructType::HostDnsConfigSpec => Some(from.as_any_ref().downcast_ref::<HostDnsConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostDnsConfig => Ok(from.as_any_box().downcast::<HostDnsConfig>()?),
StructType::HostDnsConfigSpec => Ok(from.as_any_box().downcast::<HostDnsConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Detailed information about a file system.
///
/// This is a base type for derived types
/// that have more specific details about specific filesystem types.
///
/// Typically a FileSystem is exposed as a datatore
///
/// See also *DatastoreInfo*, *HostVmfsVolume*, *HostNasVolume*, *HostVffsVolume*, *HostLocalFileSystemVolume*
///
/// However, a FileSystemVolume need not be exposed a datastore., *HostVfatVolume*.
///
/// ### How to access
/// - `HostSystem::config.file_system_volume?.mount_info?[*].volume`
/// - `HostStorageSystem::file_system_volume_info.mount_info?[*].volume`
pub trait HostFileSystemVolumeTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostFileSystemVolume parent struct
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume;
/// Get a mutable reference to the HostFileSystemVolume parent struct
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume;
}
impl std::ops::Deref for dyn HostFileSystemVolumeTrait {
type Target = super::structs::HostFileSystemVolume;
fn deref(&self) -> &Self::Target {
self.get_host_file_system_volume()
}
}
impl std::ops::DerefMut for dyn HostFileSystemVolumeTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_file_system_volume_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostFileSystemVolumeTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostFileSystemVolumeTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostFileSystemVolumeTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostFileSystemVolume"),
__out: &mut self.out,
}))
}
}
struct HostFileSystemVolumeTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostFileSystemVolumeTrait>>,
}
impl miniserde::de::Map for HostFileSystemVolumeTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostFileSystemVolumeTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostFileSystemVolumeTrait for HostFileSystemVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { self }
}
impl HostFileSystemVolumeTrait for HostLocalFileSystemVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostNasVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostPMemVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostVfatVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostVffsVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostVmfsVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl HostFileSystemVolumeTrait for HostVvolVolume {
fn get_host_file_system_volume(&self) -> &super::structs::HostFileSystemVolume { &self.host_file_system_volume_ }
fn get_host_file_system_volume_mut(&mut self) -> &mut super::structs::HostFileSystemVolume { &mut self.host_file_system_volume_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostFileSystemVolumeTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostFileSystemVolume => Some(from.as_any_ref().downcast_ref::<HostFileSystemVolume>()?),
StructType::HostLocalFileSystemVolume => Some(from.as_any_ref().downcast_ref::<HostLocalFileSystemVolume>()?),
StructType::HostNasVolume => Some(from.as_any_ref().downcast_ref::<HostNasVolume>()?),
StructType::HostPMemVolume => Some(from.as_any_ref().downcast_ref::<HostPMemVolume>()?),
StructType::HostVfatVolume => Some(from.as_any_ref().downcast_ref::<HostVfatVolume>()?),
StructType::HostVffsVolume => Some(from.as_any_ref().downcast_ref::<HostVffsVolume>()?),
StructType::HostVmfsVolume => Some(from.as_any_ref().downcast_ref::<HostVmfsVolume>()?),
StructType::HostVvolVolume => Some(from.as_any_ref().downcast_ref::<HostVvolVolume>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostFileSystemVolume => Ok(from.as_any_box().downcast::<HostFileSystemVolume>()?),
StructType::HostLocalFileSystemVolume => Ok(from.as_any_box().downcast::<HostLocalFileSystemVolume>()?),
StructType::HostNasVolume => Ok(from.as_any_box().downcast::<HostNasVolume>()?),
StructType::HostPMemVolume => Ok(from.as_any_box().downcast::<HostPMemVolume>()?),
StructType::HostVfatVolume => Ok(from.as_any_box().downcast::<HostVfatVolume>()?),
StructType::HostVffsVolume => Ok(from.as_any_box().downcast::<HostVffsVolume>()?),
StructType::HostVmfsVolume => Ok(from.as_any_box().downcast::<HostVmfsVolume>()?),
StructType::HostVvolVolume => Ok(from.as_any_box().downcast::<HostVvolVolume>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Data object describing the operational status of a physical
/// element.
///
/// ### How to access
/// - `HostSystem::runtime.health_system_runtime?.hardware_status_info?.memory_status_info?[*]`
/// - `HostSystem::runtime.health_system_runtime?.hardware_status_info?.cpu_status_info?[*]`
/// - `HostSystem::summary.runtime?.health_system_runtime?.hardware_status_info?.memory_status_info?[*]`
/// - `HostSystem::summary.runtime?.health_system_runtime?.hardware_status_info?.cpu_status_info?[*]`
/// - `HostHealthStatusSystem::runtime.hardware_status_info?.memory_status_info?[*]`
/// - `HostHealthStatusSystem::runtime.hardware_status_info?.cpu_status_info?[*]`
/// - `HostSystem::query_host_connection_info().host.runtime?.health_system_runtime?.hardware_status_info?.memory_status_info?[*]`
/// - `Datacenter::query_connection_info().host.runtime?.health_system_runtime?.hardware_status_info?.memory_status_info?[*]`
/// - `Datacenter::query_connection_info().host.runtime?.health_system_runtime?.hardware_status_info?.cpu_status_info?[*]`
/// - `Datacenter::query_connection_info_via_spec().host.runtime?.health_system_runtime?.hardware_status_info?.memory_status_info?[*]`
///
/// *(10 of 12 paths)*
pub trait HostHardwareElementInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostHardwareElementInfo parent struct
fn get_host_hardware_element_info(&self) -> &super::structs::HostHardwareElementInfo;
/// Get a mutable reference to the HostHardwareElementInfo parent struct
fn get_host_hardware_element_info_mut(&mut self) -> &mut super::structs::HostHardwareElementInfo;
}
impl std::ops::Deref for dyn HostHardwareElementInfoTrait {
type Target = super::structs::HostHardwareElementInfo;
fn deref(&self) -> &Self::Target {
self.get_host_hardware_element_info()
}
}
impl std::ops::DerefMut for dyn HostHardwareElementInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_hardware_element_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostHardwareElementInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostHardwareElementInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostHardwareElementInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostHardwareElementInfo"),
__out: &mut self.out,
}))
}
}
struct HostHardwareElementInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostHardwareElementInfoTrait>>,
}
impl miniserde::de::Map for HostHardwareElementInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostHardwareElementInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostHardwareElementInfoTrait for HostHardwareElementInfo {
fn get_host_hardware_element_info(&self) -> &super::structs::HostHardwareElementInfo { &self }
fn get_host_hardware_element_info_mut(&mut self) -> &mut super::structs::HostHardwareElementInfo { self }
}
impl HostHardwareElementInfoTrait for DpuStatusInfo {
fn get_host_hardware_element_info(&self) -> &super::structs::HostHardwareElementInfo { &self.host_hardware_element_info_ }
fn get_host_hardware_element_info_mut(&mut self) -> &mut super::structs::HostHardwareElementInfo { &mut self.host_hardware_element_info_ }
}
impl HostHardwareElementInfoTrait for HostStorageElementInfo {
fn get_host_hardware_element_info(&self) -> &super::structs::HostHardwareElementInfo { &self.host_hardware_element_info_ }
fn get_host_hardware_element_info_mut(&mut self) -> &mut super::structs::HostHardwareElementInfo { &mut self.host_hardware_element_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostHardwareElementInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostHardwareElementInfo => Some(from.as_any_ref().downcast_ref::<HostHardwareElementInfo>()?),
StructType::DpuStatusInfo => Some(from.as_any_ref().downcast_ref::<DpuStatusInfo>()?),
StructType::HostStorageElementInfo => Some(from.as_any_ref().downcast_ref::<HostStorageElementInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostHardwareElementInfo => Ok(from.as_any_box().downcast::<HostHardwareElementInfo>()?),
StructType::DpuStatusInfo => Ok(from.as_any_box().downcast::<DpuStatusInfo>()?),
StructType::HostStorageElementInfo => Ok(from.as_any_box().downcast::<HostStorageElementInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A data object which specifies the parameters needed
/// to create a software host bus adapter of a specific kind.
///
/// ***Since:*** vSphere API Release 7.0.3.0
///
/// ### How to access
/// - `HostStorageSystem::create_software_adapter(spec)`
pub trait HostHbaCreateSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostHbaCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostHbaCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostHbaCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostHbaCreateSpec"),
__out: &mut self.out,
}))
}
}
struct HostHbaCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostHbaCreateSpecTrait>>,
}
impl miniserde::de::Map for HostHbaCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostHbaCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostHbaCreateSpecTrait for HostHbaCreateSpec {
}
impl HostHbaCreateSpecTrait for HostTcpHbaCreateSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostHbaCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostHbaCreateSpec => Some(from.as_any_ref().downcast_ref::<HostHbaCreateSpec>()?),
StructType::HostTcpHbaCreateSpec => Some(from.as_any_ref().downcast_ref::<HostTcpHbaCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostHbaCreateSpec => Ok(from.as_any_box().downcast::<HostHbaCreateSpec>()?),
StructType::HostTcpHbaCreateSpec => Ok(from.as_any_box().downcast::<HostTcpHbaCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the bus adapter for
/// the host.
///
/// A host bus adapter (HBA) is a hardware
/// or software adapter that connects the host to storage devices.
///
/// ### How to access
/// - `HostSystem::config.storage_device?.host_bus_adapter?[*]`
/// - `HostStorageSystem::storage_device_info.host_bus_adapter?[*]`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.host_bus_adapter?[*]`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.host_bus_adapter?[*]`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.host_bus_adapter?[*]`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.host_bus_adapter?[*]`
/// - `HostProfileManager::generate_config_task_list().config_spec?.storage_device?.host_bus_adapter?[*]`
pub trait HostHostBusAdapterTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostHostBusAdapter parent struct
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter;
/// Get a mutable reference to the HostHostBusAdapter parent struct
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter;
}
impl std::ops::Deref for dyn HostHostBusAdapterTrait {
type Target = super::structs::HostHostBusAdapter;
fn deref(&self) -> &Self::Target {
self.get_host_host_bus_adapter()
}
}
impl std::ops::DerefMut for dyn HostHostBusAdapterTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_host_bus_adapter_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostHostBusAdapterTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostHostBusAdapterTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostHostBusAdapterTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostHostBusAdapter"),
__out: &mut self.out,
}))
}
}
struct HostHostBusAdapterTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostHostBusAdapterTrait>>,
}
impl miniserde::de::Map for HostHostBusAdapterTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostHostBusAdapterTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostHostBusAdapterTrait for HostHostBusAdapter {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { self }
}
impl HostHostBusAdapterTrait for HostBlockHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostFibreChannelHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostFibreChannelOverEthernetHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_fibre_channel_hba_.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_fibre_channel_hba_.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostInternetScsiHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostParallelScsiHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostPcieHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostRdmaHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostSerialAttachedHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl HostHostBusAdapterTrait for HostTcpHba {
fn get_host_host_bus_adapter(&self) -> &super::structs::HostHostBusAdapter { &self.host_host_bus_adapter_ }
fn get_host_host_bus_adapter_mut(&mut self) -> &mut super::structs::HostHostBusAdapter { &mut self.host_host_bus_adapter_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostHostBusAdapterTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostHostBusAdapter => Some(from.as_any_ref().downcast_ref::<HostHostBusAdapter>()?),
StructType::HostBlockHba => Some(from.as_any_ref().downcast_ref::<HostBlockHba>()?),
StructType::HostFibreChannelHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetHba>()?),
StructType::HostInternetScsiHba => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHba>()?),
StructType::HostParallelScsiHba => Some(from.as_any_ref().downcast_ref::<HostParallelScsiHba>()?),
StructType::HostPcieHba => Some(from.as_any_ref().downcast_ref::<HostPcieHba>()?),
StructType::HostRdmaHba => Some(from.as_any_ref().downcast_ref::<HostRdmaHba>()?),
StructType::HostSerialAttachedHba => Some(from.as_any_ref().downcast_ref::<HostSerialAttachedHba>()?),
StructType::HostTcpHba => Some(from.as_any_ref().downcast_ref::<HostTcpHba>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostHostBusAdapter => Ok(from.as_any_box().downcast::<HostHostBusAdapter>()?),
StructType::HostBlockHba => Ok(from.as_any_box().downcast::<HostBlockHba>()?),
StructType::HostFibreChannelHba => Ok(from.as_any_box().downcast::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetHba>()?),
StructType::HostInternetScsiHba => Ok(from.as_any_box().downcast::<HostInternetScsiHba>()?),
StructType::HostParallelScsiHba => Ok(from.as_any_box().downcast::<HostParallelScsiHba>()?),
StructType::HostPcieHba => Ok(from.as_any_box().downcast::<HostPcieHba>()?),
StructType::HostRdmaHba => Ok(from.as_any_box().downcast::<HostRdmaHba>()?),
StructType::HostSerialAttachedHba => Ok(from.as_any_box().downcast::<HostSerialAttachedHba>()?),
StructType::HostTcpHba => Ok(from.as_any_box().downcast::<HostTcpHba>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the Fibre Channel host bus adapter.
///
/// ### How to access
/// - `HostSystem::config.storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostStorageSystem::storage_device_info.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
/// - `HostProfileManager::generate_config_task_list().config_spec?.storage_device?.host_bus_adapter?[*]⇒HostFibreChannelHbaTrait`
pub trait HostFibreChannelHbaTrait : super::traits::HostHostBusAdapterTrait {
/// Get a reference to the HostFibreChannelHba parent struct
fn get_host_fibre_channel_hba(&self) -> &super::structs::HostFibreChannelHba;
/// Get a mutable reference to the HostFibreChannelHba parent struct
fn get_host_fibre_channel_hba_mut(&mut self) -> &mut super::structs::HostFibreChannelHba;
}
impl std::ops::Deref for dyn HostFibreChannelHbaTrait {
type Target = super::structs::HostFibreChannelHba;
fn deref(&self) -> &Self::Target {
self.get_host_fibre_channel_hba()
}
}
impl std::ops::DerefMut for dyn HostFibreChannelHbaTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_fibre_channel_hba_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostFibreChannelHbaTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostFibreChannelHbaTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostFibreChannelHbaTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostFibreChannelHba"),
__out: &mut self.out,
}))
}
}
struct HostFibreChannelHbaTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostFibreChannelHbaTrait>>,
}
impl miniserde::de::Map for HostFibreChannelHbaTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostFibreChannelHbaTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostFibreChannelHbaTrait for HostFibreChannelHba {
fn get_host_fibre_channel_hba(&self) -> &super::structs::HostFibreChannelHba { &self }
fn get_host_fibre_channel_hba_mut(&mut self) -> &mut super::structs::HostFibreChannelHba { self }
}
impl HostFibreChannelHbaTrait for HostFibreChannelOverEthernetHba {
fn get_host_fibre_channel_hba(&self) -> &super::structs::HostFibreChannelHba { &self.host_fibre_channel_hba_ }
fn get_host_fibre_channel_hba_mut(&mut self) -> &mut super::structs::HostFibreChannelHba { &mut self.host_fibre_channel_hba_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostFibreChannelHbaTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostFibreChannelHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetHba>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostFibreChannelHba => Ok(from.as_any_box().downcast::<HostFibreChannelHba>()?),
StructType::HostFibreChannelOverEthernetHba => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetHba>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The IP configuration.
///
/// ### How to access
/// - `HostSystem::config.vmotion?.ip_config?`
/// - `HostSystem::config.network?.pnic?[*].spec.ip?`
/// - `HostSystem::config.network?.vnic?[*].spec.ip?`
/// - `HostSystem::config.network?.console_vnic?[*].spec.ip?`
/// - `HostSystem::config.date_time_info?.ptp_config?.port?[*].ip_config?`
/// - `ClusterComputeResource::hci_config.host_config_profile?.date_time_config?.ptp_config?.port?[*].ip_config?`
/// - `HostVMotionSystem::ip_config`
/// - `HostDateTimeSystem::date_time_info.ptp_config?.port?[*].ip_config?`
/// - `HostNetworkSystem::network_config.pnic?[*].spec.ip?`
/// - `HostNetworkSystem::network_config.vnic?[*].spec?.ip?`
///
/// *(10 of 62 paths)*
pub trait HostIpConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostIpConfig parent struct
fn get_host_ip_config(&self) -> &super::structs::HostIpConfig;
/// Get a mutable reference to the HostIpConfig parent struct
fn get_host_ip_config_mut(&mut self) -> &mut super::structs::HostIpConfig;
}
impl std::ops::Deref for dyn HostIpConfigTrait {
type Target = super::structs::HostIpConfig;
fn deref(&self) -> &Self::Target {
self.get_host_ip_config()
}
}
impl std::ops::DerefMut for dyn HostIpConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_ip_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostIpConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostIpConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostIpConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostIpConfig"),
__out: &mut self.out,
}))
}
}
struct HostIpConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostIpConfigTrait>>,
}
impl miniserde::de::Map for HostIpConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostIpConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostIpConfigTrait for HostIpConfig {
fn get_host_ip_config(&self) -> &super::structs::HostIpConfig { &self }
fn get_host_ip_config_mut(&mut self) -> &mut super::structs::HostIpConfig { self }
}
impl HostIpConfigTrait for VsanFileServiceIpConfig {
fn get_host_ip_config(&self) -> &super::structs::HostIpConfig { &self.host_ip_config_ }
fn get_host_ip_config_mut(&mut self) -> &mut super::structs::HostIpConfig { &mut self.host_ip_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostIpConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostIpConfig => Some(from.as_any_ref().downcast_ref::<HostIpConfig>()?),
StructType::VsanFileServiceIpConfig => Some(from.as_any_ref().downcast_ref::<VsanFileServiceIpConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostIpConfig => Ok(from.as_any_box().downcast::<HostIpConfig>()?),
StructType::VsanFileServiceIpConfig => Ok(from.as_any_box().downcast::<VsanFileServiceIpConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// IP Route Configuration.
///
/// All IPv4 addresses, subnet addresses, and
/// netmasks are specified as strings using dotted decimal notation.
/// For example, "192.0.2.1".
/// IPv6 addresses are 128-bit addresses represented
/// as eight fields of up to four hexadecimal digits. A colon separates each
/// field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can
/// also consist of symbol '::' to represent multiple 16-bit groups of
/// contiguous 0's only once in an address as described in RFC 2373.
///
/// ### How to access
/// - `HostSystem::config.network?.ip_route_config?`
/// - `HostSystem::config.network?.console_ip_route_config?`
/// - `HostSystem::config.network?.net_stack_instance?[*].ip_route_config?`
/// - `HostSystem::config.network?.vnic?[*].spec.ip_route_spec?.ip_route_config?`
/// - `HostSystem::config.network?.console_vnic?[*].spec.ip_route_spec?.ip_route_config?`
/// - `HostNetworkSystem::console_ip_route_config`
/// - `HostNetworkSystem::ip_route_config`
/// - `HostNetworkSystem::network_config.ip_route_config?`
/// - `HostNetworkSystem::network_config.console_ip_route_config?`
/// - `HostNetworkSystem::network_info.ip_route_config?`
///
/// *(10 of 65 paths)*
pub trait HostIpRouteConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostIpRouteConfig parent struct
fn get_host_ip_route_config(&self) -> &super::structs::HostIpRouteConfig;
/// Get a mutable reference to the HostIpRouteConfig parent struct
fn get_host_ip_route_config_mut(&mut self) -> &mut super::structs::HostIpRouteConfig;
}
impl std::ops::Deref for dyn HostIpRouteConfigTrait {
type Target = super::structs::HostIpRouteConfig;
fn deref(&self) -> &Self::Target {
self.get_host_ip_route_config()
}
}
impl std::ops::DerefMut for dyn HostIpRouteConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_ip_route_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostIpRouteConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostIpRouteConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostIpRouteConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostIpRouteConfig"),
__out: &mut self.out,
}))
}
}
struct HostIpRouteConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostIpRouteConfigTrait>>,
}
impl miniserde::de::Map for HostIpRouteConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostIpRouteConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostIpRouteConfigTrait for HostIpRouteConfig {
fn get_host_ip_route_config(&self) -> &super::structs::HostIpRouteConfig { &self }
fn get_host_ip_route_config_mut(&mut self) -> &mut super::structs::HostIpRouteConfig { self }
}
impl HostIpRouteConfigTrait for HostIpRouteConfigSpec {
fn get_host_ip_route_config(&self) -> &super::structs::HostIpRouteConfig { &self.host_ip_route_config_ }
fn get_host_ip_route_config_mut(&mut self) -> &mut super::structs::HostIpRouteConfig { &mut self.host_ip_route_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostIpRouteConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostIpRouteConfig => Some(from.as_any_ref().downcast_ref::<HostIpRouteConfig>()?),
StructType::HostIpRouteConfigSpec => Some(from.as_any_ref().downcast_ref::<HostIpRouteConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostIpRouteConfig => Ok(from.as_any_box().downcast::<HostIpRouteConfig>()?),
StructType::HostIpRouteConfigSpec => Ok(from.as_any_box().downcast::<HostIpRouteConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type contains common parameters
/// for local account creation.
///
/// The password and description properties
/// are not supported for group accounts on POSIX hosts.
///
/// ### How to access
/// - `HostLocalAccountManager::create_group(group)`
/// - `HostLocalAccountManager::create_user(user)`
/// - `HostLocalAccountManager::update_user(user)`
/// - `HostProfileManager::apply_host_config_task(config_spec).user_account?[*]`
/// - `HostProfileManager::apply_host_config_task(config_spec).usergroup_account?[*]`
/// - `HostProfileManager::generate_config_task_list(config_spec).user_account?[*]`
/// - `HostProfileManager::generate_config_task_list(config_spec).usergroup_account?[*]`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).user_account?[*]`
/// - `HostProfile::execute_host_profile().config_spec?.user_account?[*]`
/// - `HostProfile::execute_host_profile().config_spec?.usergroup_account?[*]`
///
/// *(10 of 13 paths)*
pub trait HostAccountSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostAccountSpec parent struct
fn get_host_account_spec(&self) -> &super::structs::HostAccountSpec;
/// Get a mutable reference to the HostAccountSpec parent struct
fn get_host_account_spec_mut(&mut self) -> &mut super::structs::HostAccountSpec;
}
impl std::ops::Deref for dyn HostAccountSpecTrait {
type Target = super::structs::HostAccountSpec;
fn deref(&self) -> &Self::Target {
self.get_host_account_spec()
}
}
impl std::ops::DerefMut for dyn HostAccountSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_account_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostAccountSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostAccountSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostAccountSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostAccountSpec"),
__out: &mut self.out,
}))
}
}
struct HostAccountSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostAccountSpecTrait>>,
}
impl miniserde::de::Map for HostAccountSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostAccountSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostAccountSpecTrait for HostAccountSpec {
fn get_host_account_spec(&self) -> &super::structs::HostAccountSpec { &self }
fn get_host_account_spec_mut(&mut self) -> &mut super::structs::HostAccountSpec { self }
}
impl HostAccountSpecTrait for HostPosixAccountSpec {
fn get_host_account_spec(&self) -> &super::structs::HostAccountSpec { &self.host_account_spec_ }
fn get_host_account_spec_mut(&mut self) -> &mut super::structs::HostAccountSpec { &mut self.host_account_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostAccountSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostAccountSpec => Some(from.as_any_ref().downcast_ref::<HostAccountSpec>()?),
StructType::HostPosixAccountSpec => Some(from.as_any_ref().downcast_ref::<HostPosixAccountSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostAccountSpec => Ok(from.as_any_box().downcast::<HostAccountSpec>()?),
StructType::HostPosixAccountSpec => Ok(from.as_any_box().downcast::<HostPosixAccountSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *HostMultipathInfoLogicalUnitPolicy* data object
/// describes a path selection policy for a device.
///
/// This policy determines
/// how paths should be utilized when accessing a device.
///
/// ### How to access
/// - `HostSystem::config.storage_device?.multipath_info?.lun?[*].policy`
/// - `HostStorageSystem::storage_device_info.multipath_info?.lun?[*].policy`
/// - `HostStorageSystem::set_multipath_lun_policy(policy)`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.multipath_info?.lun?[*].policy`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.multipath_info?.lun?[*].policy`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.multipath_info?.lun?[*].policy`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.multipath_info?.lun?[*].policy`
/// - `HostProfileManager::generate_config_task_list().config_spec?.storage_device?.multipath_info?.lun?[*].policy`
pub trait HostMultipathInfoLogicalUnitPolicyTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostMultipathInfoLogicalUnitPolicy parent struct
fn get_host_multipath_info_logical_unit_policy(&self) -> &super::structs::HostMultipathInfoLogicalUnitPolicy;
/// Get a mutable reference to the HostMultipathInfoLogicalUnitPolicy parent struct
fn get_host_multipath_info_logical_unit_policy_mut(&mut self) -> &mut super::structs::HostMultipathInfoLogicalUnitPolicy;
}
impl std::ops::Deref for dyn HostMultipathInfoLogicalUnitPolicyTrait {
type Target = super::structs::HostMultipathInfoLogicalUnitPolicy;
fn deref(&self) -> &Self::Target {
self.get_host_multipath_info_logical_unit_policy()
}
}
impl std::ops::DerefMut for dyn HostMultipathInfoLogicalUnitPolicyTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_multipath_info_logical_unit_policy_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostMultipathInfoLogicalUnitPolicyTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostMultipathInfoLogicalUnitPolicyTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostMultipathInfoLogicalUnitPolicyTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostMultipathInfoLogicalUnitPolicy"),
__out: &mut self.out,
}))
}
}
struct HostMultipathInfoLogicalUnitPolicyTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostMultipathInfoLogicalUnitPolicyTrait>>,
}
impl miniserde::de::Map for HostMultipathInfoLogicalUnitPolicyTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostMultipathInfoLogicalUnitPolicyTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostMultipathInfoLogicalUnitPolicyTrait for HostMultipathInfoLogicalUnitPolicy {
fn get_host_multipath_info_logical_unit_policy(&self) -> &super::structs::HostMultipathInfoLogicalUnitPolicy { &self }
fn get_host_multipath_info_logical_unit_policy_mut(&mut self) -> &mut super::structs::HostMultipathInfoLogicalUnitPolicy { self }
}
impl HostMultipathInfoLogicalUnitPolicyTrait for HostMultipathInfoFixedLogicalUnitPolicy {
fn get_host_multipath_info_logical_unit_policy(&self) -> &super::structs::HostMultipathInfoLogicalUnitPolicy { &self.host_multipath_info_logical_unit_policy_ }
fn get_host_multipath_info_logical_unit_policy_mut(&mut self) -> &mut super::structs::HostMultipathInfoLogicalUnitPolicy { &mut self.host_multipath_info_logical_unit_policy_ }
}
impl HostMultipathInfoLogicalUnitPolicyTrait for HostMultipathInfoHppLogicalUnitPolicy {
fn get_host_multipath_info_logical_unit_policy(&self) -> &super::structs::HostMultipathInfoLogicalUnitPolicy { &self.host_multipath_info_logical_unit_policy_ }
fn get_host_multipath_info_logical_unit_policy_mut(&mut self) -> &mut super::structs::HostMultipathInfoLogicalUnitPolicy { &mut self.host_multipath_info_logical_unit_policy_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostMultipathInfoLogicalUnitPolicyTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostMultipathInfoLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoLogicalUnitPolicy>()?),
StructType::HostMultipathInfoFixedLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoFixedLogicalUnitPolicy>()?),
StructType::HostMultipathInfoHppLogicalUnitPolicy => Some(from.as_any_ref().downcast_ref::<HostMultipathInfoHppLogicalUnitPolicy>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostMultipathInfoLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoLogicalUnitPolicy>()?),
StructType::HostMultipathInfoFixedLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoFixedLogicalUnitPolicy>()?),
StructType::HostMultipathInfoHppLogicalUnitPolicy => Ok(from.as_any_box().downcast::<HostMultipathInfoHppLogicalUnitPolicy>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specifies the main parameters needed when connecting to
/// an NVMe over Fabrics controller or Discovery Service.
pub trait HostNvmeSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostNvmeSpec parent struct
fn get_host_nvme_spec(&self) -> &super::structs::HostNvmeSpec;
/// Get a mutable reference to the HostNvmeSpec parent struct
fn get_host_nvme_spec_mut(&mut self) -> &mut super::structs::HostNvmeSpec;
}
impl std::ops::Deref for dyn HostNvmeSpecTrait {
type Target = super::structs::HostNvmeSpec;
fn deref(&self) -> &Self::Target {
self.get_host_nvme_spec()
}
}
impl std::ops::DerefMut for dyn HostNvmeSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_nvme_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostNvmeSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostNvmeSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostNvmeSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostNvmeSpec"),
__out: &mut self.out,
}))
}
}
struct HostNvmeSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostNvmeSpecTrait>>,
}
impl miniserde::de::Map for HostNvmeSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostNvmeSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostNvmeSpecTrait for HostNvmeSpec {
fn get_host_nvme_spec(&self) -> &super::structs::HostNvmeSpec { &self }
fn get_host_nvme_spec_mut(&mut self) -> &mut super::structs::HostNvmeSpec { self }
}
impl HostNvmeSpecTrait for HostNvmeConnectSpec {
fn get_host_nvme_spec(&self) -> &super::structs::HostNvmeSpec { &self.host_nvme_spec_ }
fn get_host_nvme_spec_mut(&mut self) -> &mut super::structs::HostNvmeSpec { &mut self.host_nvme_spec_ }
}
impl HostNvmeSpecTrait for HostNvmeDiscoverSpec {
fn get_host_nvme_spec(&self) -> &super::structs::HostNvmeSpec { &self.host_nvme_spec_ }
fn get_host_nvme_spec_mut(&mut self) -> &mut super::structs::HostNvmeSpec { &mut self.host_nvme_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostNvmeSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostNvmeSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeSpec>()?),
StructType::HostNvmeConnectSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeConnectSpec>()?),
StructType::HostNvmeDiscoverSpec => Some(from.as_any_ref().downcast_ref::<HostNvmeDiscoverSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostNvmeSpec => Ok(from.as_any_box().downcast::<HostNvmeSpec>()?),
StructType::HostNvmeConnectSpec => Ok(from.as_any_box().downcast::<HostNvmeConnectSpec>()?),
StructType::HostNvmeDiscoverSpec => Ok(from.as_any_box().downcast::<HostNvmeDiscoverSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object represents the transport specific parameters
/// necessary to establish an NVM Express over Fabrics connection.
///
/// For some further information, see:
/// - "NVM Express over Fabrics 1.0", Section 1.5.7, "Connection"
///
/// ### How to access
/// - `HostStorageSystem::discover_nvme_controllers().entry?[*].transport_parameters`
pub trait HostNvmeTransportParametersTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostNvmeTransportParametersTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostNvmeTransportParametersTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostNvmeTransportParametersTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostNvmeTransportParameters"),
__out: &mut self.out,
}))
}
}
struct HostNvmeTransportParametersTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostNvmeTransportParametersTrait>>,
}
impl miniserde::de::Map for HostNvmeTransportParametersTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostNvmeTransportParametersTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostNvmeTransportParametersTrait for HostNvmeTransportParameters {
}
impl HostNvmeTransportParametersTrait for HostNvmeOpaqueTransportParameters {
}
impl HostNvmeTransportParametersTrait for HostNvmeOverFibreChannelParameters {
}
impl HostNvmeTransportParametersTrait for HostNvmeOverRdmaParameters {
}
impl HostNvmeTransportParametersTrait for HostNvmeOverTcpParameters {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostNvmeTransportParametersTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostNvmeTransportParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeTransportParameters>()?),
StructType::HostNvmeOpaqueTransportParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOpaqueTransportParameters>()?),
StructType::HostNvmeOverFibreChannelParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverFibreChannelParameters>()?),
StructType::HostNvmeOverRdmaParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverRdmaParameters>()?),
StructType::HostNvmeOverTcpParameters => Some(from.as_any_ref().downcast_ref::<HostNvmeOverTcpParameters>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostNvmeTransportParameters => Ok(from.as_any_box().downcast::<HostNvmeTransportParameters>()?),
StructType::HostNvmeOpaqueTransportParameters => Ok(from.as_any_box().downcast::<HostNvmeOpaqueTransportParameters>()?),
StructType::HostNvmeOverFibreChannelParameters => Ok(from.as_any_box().downcast::<HostNvmeOverFibreChannelParameters>()?),
StructType::HostNvmeOverRdmaParameters => Ok(from.as_any_box().downcast::<HostNvmeOverRdmaParameters>()?),
StructType::HostNvmeOverTcpParameters => Ok(from.as_any_box().downcast::<HostNvmeOverTcpParameters>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object provides information about the state of PciPassthru
/// for all pci devices.
///
/// ### How to access
/// - `HostPciPassthruSystem::update_passthru_config(config)`
pub trait HostPciPassthruConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostPciPassthruConfig parent struct
fn get_host_pci_passthru_config(&self) -> &super::structs::HostPciPassthruConfig;
/// Get a mutable reference to the HostPciPassthruConfig parent struct
fn get_host_pci_passthru_config_mut(&mut self) -> &mut super::structs::HostPciPassthruConfig;
}
impl std::ops::Deref for dyn HostPciPassthruConfigTrait {
type Target = super::structs::HostPciPassthruConfig;
fn deref(&self) -> &Self::Target {
self.get_host_pci_passthru_config()
}
}
impl std::ops::DerefMut for dyn HostPciPassthruConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_pci_passthru_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostPciPassthruConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostPciPassthruConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostPciPassthruConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostPciPassthruConfig"),
__out: &mut self.out,
}))
}
}
struct HostPciPassthruConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostPciPassthruConfigTrait>>,
}
impl miniserde::de::Map for HostPciPassthruConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostPciPassthruConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostPciPassthruConfigTrait for HostPciPassthruConfig {
fn get_host_pci_passthru_config(&self) -> &super::structs::HostPciPassthruConfig { &self }
fn get_host_pci_passthru_config_mut(&mut self) -> &mut super::structs::HostPciPassthruConfig { self }
}
impl HostPciPassthruConfigTrait for HostSriovConfig {
fn get_host_pci_passthru_config(&self) -> &super::structs::HostPciPassthruConfig { &self.host_pci_passthru_config_ }
fn get_host_pci_passthru_config_mut(&mut self) -> &mut super::structs::HostPciPassthruConfig { &mut self.host_pci_passthru_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostPciPassthruConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostPciPassthruConfig => Some(from.as_any_ref().downcast_ref::<HostPciPassthruConfig>()?),
StructType::HostSriovConfig => Some(from.as_any_ref().downcast_ref::<HostSriovConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostPciPassthruConfig => Ok(from.as_any_box().downcast::<HostPciPassthruConfig>()?),
StructType::HostSriovConfig => Ok(from.as_any_box().downcast::<HostSriovConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object provides information about the state of PciPassthru
/// for all pci devices.
///
/// ### How to access
/// - `HostSystem::config.pci_passthru_info?[*]`
/// - `HostPciPassthruSystem::pci_passthru_info`
pub trait HostPciPassthruInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostPciPassthruInfo parent struct
fn get_host_pci_passthru_info(&self) -> &super::structs::HostPciPassthruInfo;
/// Get a mutable reference to the HostPciPassthruInfo parent struct
fn get_host_pci_passthru_info_mut(&mut self) -> &mut super::structs::HostPciPassthruInfo;
}
impl std::ops::Deref for dyn HostPciPassthruInfoTrait {
type Target = super::structs::HostPciPassthruInfo;
fn deref(&self) -> &Self::Target {
self.get_host_pci_passthru_info()
}
}
impl std::ops::DerefMut for dyn HostPciPassthruInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_pci_passthru_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostPciPassthruInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostPciPassthruInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostPciPassthruInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostPciPassthruInfo"),
__out: &mut self.out,
}))
}
}
struct HostPciPassthruInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostPciPassthruInfoTrait>>,
}
impl miniserde::de::Map for HostPciPassthruInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostPciPassthruInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostPciPassthruInfoTrait for HostPciPassthruInfo {
fn get_host_pci_passthru_info(&self) -> &super::structs::HostPciPassthruInfo { &self }
fn get_host_pci_passthru_info_mut(&mut self) -> &mut super::structs::HostPciPassthruInfo { self }
}
impl HostPciPassthruInfoTrait for HostSriovInfo {
fn get_host_pci_passthru_info(&self) -> &super::structs::HostPciPassthruInfo { &self.host_pci_passthru_info_ }
fn get_host_pci_passthru_info_mut(&mut self) -> &mut super::structs::HostPciPassthruInfo { &mut self.host_pci_passthru_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostPciPassthruInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostPciPassthruInfo => Some(from.as_any_ref().downcast_ref::<HostPciPassthruInfo>()?),
StructType::HostSriovInfo => Some(from.as_any_ref().downcast_ref::<HostSriovInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostPciPassthruInfo => Ok(from.as_any_box().downcast::<HostPciPassthruInfo>()?),
StructType::HostSriovInfo => Ok(from.as_any_box().downcast::<HostSriovInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes each network of a physical
/// network adapter's network hint.
pub trait PhysicalNicHintTrait : super::traits::DataObjectTrait {
/// Get a reference to the PhysicalNicHint parent struct
fn get_physical_nic_hint(&self) -> &super::structs::PhysicalNicHint;
/// Get a mutable reference to the PhysicalNicHint parent struct
fn get_physical_nic_hint_mut(&mut self) -> &mut super::structs::PhysicalNicHint;
}
impl std::ops::Deref for dyn PhysicalNicHintTrait {
type Target = super::structs::PhysicalNicHint;
fn deref(&self) -> &Self::Target {
self.get_physical_nic_hint()
}
}
impl std::ops::DerefMut for dyn PhysicalNicHintTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_physical_nic_hint_mut()
}
}
impl miniserde::Deserialize for Box<dyn PhysicalNicHintTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PhysicalNicHintTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PhysicalNicHintTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PhysicalNicHint"),
__out: &mut self.out,
}))
}
}
struct PhysicalNicHintTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PhysicalNicHintTrait>>,
}
impl miniserde::de::Map for PhysicalNicHintTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PhysicalNicHintTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PhysicalNicHintTrait for PhysicalNicHint {
fn get_physical_nic_hint(&self) -> &super::structs::PhysicalNicHint { &self }
fn get_physical_nic_hint_mut(&mut self) -> &mut super::structs::PhysicalNicHint { self }
}
impl PhysicalNicHintTrait for PhysicalNicIpHint {
fn get_physical_nic_hint(&self) -> &super::structs::PhysicalNicHint { &self.physical_nic_hint_ }
fn get_physical_nic_hint_mut(&mut self) -> &mut super::structs::PhysicalNicHint { &mut self.physical_nic_hint_ }
}
impl PhysicalNicHintTrait for PhysicalNicNameHint {
fn get_physical_nic_hint(&self) -> &super::structs::PhysicalNicHint { &self.physical_nic_hint_ }
fn get_physical_nic_hint_mut(&mut self) -> &mut super::structs::PhysicalNicHint { &mut self.physical_nic_hint_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PhysicalNicHintTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PhysicalNicHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicHint>()?),
StructType::PhysicalNicIpHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicIpHint>()?),
StructType::PhysicalNicNameHint => Some(from.as_any_ref().downcast_ref::<PhysicalNicNameHint>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PhysicalNicHint => Ok(from.as_any_box().downcast::<PhysicalNicHint>()?),
StructType::PhysicalNicIpHint => Ok(from.as_any_box().downcast::<PhysicalNicIpHint>()?),
StructType::PhysicalNicNameHint => Ok(from.as_any_box().downcast::<PhysicalNicNameHint>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object represents the physical
/// backing of an RDMA device.
///
/// ### How to access
/// - `HostSystem::config.network?.rdma_device?[*].backing?`
/// - `HostNetworkSystem::network_info.rdma_device?[*].backing?`
pub trait HostRdmaDeviceBackingTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostRdmaDeviceBackingTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostRdmaDeviceBackingTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostRdmaDeviceBackingTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostRdmaDeviceBacking"),
__out: &mut self.out,
}))
}
}
struct HostRdmaDeviceBackingTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostRdmaDeviceBackingTrait>>,
}
impl miniserde::de::Map for HostRdmaDeviceBackingTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostRdmaDeviceBackingTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostRdmaDeviceBackingTrait for HostRdmaDeviceBacking {
}
impl HostRdmaDeviceBackingTrait for HostRdmaDevicePnicBacking {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostRdmaDeviceBackingTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostRdmaDeviceBacking => Some(from.as_any_ref().downcast_ref::<HostRdmaDeviceBacking>()?),
StructType::HostRdmaDevicePnicBacking => Some(from.as_any_ref().downcast_ref::<HostRdmaDevicePnicBacking>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostRdmaDeviceBacking => Ok(from.as_any_box().downcast::<HostRdmaDeviceBacking>()?),
StructType::HostRdmaDevicePnicBacking => Ok(from.as_any_box().downcast::<HostRdmaDevicePnicBacking>()?),
_ => Err(from.as_any_box()),
}
}
}
/// ### How to access
/// - `HostSystem::config.sriov_device_pool?[*]`
/// - `HostPciPassthruSystem::sriov_device_pool_info`
pub trait HostSriovDevicePoolInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostSriovDevicePoolInfo parent struct
fn get_host_sriov_device_pool_info(&self) -> &super::structs::HostSriovDevicePoolInfo;
/// Get a mutable reference to the HostSriovDevicePoolInfo parent struct
fn get_host_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::HostSriovDevicePoolInfo;
}
impl std::ops::Deref for dyn HostSriovDevicePoolInfoTrait {
type Target = super::structs::HostSriovDevicePoolInfo;
fn deref(&self) -> &Self::Target {
self.get_host_sriov_device_pool_info()
}
}
impl std::ops::DerefMut for dyn HostSriovDevicePoolInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_sriov_device_pool_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostSriovDevicePoolInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostSriovDevicePoolInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostSriovDevicePoolInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostSriovDevicePoolInfo"),
__out: &mut self.out,
}))
}
}
struct HostSriovDevicePoolInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostSriovDevicePoolInfoTrait>>,
}
impl miniserde::de::Map for HostSriovDevicePoolInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostSriovDevicePoolInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostSriovDevicePoolInfoTrait for HostSriovDevicePoolInfo {
fn get_host_sriov_device_pool_info(&self) -> &super::structs::HostSriovDevicePoolInfo { &self }
fn get_host_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::HostSriovDevicePoolInfo { self }
}
impl HostSriovDevicePoolInfoTrait for HostSriovNetworkDevicePoolInfo {
fn get_host_sriov_device_pool_info(&self) -> &super::structs::HostSriovDevicePoolInfo { &self.host_sriov_device_pool_info_ }
fn get_host_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::HostSriovDevicePoolInfo { &mut self.host_sriov_device_pool_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostSriovDevicePoolInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostSriovDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<HostSriovDevicePoolInfo>()?),
StructType::HostSriovNetworkDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<HostSriovNetworkDevicePoolInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostSriovDevicePoolInfo => Ok(from.as_any_box().downcast::<HostSriovDevicePoolInfo>()?),
StructType::HostSriovNetworkDevicePoolInfo => Ok(from.as_any_box().downcast::<HostSriovNetworkDevicePoolInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all system swap options.
///
/// This class is not supposed to be used directly.
/// These values are to be used in a *SystemSwapConfiguration.option*
/// array.
///
/// ### How to access
/// - `HostSystem::config.system_swap_configuration?.option?[*]`
/// - `HostSystem::update_system_swap_configuration(sys_swap_config).option?[*]`
pub trait HostSystemSwapConfigurationSystemSwapOptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostSystemSwapConfigurationSystemSwapOption parent struct
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption;
/// Get a mutable reference to the HostSystemSwapConfigurationSystemSwapOption parent struct
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption;
}
impl std::ops::Deref for dyn HostSystemSwapConfigurationSystemSwapOptionTrait {
type Target = super::structs::HostSystemSwapConfigurationSystemSwapOption;
fn deref(&self) -> &Self::Target {
self.get_host_system_swap_configuration_system_swap_option()
}
}
impl std::ops::DerefMut for dyn HostSystemSwapConfigurationSystemSwapOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_system_swap_configuration_system_swap_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostSystemSwapConfigurationSystemSwapOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostSystemSwapConfigurationSystemSwapOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostSystemSwapConfigurationSystemSwapOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostSystemSwapConfigurationSystemSwapOption"),
__out: &mut self.out,
}))
}
}
struct HostSystemSwapConfigurationSystemSwapOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostSystemSwapConfigurationSystemSwapOptionTrait>>,
}
impl miniserde::de::Map for HostSystemSwapConfigurationSystemSwapOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostSystemSwapConfigurationSystemSwapOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostSystemSwapConfigurationSystemSwapOptionTrait for HostSystemSwapConfigurationSystemSwapOption {
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption { &self }
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption { self }
}
impl HostSystemSwapConfigurationSystemSwapOptionTrait for HostSystemSwapConfigurationDatastoreOption {
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption { &self.host_system_swap_configuration_system_swap_option_ }
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption { &mut self.host_system_swap_configuration_system_swap_option_ }
}
impl HostSystemSwapConfigurationSystemSwapOptionTrait for HostSystemSwapConfigurationDisabledOption {
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption { &self.host_system_swap_configuration_system_swap_option_ }
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption { &mut self.host_system_swap_configuration_system_swap_option_ }
}
impl HostSystemSwapConfigurationSystemSwapOptionTrait for HostSystemSwapConfigurationHostCacheOption {
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption { &self.host_system_swap_configuration_system_swap_option_ }
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption { &mut self.host_system_swap_configuration_system_swap_option_ }
}
impl HostSystemSwapConfigurationSystemSwapOptionTrait for HostSystemSwapConfigurationHostLocalSwapOption {
fn get_host_system_swap_configuration_system_swap_option(&self) -> &super::structs::HostSystemSwapConfigurationSystemSwapOption { &self.host_system_swap_configuration_system_swap_option_ }
fn get_host_system_swap_configuration_system_swap_option_mut(&mut self) -> &mut super::structs::HostSystemSwapConfigurationSystemSwapOption { &mut self.host_system_swap_configuration_system_swap_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostSystemSwapConfigurationSystemSwapOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostSystemSwapConfigurationSystemSwapOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationSystemSwapOption>()?),
StructType::HostSystemSwapConfigurationDatastoreOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationDatastoreOption>()?),
StructType::HostSystemSwapConfigurationDisabledOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationDisabledOption>()?),
StructType::HostSystemSwapConfigurationHostCacheOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationHostCacheOption>()?),
StructType::HostSystemSwapConfigurationHostLocalSwapOption => Some(from.as_any_ref().downcast_ref::<HostSystemSwapConfigurationHostLocalSwapOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostSystemSwapConfigurationSystemSwapOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationSystemSwapOption>()?),
StructType::HostSystemSwapConfigurationDatastoreOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationDatastoreOption>()?),
StructType::HostSystemSwapConfigurationDisabledOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationDisabledOption>()?),
StructType::HostSystemSwapConfigurationHostCacheOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationHostCacheOption>()?),
StructType::HostSystemSwapConfigurationHostLocalSwapOption => Ok(from.as_any_box().downcast::<HostSystemSwapConfigurationHostLocalSwapOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Transport information about a SCSI target.
///
/// ### How to access
/// - `HostSystem::config.storage_device?.plug_store_topology?.target?[*].transport?`
/// - `HostSystem::config.storage_device?.scsi_topology?.adapter?[*].target?[*].transport?`
/// - `HostSystem::config.storage_device?.multipath_info?.lun?[*].path[*].transport?`
/// - `HostStorageSystem::storage_device_info.plug_store_topology?.target?[*].transport?`
/// - `HostStorageSystem::storage_device_info.scsi_topology?.adapter?[*].target?[*].transport?`
/// - `HostStorageSystem::storage_device_info.multipath_info?.lun?[*].path[*].transport?`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.plug_store_topology?.target?[*].transport?`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.plug_store_topology?.target?[*].transport?`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.plug_store_topology?.target?[*].transport?`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.plug_store_topology?.target?[*].transport?`
///
/// *(10 of 21 paths)*
pub trait HostTargetTransportTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostTargetTransportTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostTargetTransportTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostTargetTransportTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostTargetTransport"),
__out: &mut self.out,
}))
}
}
struct HostTargetTransportTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostTargetTransportTrait>>,
}
impl miniserde::de::Map for HostTargetTransportTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostTargetTransportTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostTargetTransportTrait for HostTargetTransport {
}
impl HostTargetTransportTrait for HostBlockAdapterTargetTransport {
}
impl HostTargetTransportTrait for HostFibreChannelTargetTransport {
}
impl HostTargetTransportTrait for HostFibreChannelOverEthernetTargetTransport {
}
impl HostTargetTransportTrait for HostInternetScsiTargetTransport {
}
impl HostTargetTransportTrait for HostParallelScsiTargetTransport {
}
impl HostTargetTransportTrait for HostPcieTargetTransport {
}
impl HostTargetTransportTrait for HostRdmaTargetTransport {
}
impl HostTargetTransportTrait for HostSerialAttachedTargetTransport {
}
impl HostTargetTransportTrait for HostTcpTargetTransport {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostTargetTransportTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostTargetTransport => Some(from.as_any_ref().downcast_ref::<HostTargetTransport>()?),
StructType::HostBlockAdapterTargetTransport => Some(from.as_any_ref().downcast_ref::<HostBlockAdapterTargetTransport>()?),
StructType::HostFibreChannelTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetTargetTransport>()?),
StructType::HostInternetScsiTargetTransport => Some(from.as_any_ref().downcast_ref::<HostInternetScsiTargetTransport>()?),
StructType::HostParallelScsiTargetTransport => Some(from.as_any_ref().downcast_ref::<HostParallelScsiTargetTransport>()?),
StructType::HostPcieTargetTransport => Some(from.as_any_ref().downcast_ref::<HostPcieTargetTransport>()?),
StructType::HostRdmaTargetTransport => Some(from.as_any_ref().downcast_ref::<HostRdmaTargetTransport>()?),
StructType::HostSerialAttachedTargetTransport => Some(from.as_any_ref().downcast_ref::<HostSerialAttachedTargetTransport>()?),
StructType::HostTcpTargetTransport => Some(from.as_any_ref().downcast_ref::<HostTcpTargetTransport>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostTargetTransport => Ok(from.as_any_box().downcast::<HostTargetTransport>()?),
StructType::HostBlockAdapterTargetTransport => Ok(from.as_any_box().downcast::<HostBlockAdapterTargetTransport>()?),
StructType::HostFibreChannelTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetTargetTransport>()?),
StructType::HostInternetScsiTargetTransport => Ok(from.as_any_box().downcast::<HostInternetScsiTargetTransport>()?),
StructType::HostParallelScsiTargetTransport => Ok(from.as_any_box().downcast::<HostParallelScsiTargetTransport>()?),
StructType::HostPcieTargetTransport => Ok(from.as_any_box().downcast::<HostPcieTargetTransport>()?),
StructType::HostRdmaTargetTransport => Ok(from.as_any_box().downcast::<HostRdmaTargetTransport>()?),
StructType::HostSerialAttachedTargetTransport => Ok(from.as_any_box().downcast::<HostSerialAttachedTargetTransport>()?),
StructType::HostTcpTargetTransport => Ok(from.as_any_box().downcast::<HostTcpTargetTransport>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Fibre Channel transport information about a SCSI target.
///
/// ### How to access
/// - `HostSystem::config.storage_device?.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostSystem::config.storage_device?.scsi_topology?.adapter?[*].target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostSystem::config.storage_device?.multipath_info?.lun?[*].path[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostStorageSystem::storage_device_info.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostStorageSystem::storage_device_info.scsi_topology?.adapter?[*].target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostStorageSystem::storage_device_info.multipath_info?.lun?[*].path[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostProfileManager::apply_host_config_task(config_spec).storage_device?.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostProfileManager::generate_config_task_list(config_spec).storage_device?.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).storage_device?.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
/// - `HostProfile::execute_host_profile().config_spec?.storage_device?.plug_store_topology?.target?[*].transport?⇒HostFibreChannelTargetTransportTrait`
///
/// *(10 of 21 paths)*
pub trait HostFibreChannelTargetTransportTrait : super::traits::HostTargetTransportTrait {
/// Get a reference to the HostFibreChannelTargetTransport parent struct
fn get_host_fibre_channel_target_transport(&self) -> &super::structs::HostFibreChannelTargetTransport;
/// Get a mutable reference to the HostFibreChannelTargetTransport parent struct
fn get_host_fibre_channel_target_transport_mut(&mut self) -> &mut super::structs::HostFibreChannelTargetTransport;
}
impl std::ops::Deref for dyn HostFibreChannelTargetTransportTrait {
type Target = super::structs::HostFibreChannelTargetTransport;
fn deref(&self) -> &Self::Target {
self.get_host_fibre_channel_target_transport()
}
}
impl std::ops::DerefMut for dyn HostFibreChannelTargetTransportTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_fibre_channel_target_transport_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostFibreChannelTargetTransportTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostFibreChannelTargetTransportTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostFibreChannelTargetTransportTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostFibreChannelTargetTransport"),
__out: &mut self.out,
}))
}
}
struct HostFibreChannelTargetTransportTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostFibreChannelTargetTransportTrait>>,
}
impl miniserde::de::Map for HostFibreChannelTargetTransportTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostFibreChannelTargetTransportTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostFibreChannelTargetTransportTrait for HostFibreChannelTargetTransport {
fn get_host_fibre_channel_target_transport(&self) -> &super::structs::HostFibreChannelTargetTransport { &self }
fn get_host_fibre_channel_target_transport_mut(&mut self) -> &mut super::structs::HostFibreChannelTargetTransport { self }
}
impl HostFibreChannelTargetTransportTrait for HostFibreChannelOverEthernetTargetTransport {
fn get_host_fibre_channel_target_transport(&self) -> &super::structs::HostFibreChannelTargetTransport { &self.host_fibre_channel_target_transport_ }
fn get_host_fibre_channel_target_transport_mut(&mut self) -> &mut super::structs::HostFibreChannelTargetTransport { &mut self.host_fibre_channel_target_transport_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostFibreChannelTargetTransportTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostFibreChannelTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Some(from.as_any_ref().downcast_ref::<HostFibreChannelOverEthernetTargetTransport>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostFibreChannelTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelTargetTransport>()?),
StructType::HostFibreChannelOverEthernetTargetTransport => Ok(from.as_any_box().downcast::<HostFibreChannelOverEthernetTargetTransport>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This is a base data object for describing an event generated by
/// Trusted Platform Module (TPM).
///
/// It contains parameters common to
/// all TPM event types.
///
/// ### How to access
/// - `HostSystem::query_tpm_attestation_report().tpm_events[*].event_details`
pub trait HostTpmEventDetailsTrait : super::traits::DataObjectTrait {
/// Get a reference to the HostTpmEventDetails parent struct
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails;
/// Get a mutable reference to the HostTpmEventDetails parent struct
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails;
}
impl std::ops::Deref for dyn HostTpmEventDetailsTrait {
type Target = super::structs::HostTpmEventDetails;
fn deref(&self) -> &Self::Target {
self.get_host_tpm_event_details()
}
}
impl std::ops::DerefMut for dyn HostTpmEventDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_tpm_event_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostTpmEventDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostTpmEventDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostTpmEventDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostTpmEventDetails"),
__out: &mut self.out,
}))
}
}
struct HostTpmEventDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostTpmEventDetailsTrait>>,
}
impl miniserde::de::Map for HostTpmEventDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostTpmEventDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostTpmEventDetailsTrait for HostTpmEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { self }
}
impl HostTpmEventDetailsTrait for HostTpmBootCompleteEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmBootSecurityOptionEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmNvTagEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_boot_security_option_event_details_.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_boot_security_option_event_details_.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmSignerEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_boot_security_option_event_details_.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_boot_security_option_event_details_.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmCommandEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmOptionEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmSoftwareComponentEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl HostTpmEventDetailsTrait for HostTpmVersionEventDetails {
fn get_host_tpm_event_details(&self) -> &super::structs::HostTpmEventDetails { &self.host_tpm_event_details_ }
fn get_host_tpm_event_details_mut(&mut self) -> &mut super::structs::HostTpmEventDetails { &mut self.host_tpm_event_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostTpmEventDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostTpmEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmEventDetails>()?),
StructType::HostTpmBootCompleteEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmBootCompleteEventDetails>()?),
StructType::HostTpmBootSecurityOptionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmSignerEventDetails>()?),
StructType::HostTpmCommandEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmCommandEventDetails>()?),
StructType::HostTpmOptionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmOptionEventDetails>()?),
StructType::HostTpmSoftwareComponentEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmSoftwareComponentEventDetails>()?),
StructType::HostTpmVersionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmVersionEventDetails>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostTpmEventDetails => Ok(from.as_any_box().downcast::<HostTpmEventDetails>()?),
StructType::HostTpmBootCompleteEventDetails => Ok(from.as_any_box().downcast::<HostTpmBootCompleteEventDetails>()?),
StructType::HostTpmBootSecurityOptionEventDetails => Ok(from.as_any_box().downcast::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Ok(from.as_any_box().downcast::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Ok(from.as_any_box().downcast::<HostTpmSignerEventDetails>()?),
StructType::HostTpmCommandEventDetails => Ok(from.as_any_box().downcast::<HostTpmCommandEventDetails>()?),
StructType::HostTpmOptionEventDetails => Ok(from.as_any_box().downcast::<HostTpmOptionEventDetails>()?),
StructType::HostTpmSoftwareComponentEventDetails => Ok(from.as_any_box().downcast::<HostTpmSoftwareComponentEventDetails>()?),
StructType::HostTpmVersionEventDetails => Ok(from.as_any_box().downcast::<HostTpmVersionEventDetails>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Details of a Trusted Platform Module (TPM) event recording kernel security
/// option passed at boot time and currently in effect.
///
/// This event type exists to simplify parsing of the security-related information
/// by internal and third-party solutions. Each boot option may be passed to kernel
/// multiple times and/or in different forms. Replicating the parsing logic of the
/// kernel would be neither convinient, nor secure for the client applications.
///
/// Each instance of this event reports details of a single security-related
/// boot option, as set in the kernel.
///
/// ### How to access
/// - `HostSystem::query_tpm_attestation_report().tpm_events[*].event_details⇒HostTpmBootSecurityOptionEventDetailsTrait`
pub trait HostTpmBootSecurityOptionEventDetailsTrait : super::traits::HostTpmEventDetailsTrait {
/// Get a reference to the HostTpmBootSecurityOptionEventDetails parent struct
fn get_host_tpm_boot_security_option_event_details(&self) -> &super::structs::HostTpmBootSecurityOptionEventDetails;
/// Get a mutable reference to the HostTpmBootSecurityOptionEventDetails parent struct
fn get_host_tpm_boot_security_option_event_details_mut(&mut self) -> &mut super::structs::HostTpmBootSecurityOptionEventDetails;
}
impl std::ops::Deref for dyn HostTpmBootSecurityOptionEventDetailsTrait {
type Target = super::structs::HostTpmBootSecurityOptionEventDetails;
fn deref(&self) -> &Self::Target {
self.get_host_tpm_boot_security_option_event_details()
}
}
impl std::ops::DerefMut for dyn HostTpmBootSecurityOptionEventDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_tpm_boot_security_option_event_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostTpmBootSecurityOptionEventDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostTpmBootSecurityOptionEventDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostTpmBootSecurityOptionEventDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostTpmBootSecurityOptionEventDetails"),
__out: &mut self.out,
}))
}
}
struct HostTpmBootSecurityOptionEventDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostTpmBootSecurityOptionEventDetailsTrait>>,
}
impl miniserde::de::Map for HostTpmBootSecurityOptionEventDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostTpmBootSecurityOptionEventDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostTpmBootSecurityOptionEventDetailsTrait for HostTpmBootSecurityOptionEventDetails {
fn get_host_tpm_boot_security_option_event_details(&self) -> &super::structs::HostTpmBootSecurityOptionEventDetails { &self }
fn get_host_tpm_boot_security_option_event_details_mut(&mut self) -> &mut super::structs::HostTpmBootSecurityOptionEventDetails { self }
}
impl HostTpmBootSecurityOptionEventDetailsTrait for HostTpmNvTagEventDetails {
fn get_host_tpm_boot_security_option_event_details(&self) -> &super::structs::HostTpmBootSecurityOptionEventDetails { &self.host_tpm_boot_security_option_event_details_ }
fn get_host_tpm_boot_security_option_event_details_mut(&mut self) -> &mut super::structs::HostTpmBootSecurityOptionEventDetails { &mut self.host_tpm_boot_security_option_event_details_ }
}
impl HostTpmBootSecurityOptionEventDetailsTrait for HostTpmSignerEventDetails {
fn get_host_tpm_boot_security_option_event_details(&self) -> &super::structs::HostTpmBootSecurityOptionEventDetails { &self.host_tpm_boot_security_option_event_details_ }
fn get_host_tpm_boot_security_option_event_details_mut(&mut self) -> &mut super::structs::HostTpmBootSecurityOptionEventDetails { &mut self.host_tpm_boot_security_option_event_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostTpmBootSecurityOptionEventDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostTpmBootSecurityOptionEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Some(from.as_any_ref().downcast_ref::<HostTpmSignerEventDetails>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostTpmBootSecurityOptionEventDetails => Ok(from.as_any_box().downcast::<HostTpmBootSecurityOptionEventDetails>()?),
StructType::HostTpmNvTagEventDetails => Ok(from.as_any_box().downcast::<HostTpmNvTagEventDetails>()?),
StructType::HostTpmSignerEventDetails => Ok(from.as_any_box().downcast::<HostTpmSignerEventDetails>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A bridge connects a virtual switch to a physical network adapter.
///
/// There are multiple types of bridges.
///
/// ### How to access
/// - `HostSystem::config.network?.vswitch?[*].spec.bridge?`
/// - `HostNetworkSystem::network_config.vswitch?[*].spec?.bridge?`
/// - `HostNetworkSystem::network_info.vswitch?[*].spec.bridge?`
/// - `HostNetworkSystem::add_virtual_switch(spec).bridge?`
/// - `HostNetworkSystem::update_virtual_switch(spec).bridge?`
/// - `HostNetworkSystem::update_network_config(config).vswitch?[*].spec?.bridge?`
/// - `HostProfileManager::apply_host_config_task(config_spec).network?.vswitch?[*].spec?.bridge?`
/// - `HostProfileManager::generate_config_task_list(config_spec).network?.vswitch?[*].spec?.bridge?`
/// - `HostProfileManager::generate_host_profile_task_list_task(config_spec).network?.vswitch?[*].spec?.bridge?`
/// - `HostProfile::execute_host_profile().config_spec?.network?.vswitch?[*].spec?.bridge?`
///
/// *(10 of 11 paths)*
pub trait HostVirtualSwitchBridgeTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostVirtualSwitchBridgeTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostVirtualSwitchBridgeTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostVirtualSwitchBridgeTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostVirtualSwitchBridge"),
__out: &mut self.out,
}))
}
}
struct HostVirtualSwitchBridgeTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostVirtualSwitchBridgeTrait>>,
}
impl miniserde::de::Map for HostVirtualSwitchBridgeTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostVirtualSwitchBridgeTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostVirtualSwitchBridgeTrait for HostVirtualSwitchBridge {
}
impl HostVirtualSwitchBridgeTrait for HostVirtualSwitchAutoBridge {
}
impl HostVirtualSwitchBridgeTrait for HostVirtualSwitchBondBridge {
}
impl HostVirtualSwitchBridgeTrait for HostVirtualSwitchSimpleBridge {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostVirtualSwitchBridgeTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostVirtualSwitchBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchBridge>()?),
StructType::HostVirtualSwitchAutoBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchAutoBridge>()?),
StructType::HostVirtualSwitchBondBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchBondBridge>()?),
StructType::HostVirtualSwitchSimpleBridge => Some(from.as_any_ref().downcast_ref::<HostVirtualSwitchSimpleBridge>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostVirtualSwitchBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchBridge>()?),
StructType::HostVirtualSwitchAutoBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchAutoBridge>()?),
StructType::HostVirtualSwitchBondBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchBondBridge>()?),
StructType::HostVirtualSwitchSimpleBridge => Ok(from.as_any_box().downcast::<HostVirtualSwitchSimpleBridge>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class that describes a VMFS datastore provisioning option.
///
/// ### How to access
/// - `HostDatastoreSystem::query_vmfs_datastore_create_options().info`
/// - `HostDatastoreSystem::query_vmfs_datastore_expand_options().info`
/// - `HostDatastoreSystem::query_vmfs_datastore_extend_options().info`
pub trait VmfsDatastoreBaseOptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the VmfsDatastoreBaseOption parent struct
fn get_vmfs_datastore_base_option(&self) -> &super::structs::VmfsDatastoreBaseOption;
/// Get a mutable reference to the VmfsDatastoreBaseOption parent struct
fn get_vmfs_datastore_base_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreBaseOption;
}
impl std::ops::Deref for dyn VmfsDatastoreBaseOptionTrait {
type Target = super::structs::VmfsDatastoreBaseOption;
fn deref(&self) -> &Self::Target {
self.get_vmfs_datastore_base_option()
}
}
impl std::ops::DerefMut for dyn VmfsDatastoreBaseOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vmfs_datastore_base_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmfsDatastoreBaseOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmfsDatastoreBaseOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmfsDatastoreBaseOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmfsDatastoreBaseOption"),
__out: &mut self.out,
}))
}
}
struct VmfsDatastoreBaseOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmfsDatastoreBaseOptionTrait>>,
}
impl miniserde::de::Map for VmfsDatastoreBaseOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmfsDatastoreBaseOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmfsDatastoreBaseOptionTrait for VmfsDatastoreBaseOption {
fn get_vmfs_datastore_base_option(&self) -> &super::structs::VmfsDatastoreBaseOption { &self }
fn get_vmfs_datastore_base_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreBaseOption { self }
}
impl VmfsDatastoreBaseOptionTrait for VmfsDatastoreMultipleExtentOption {
fn get_vmfs_datastore_base_option(&self) -> &super::structs::VmfsDatastoreBaseOption { &self.vmfs_datastore_base_option_ }
fn get_vmfs_datastore_base_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreBaseOption { &mut self.vmfs_datastore_base_option_ }
}
impl VmfsDatastoreBaseOptionTrait for VmfsDatastoreSingleExtentOption {
fn get_vmfs_datastore_base_option(&self) -> &super::structs::VmfsDatastoreBaseOption { &self.vmfs_datastore_base_option_ }
fn get_vmfs_datastore_base_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreBaseOption { &mut self.vmfs_datastore_base_option_ }
}
impl VmfsDatastoreBaseOptionTrait for VmfsDatastoreAllExtentOption {
fn get_vmfs_datastore_base_option(&self) -> &super::structs::VmfsDatastoreBaseOption { &self.vmfs_datastore_single_extent_option_.vmfs_datastore_base_option_ }
fn get_vmfs_datastore_base_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreBaseOption { &mut self.vmfs_datastore_single_extent_option_.vmfs_datastore_base_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmfsDatastoreBaseOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreBaseOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreBaseOption>()?),
StructType::VmfsDatastoreMultipleExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreMultipleExtentOption>()?),
StructType::VmfsDatastoreSingleExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreAllExtentOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreBaseOption => Ok(from.as_any_box().downcast::<VmfsDatastoreBaseOption>()?),
StructType::VmfsDatastoreMultipleExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreMultipleExtentOption>()?),
StructType::VmfsDatastoreSingleExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreAllExtentOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Datastore addition policy to use a single extent on the disk for a VMFS
/// datastore.
///
/// A single extent implies that one disk partition will be
/// created on the disk for creating or increasing the capacity of a VMFS datastore.
///
/// ### How to access
/// - `HostDatastoreSystem::query_vmfs_datastore_create_options().info⇒VmfsDatastoreSingleExtentOptionTrait`
/// - `HostDatastoreSystem::query_vmfs_datastore_expand_options().info⇒VmfsDatastoreSingleExtentOptionTrait`
/// - `HostDatastoreSystem::query_vmfs_datastore_extend_options().info⇒VmfsDatastoreSingleExtentOptionTrait`
pub trait VmfsDatastoreSingleExtentOptionTrait : super::traits::VmfsDatastoreBaseOptionTrait {
/// Get a reference to the VmfsDatastoreSingleExtentOption parent struct
fn get_vmfs_datastore_single_extent_option(&self) -> &super::structs::VmfsDatastoreSingleExtentOption;
/// Get a mutable reference to the VmfsDatastoreSingleExtentOption parent struct
fn get_vmfs_datastore_single_extent_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreSingleExtentOption;
}
impl std::ops::Deref for dyn VmfsDatastoreSingleExtentOptionTrait {
type Target = super::structs::VmfsDatastoreSingleExtentOption;
fn deref(&self) -> &Self::Target {
self.get_vmfs_datastore_single_extent_option()
}
}
impl std::ops::DerefMut for dyn VmfsDatastoreSingleExtentOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vmfs_datastore_single_extent_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmfsDatastoreSingleExtentOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmfsDatastoreSingleExtentOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmfsDatastoreSingleExtentOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmfsDatastoreSingleExtentOption"),
__out: &mut self.out,
}))
}
}
struct VmfsDatastoreSingleExtentOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmfsDatastoreSingleExtentOptionTrait>>,
}
impl miniserde::de::Map for VmfsDatastoreSingleExtentOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmfsDatastoreSingleExtentOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmfsDatastoreSingleExtentOptionTrait for VmfsDatastoreSingleExtentOption {
fn get_vmfs_datastore_single_extent_option(&self) -> &super::structs::VmfsDatastoreSingleExtentOption { &self }
fn get_vmfs_datastore_single_extent_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreSingleExtentOption { self }
}
impl VmfsDatastoreSingleExtentOptionTrait for VmfsDatastoreAllExtentOption {
fn get_vmfs_datastore_single_extent_option(&self) -> &super::structs::VmfsDatastoreSingleExtentOption { &self.vmfs_datastore_single_extent_option_ }
fn get_vmfs_datastore_single_extent_option_mut(&mut self) -> &mut super::structs::VmfsDatastoreSingleExtentOption { &mut self.vmfs_datastore_single_extent_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmfsDatastoreSingleExtentOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreSingleExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreAllExtentOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreSingleExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreSingleExtentOption>()?),
StructType::VmfsDatastoreAllExtentOption => Ok(from.as_any_box().downcast::<VmfsDatastoreAllExtentOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for VMFS datastore addition specification.
///
/// Used as a generic
/// way to point to one of the creation specifications that can be used to
/// apply a specification to effect the creation or extension of a VMFS
/// datastore.
///
/// ### How to access
/// - `HostDatastoreSystem::query_vmfs_datastore_create_options().spec`
/// - `HostDatastoreSystem::query_vmfs_datastore_expand_options().spec`
/// - `HostDatastoreSystem::query_vmfs_datastore_extend_options().spec`
pub trait VmfsDatastoreSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VmfsDatastoreSpec parent struct
fn get_vmfs_datastore_spec(&self) -> &super::structs::VmfsDatastoreSpec;
/// Get a mutable reference to the VmfsDatastoreSpec parent struct
fn get_vmfs_datastore_spec_mut(&mut self) -> &mut super::structs::VmfsDatastoreSpec;
}
impl std::ops::Deref for dyn VmfsDatastoreSpecTrait {
type Target = super::structs::VmfsDatastoreSpec;
fn deref(&self) -> &Self::Target {
self.get_vmfs_datastore_spec()
}
}
impl std::ops::DerefMut for dyn VmfsDatastoreSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vmfs_datastore_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmfsDatastoreSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmfsDatastoreSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmfsDatastoreSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmfsDatastoreSpec"),
__out: &mut self.out,
}))
}
}
struct VmfsDatastoreSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmfsDatastoreSpecTrait>>,
}
impl miniserde::de::Map for VmfsDatastoreSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmfsDatastoreSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmfsDatastoreSpecTrait for VmfsDatastoreSpec {
fn get_vmfs_datastore_spec(&self) -> &super::structs::VmfsDatastoreSpec { &self }
fn get_vmfs_datastore_spec_mut(&mut self) -> &mut super::structs::VmfsDatastoreSpec { self }
}
impl VmfsDatastoreSpecTrait for VmfsDatastoreCreateSpec {
fn get_vmfs_datastore_spec(&self) -> &super::structs::VmfsDatastoreSpec { &self.vmfs_datastore_spec_ }
fn get_vmfs_datastore_spec_mut(&mut self) -> &mut super::structs::VmfsDatastoreSpec { &mut self.vmfs_datastore_spec_ }
}
impl VmfsDatastoreSpecTrait for VmfsDatastoreExpandSpec {
fn get_vmfs_datastore_spec(&self) -> &super::structs::VmfsDatastoreSpec { &self.vmfs_datastore_spec_ }
fn get_vmfs_datastore_spec_mut(&mut self) -> &mut super::structs::VmfsDatastoreSpec { &mut self.vmfs_datastore_spec_ }
}
impl VmfsDatastoreSpecTrait for VmfsDatastoreExtendSpec {
fn get_vmfs_datastore_spec(&self) -> &super::structs::VmfsDatastoreSpec { &self.vmfs_datastore_spec_ }
fn get_vmfs_datastore_spec_mut(&mut self) -> &mut super::structs::VmfsDatastoreSpec { &mut self.vmfs_datastore_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmfsDatastoreSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreSpec>()?),
StructType::VmfsDatastoreCreateSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreCreateSpec>()?),
StructType::VmfsDatastoreExpandSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreExpandSpec>()?),
StructType::VmfsDatastoreExtendSpec => Some(from.as_any_ref().downcast_ref::<VmfsDatastoreExtendSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmfsDatastoreSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreSpec>()?),
StructType::VmfsDatastoreCreateSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreCreateSpec>()?),
StructType::VmfsDatastoreExpandSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreExpandSpec>()?),
StructType::VmfsDatastoreExtendSpec => Ok(from.as_any_box().downcast::<VmfsDatastoreExtendSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Captures all common HCL related information about particular device, e.g physical NIC
///
/// This structure may be used only with operations rendered under `/vsan`.
pub trait VsanHclCommonDeviceInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHclCommonDeviceInfo parent struct
fn get_vsan_hcl_common_device_info(&self) -> &super::structs::VsanHclCommonDeviceInfo;
/// Get a mutable reference to the VsanHclCommonDeviceInfo parent struct
fn get_vsan_hcl_common_device_info_mut(&mut self) -> &mut super::structs::VsanHclCommonDeviceInfo;
}
impl std::ops::Deref for dyn VsanHclCommonDeviceInfoTrait {
type Target = super::structs::VsanHclCommonDeviceInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_hcl_common_device_info()
}
}
impl std::ops::DerefMut for dyn VsanHclCommonDeviceInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_hcl_common_device_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHclCommonDeviceInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHclCommonDeviceInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHclCommonDeviceInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHclCommonDeviceInfo"),
__out: &mut self.out,
}))
}
}
struct VsanHclCommonDeviceInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHclCommonDeviceInfoTrait>>,
}
impl miniserde::de::Map for VsanHclCommonDeviceInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHclCommonDeviceInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHclCommonDeviceInfoTrait for VsanHclCommonDeviceInfo {
fn get_vsan_hcl_common_device_info(&self) -> &super::structs::VsanHclCommonDeviceInfo { &self }
fn get_vsan_hcl_common_device_info_mut(&mut self) -> &mut super::structs::VsanHclCommonDeviceInfo { self }
}
impl VsanHclCommonDeviceInfoTrait for VsanHclNicInfo {
fn get_vsan_hcl_common_device_info(&self) -> &super::structs::VsanHclCommonDeviceInfo { &self.vsan_hcl_common_device_info_ }
fn get_vsan_hcl_common_device_info_mut(&mut self) -> &mut super::structs::VsanHclCommonDeviceInfo { &mut self.vsan_hcl_common_device_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHclCommonDeviceInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHclCommonDeviceInfo => Some(from.as_any_ref().downcast_ref::<VsanHclCommonDeviceInfo>()?),
StructType::VsanHclNicInfo => Some(from.as_any_ref().downcast_ref::<VsanHclNicInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHclCommonDeviceInfo => Ok(from.as_any_box().downcast::<VsanHclCommonDeviceInfo>()?),
StructType::VsanHclNicInfo => Ok(from.as_any_box().downcast::<VsanHclNicInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the NetBIOS configuration of
/// an operating system.
///
/// ### How to access
/// - `VirtualMachine::guest.net?[*].net_bios_config?`
pub trait NetBiosConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the NetBiosConfigInfo parent struct
fn get_net_bios_config_info(&self) -> &super::structs::NetBiosConfigInfo;
/// Get a mutable reference to the NetBiosConfigInfo parent struct
fn get_net_bios_config_info_mut(&mut self) -> &mut super::structs::NetBiosConfigInfo;
}
impl std::ops::Deref for dyn NetBiosConfigInfoTrait {
type Target = super::structs::NetBiosConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_net_bios_config_info()
}
}
impl std::ops::DerefMut for dyn NetBiosConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_net_bios_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn NetBiosConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NetBiosConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NetBiosConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NetBiosConfigInfo"),
__out: &mut self.out,
}))
}
}
struct NetBiosConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NetBiosConfigInfoTrait>>,
}
impl miniserde::de::Map for NetBiosConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NetBiosConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NetBiosConfigInfoTrait for NetBiosConfigInfo {
fn get_net_bios_config_info(&self) -> &super::structs::NetBiosConfigInfo { &self }
fn get_net_bios_config_info_mut(&mut self) -> &mut super::structs::NetBiosConfigInfo { self }
}
impl NetBiosConfigInfoTrait for WinNetBiosConfigInfo {
fn get_net_bios_config_info(&self) -> &super::structs::NetBiosConfigInfo { &self.net_bios_config_info_ }
fn get_net_bios_config_info_mut(&mut self) -> &mut super::structs::NetBiosConfigInfo { &mut self.net_bios_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NetBiosConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NetBiosConfigInfo => Some(from.as_any_ref().downcast_ref::<NetBiosConfigInfo>()?),
StructType::WinNetBiosConfigInfo => Some(from.as_any_ref().downcast_ref::<WinNetBiosConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NetBiosConfigInfo => Ok(from.as_any_box().downcast::<NetBiosConfigInfo>()?),
StructType::WinNetBiosConfigInfo => Ok(from.as_any_box().downcast::<WinNetBiosConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An ArrayUpdateSpec data object type is a common superclass
/// for supporting incremental updates to arrays.
///
/// The common code pattern is:
///
/// class MyTypeSpec extrends ArrayUpdateSpec {
/// MyTypeInfo info;
/// }
/// The ArrayUpdateSpec contains the following:
/// - **operation**: the type of operation being performed.
/// - **removeKey**: In the case of a remove operation, the
/// key value that identifies the array to be removed.
pub trait ArrayUpdateSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the ArrayUpdateSpec parent struct
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec;
/// Get a mutable reference to the ArrayUpdateSpec parent struct
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec;
}
impl std::ops::Deref for dyn ArrayUpdateSpecTrait {
type Target = super::structs::ArrayUpdateSpec;
fn deref(&self) -> &Self::Target {
self.get_array_update_spec()
}
}
impl std::ops::DerefMut for dyn ArrayUpdateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_array_update_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ArrayUpdateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ArrayUpdateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ArrayUpdateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ArrayUpdateSpec"),
__out: &mut self.out,
}))
}
}
struct ArrayUpdateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ArrayUpdateSpecTrait>>,
}
impl miniserde::de::Map for ArrayUpdateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ArrayUpdateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ArrayUpdateSpecTrait for ArrayUpdateSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { self }
}
impl ArrayUpdateSpecTrait for ClusterDasVmConfigSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterDatastoreUpdateSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterDpmHostConfigSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterDrsVmConfigSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterGroupSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterPreemptibleVmPairSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterRuleSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterTagCategoryUpdateSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for ClusterVmOrchestrationSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for StorageDrsOptionSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for StorageDrsVmConfigSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for VAppOvfSectionSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for VAppProductSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for VAppPropertySpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl ArrayUpdateSpecTrait for VirtualMachineCpuIdInfoSpec {
fn get_array_update_spec(&self) -> &super::structs::ArrayUpdateSpec { &self.array_update_spec_ }
fn get_array_update_spec_mut(&mut self) -> &mut super::structs::ArrayUpdateSpec { &mut self.array_update_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ArrayUpdateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ArrayUpdateSpec => Some(from.as_any_ref().downcast_ref::<ArrayUpdateSpec>()?),
StructType::ClusterDasVmConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDasVmConfigSpec>()?),
StructType::ClusterDatastoreUpdateSpec => Some(from.as_any_ref().downcast_ref::<ClusterDatastoreUpdateSpec>()?),
StructType::ClusterDpmHostConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDpmHostConfigSpec>()?),
StructType::ClusterDrsVmConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterDrsVmConfigSpec>()?),
StructType::ClusterGroupSpec => Some(from.as_any_ref().downcast_ref::<ClusterGroupSpec>()?),
StructType::ClusterPreemptibleVmPairSpec => Some(from.as_any_ref().downcast_ref::<ClusterPreemptibleVmPairSpec>()?),
StructType::ClusterRuleSpec => Some(from.as_any_ref().downcast_ref::<ClusterRuleSpec>()?),
StructType::ClusterTagCategoryUpdateSpec => Some(from.as_any_ref().downcast_ref::<ClusterTagCategoryUpdateSpec>()?),
StructType::ClusterVmOrchestrationSpec => Some(from.as_any_ref().downcast_ref::<ClusterVmOrchestrationSpec>()?),
StructType::StorageDrsOptionSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsOptionSpec>()?),
StructType::StorageDrsVmConfigSpec => Some(from.as_any_ref().downcast_ref::<StorageDrsVmConfigSpec>()?),
StructType::VAppOvfSectionSpec => Some(from.as_any_ref().downcast_ref::<VAppOvfSectionSpec>()?),
StructType::VAppProductSpec => Some(from.as_any_ref().downcast_ref::<VAppProductSpec>()?),
StructType::VAppPropertySpec => Some(from.as_any_ref().downcast_ref::<VAppPropertySpec>()?),
StructType::VirtualMachineCpuIdInfoSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineCpuIdInfoSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ArrayUpdateSpec => Ok(from.as_any_box().downcast::<ArrayUpdateSpec>()?),
StructType::ClusterDasVmConfigSpec => Ok(from.as_any_box().downcast::<ClusterDasVmConfigSpec>()?),
StructType::ClusterDatastoreUpdateSpec => Ok(from.as_any_box().downcast::<ClusterDatastoreUpdateSpec>()?),
StructType::ClusterDpmHostConfigSpec => Ok(from.as_any_box().downcast::<ClusterDpmHostConfigSpec>()?),
StructType::ClusterDrsVmConfigSpec => Ok(from.as_any_box().downcast::<ClusterDrsVmConfigSpec>()?),
StructType::ClusterGroupSpec => Ok(from.as_any_box().downcast::<ClusterGroupSpec>()?),
StructType::ClusterPreemptibleVmPairSpec => Ok(from.as_any_box().downcast::<ClusterPreemptibleVmPairSpec>()?),
StructType::ClusterRuleSpec => Ok(from.as_any_box().downcast::<ClusterRuleSpec>()?),
StructType::ClusterTagCategoryUpdateSpec => Ok(from.as_any_box().downcast::<ClusterTagCategoryUpdateSpec>()?),
StructType::ClusterVmOrchestrationSpec => Ok(from.as_any_box().downcast::<ClusterVmOrchestrationSpec>()?),
StructType::StorageDrsOptionSpec => Ok(from.as_any_box().downcast::<StorageDrsOptionSpec>()?),
StructType::StorageDrsVmConfigSpec => Ok(from.as_any_box().downcast::<StorageDrsVmConfigSpec>()?),
StructType::VAppOvfSectionSpec => Ok(from.as_any_box().downcast::<VAppOvfSectionSpec>()?),
StructType::VAppProductSpec => Ok(from.as_any_box().downcast::<VAppProductSpec>()?),
StructType::VAppPropertySpec => Ok(from.as_any_box().downcast::<VAppPropertySpec>()?),
StructType::VirtualMachineCpuIdInfoSpec => Ok(from.as_any_box().downcast::<VirtualMachineCpuIdInfoSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The base data object type for all options.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*].device_info?→OptionDef.option_type`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.device_info?→OptionDef.option_type`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*].device_info?→OptionDef.option_type`
///
/// *(10 of 100 paths)*
pub trait OptionTypeTrait : super::traits::DataObjectTrait {
/// Get a reference to the OptionType parent struct
fn get_option_type(&self) -> &super::structs::OptionType;
/// Get a mutable reference to the OptionType parent struct
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType;
}
impl std::ops::Deref for dyn OptionTypeTrait {
type Target = super::structs::OptionType;
fn deref(&self) -> &Self::Target {
self.get_option_type()
}
}
impl std::ops::DerefMut for dyn OptionTypeTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_option_type_mut()
}
}
impl miniserde::Deserialize for Box<dyn OptionTypeTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn OptionTypeTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(OptionTypeTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("OptionType"),
__out: &mut self.out,
}))
}
}
struct OptionTypeTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn OptionTypeTrait>>,
}
impl miniserde::de::Map for OptionTypeTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn OptionTypeTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl OptionTypeTrait for OptionType {
fn get_option_type(&self) -> &super::structs::OptionType { &self }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { self }
}
impl OptionTypeTrait for BoolOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl OptionTypeTrait for ChoiceOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl OptionTypeTrait for FloatOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl OptionTypeTrait for IntOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl OptionTypeTrait for LongOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl OptionTypeTrait for StringOption {
fn get_option_type(&self) -> &super::structs::OptionType { &self.option_type_ }
fn get_option_type_mut(&mut self) -> &mut super::structs::OptionType { &mut self.option_type_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn OptionTypeTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::OptionType => Some(from.as_any_ref().downcast_ref::<OptionType>()?),
StructType::BoolOption => Some(from.as_any_ref().downcast_ref::<BoolOption>()?),
StructType::ChoiceOption => Some(from.as_any_ref().downcast_ref::<ChoiceOption>()?),
StructType::FloatOption => Some(from.as_any_ref().downcast_ref::<FloatOption>()?),
StructType::IntOption => Some(from.as_any_ref().downcast_ref::<IntOption>()?),
StructType::LongOption => Some(from.as_any_ref().downcast_ref::<LongOption>()?),
StructType::StringOption => Some(from.as_any_ref().downcast_ref::<StringOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::OptionType => Ok(from.as_any_box().downcast::<OptionType>()?),
StructType::BoolOption => Ok(from.as_any_box().downcast::<BoolOption>()?),
StructType::ChoiceOption => Ok(from.as_any_box().downcast::<ChoiceOption>()?),
StructType::FloatOption => Ok(from.as_any_box().downcast::<FloatOption>()?),
StructType::IntOption => Ok(from.as_any_box().downcast::<IntOption>()?),
StructType::LongOption => Ok(from.as_any_box().downcast::<LongOption>()?),
StructType::StringOption => Ok(from.as_any_box().downcast::<StringOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Describes the key/value pair of a configured option.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.option?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.drs_config.option?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.dpm_config_info?.option?[*]`
/// - `ClusterComputeResource::configuration.das_config.option?[*]`
/// - `ClusterComputeResource::configuration.drs_config.option?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.das_config.option?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.drs_config.option?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.dpm_config_info?.option?[*]`
/// - `Datacenter::power_on_multi_vm_task(option)`
/// - `Datastore::datastore_enter_maintenance_mode().recommendations?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.extra_config?[*]`
///
/// *(10 of 100 paths)*
pub trait OptionValueTrait : super::traits::DataObjectTrait {
/// Get a reference to the OptionValue parent struct
fn get_option_value(&self) -> &super::structs::OptionValue;
/// Get a mutable reference to the OptionValue parent struct
fn get_option_value_mut(&mut self) -> &mut super::structs::OptionValue;
}
impl std::ops::Deref for dyn OptionValueTrait {
type Target = super::structs::OptionValue;
fn deref(&self) -> &Self::Target {
self.get_option_value()
}
}
impl std::ops::DerefMut for dyn OptionValueTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_option_value_mut()
}
}
impl miniserde::Deserialize for Box<dyn OptionValueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn OptionValueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(OptionValueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("OptionValue"),
__out: &mut self.out,
}))
}
}
struct OptionValueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn OptionValueTrait>>,
}
impl miniserde::de::Map for OptionValueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn OptionValueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl OptionValueTrait for OptionValue {
fn get_option_value(&self) -> &super::structs::OptionValue { &self }
fn get_option_value_mut(&mut self) -> &mut super::structs::OptionValue { self }
}
impl OptionValueTrait for HostInternetScsiHbaParamValue {
fn get_option_value(&self) -> &super::structs::OptionValue { &self.option_value_ }
fn get_option_value_mut(&mut self) -> &mut super::structs::OptionValue { &mut self.option_value_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn OptionValueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::OptionValue => Some(from.as_any_ref().downcast_ref::<OptionValue>()?),
StructType::HostInternetScsiHbaParamValue => Some(from.as_any_ref().downcast_ref::<HostInternetScsiHbaParamValue>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::OptionValue => Ok(from.as_any_box().downcast::<OptionValue>()?),
StructType::HostInternetScsiHbaParamValue => Ok(from.as_any_box().downcast::<HostInternetScsiHbaParamValue>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ApplyProfile* data object is the base class for all data objects
/// that define profile configuration data.
///
/// <code>ApplyProfile</code> defines ESX configuration data storage and it
/// supports recursive profile definition for the profile plug-in architecture.
///
/// ### How to access
/// - `HostProfileManager::create_default_profile()`
pub trait ApplyProfileTrait : super::traits::DataObjectTrait {
/// Get a reference to the ApplyProfile parent struct
fn get_apply_profile(&self) -> &super::structs::ApplyProfile;
/// Get a mutable reference to the ApplyProfile parent struct
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile;
}
impl std::ops::Deref for dyn ApplyProfileTrait {
type Target = super::structs::ApplyProfile;
fn deref(&self) -> &Self::Target {
self.get_apply_profile()
}
}
impl std::ops::DerefMut for dyn ApplyProfileTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_apply_profile_mut()
}
}
impl miniserde::Deserialize for Box<dyn ApplyProfileTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ApplyProfileTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ApplyProfileTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ApplyProfile"),
__out: &mut self.out,
}))
}
}
struct ApplyProfileTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ApplyProfileTrait>>,
}
impl miniserde::de::Map for ApplyProfileTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ApplyProfileTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ApplyProfileTrait for ApplyProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { self }
}
impl ApplyProfileTrait for ProfileApplyProfileElement {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for ActiveDirectoryProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for AuthenticationProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for DateTimeProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for DvsProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for DvsVNicProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for DvsHostVNicProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.dvs_v_nic_profile_.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.dvs_v_nic_profile_.apply_profile_ }
}
impl ApplyProfileTrait for DvsServiceConsoleVNicProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.dvs_v_nic_profile_.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.dvs_v_nic_profile_.apply_profile_ }
}
impl ApplyProfileTrait for FirewallProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for FirewallProfileRulesetProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for HostApplyProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for HostMemoryProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for IpAddressProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for IpRouteProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NasStorageProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NetStackInstanceProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NetworkPolicyProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NetworkProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NetworkProfileDnsConfigProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NsxHostVNicProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for OpaqueSwitchProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for OptionProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for PermissionProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for PhysicalNicProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for PnicUplinkProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for PortGroupProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for HostPortGroupProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.port_group_profile_.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.port_group_profile_.apply_profile_ }
}
impl ApplyProfileTrait for ServiceConsolePortGroupProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.port_group_profile_.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.port_group_profile_.apply_profile_ }
}
impl ApplyProfileTrait for VmPortGroupProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.port_group_profile_.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.port_group_profile_.apply_profile_ }
}
impl ApplyProfileTrait for VirtualSwitchSelectionProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for VlanProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for SecurityProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for ServiceProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for StaticRouteProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for StorageProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for UserGroupProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for UserProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for VirtualSwitchProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for LinkProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl ApplyProfileTrait for NumPortsProfile {
fn get_apply_profile(&self) -> &super::structs::ApplyProfile { &self.apply_profile_ }
fn get_apply_profile_mut(&mut self) -> &mut super::structs::ApplyProfile { &mut self.apply_profile_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ApplyProfileTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ApplyProfile => Some(from.as_any_ref().downcast_ref::<ApplyProfile>()?),
StructType::ProfileApplyProfileElement => Some(from.as_any_ref().downcast_ref::<ProfileApplyProfileElement>()?),
StructType::ActiveDirectoryProfile => Some(from.as_any_ref().downcast_ref::<ActiveDirectoryProfile>()?),
StructType::AuthenticationProfile => Some(from.as_any_ref().downcast_ref::<AuthenticationProfile>()?),
StructType::DateTimeProfile => Some(from.as_any_ref().downcast_ref::<DateTimeProfile>()?),
StructType::DvsProfile => Some(from.as_any_ref().downcast_ref::<DvsProfile>()?),
StructType::DvsVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsServiceConsoleVNicProfile>()?),
StructType::FirewallProfile => Some(from.as_any_ref().downcast_ref::<FirewallProfile>()?),
StructType::FirewallProfileRulesetProfile => Some(from.as_any_ref().downcast_ref::<FirewallProfileRulesetProfile>()?),
StructType::HostApplyProfile => Some(from.as_any_ref().downcast_ref::<HostApplyProfile>()?),
StructType::HostMemoryProfile => Some(from.as_any_ref().downcast_ref::<HostMemoryProfile>()?),
StructType::IpAddressProfile => Some(from.as_any_ref().downcast_ref::<IpAddressProfile>()?),
StructType::IpRouteProfile => Some(from.as_any_ref().downcast_ref::<IpRouteProfile>()?),
StructType::NasStorageProfile => Some(from.as_any_ref().downcast_ref::<NasStorageProfile>()?),
StructType::NetStackInstanceProfile => Some(from.as_any_ref().downcast_ref::<NetStackInstanceProfile>()?),
StructType::NetworkPolicyProfile => Some(from.as_any_ref().downcast_ref::<NetworkPolicyProfile>()?),
StructType::NetworkProfile => Some(from.as_any_ref().downcast_ref::<NetworkProfile>()?),
StructType::NetworkProfileDnsConfigProfile => Some(from.as_any_ref().downcast_ref::<NetworkProfileDnsConfigProfile>()?),
StructType::NsxHostVNicProfile => Some(from.as_any_ref().downcast_ref::<NsxHostVNicProfile>()?),
StructType::OpaqueSwitchProfile => Some(from.as_any_ref().downcast_ref::<OpaqueSwitchProfile>()?),
StructType::OptionProfile => Some(from.as_any_ref().downcast_ref::<OptionProfile>()?),
StructType::PermissionProfile => Some(from.as_any_ref().downcast_ref::<PermissionProfile>()?),
StructType::PhysicalNicProfile => Some(from.as_any_ref().downcast_ref::<PhysicalNicProfile>()?),
StructType::PnicUplinkProfile => Some(from.as_any_ref().downcast_ref::<PnicUplinkProfile>()?),
StructType::PortGroupProfile => Some(from.as_any_ref().downcast_ref::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Some(from.as_any_ref().downcast_ref::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Some(from.as_any_ref().downcast_ref::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Some(from.as_any_ref().downcast_ref::<VmPortGroupProfile>()?),
StructType::VirtualSwitchSelectionProfile => Some(from.as_any_ref().downcast_ref::<VirtualSwitchSelectionProfile>()?),
StructType::VlanProfile => Some(from.as_any_ref().downcast_ref::<VlanProfile>()?),
StructType::SecurityProfile => Some(from.as_any_ref().downcast_ref::<SecurityProfile>()?),
StructType::ServiceProfile => Some(from.as_any_ref().downcast_ref::<ServiceProfile>()?),
StructType::StaticRouteProfile => Some(from.as_any_ref().downcast_ref::<StaticRouteProfile>()?),
StructType::StorageProfile => Some(from.as_any_ref().downcast_ref::<StorageProfile>()?),
StructType::UserGroupProfile => Some(from.as_any_ref().downcast_ref::<UserGroupProfile>()?),
StructType::UserProfile => Some(from.as_any_ref().downcast_ref::<UserProfile>()?),
StructType::VirtualSwitchProfile => Some(from.as_any_ref().downcast_ref::<VirtualSwitchProfile>()?),
StructType::LinkProfile => Some(from.as_any_ref().downcast_ref::<LinkProfile>()?),
StructType::NumPortsProfile => Some(from.as_any_ref().downcast_ref::<NumPortsProfile>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ApplyProfile => Ok(from.as_any_box().downcast::<ApplyProfile>()?),
StructType::ProfileApplyProfileElement => Ok(from.as_any_box().downcast::<ProfileApplyProfileElement>()?),
StructType::ActiveDirectoryProfile => Ok(from.as_any_box().downcast::<ActiveDirectoryProfile>()?),
StructType::AuthenticationProfile => Ok(from.as_any_box().downcast::<AuthenticationProfile>()?),
StructType::DateTimeProfile => Ok(from.as_any_box().downcast::<DateTimeProfile>()?),
StructType::DvsProfile => Ok(from.as_any_box().downcast::<DvsProfile>()?),
StructType::DvsVNicProfile => Ok(from.as_any_box().downcast::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Ok(from.as_any_box().downcast::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Ok(from.as_any_box().downcast::<DvsServiceConsoleVNicProfile>()?),
StructType::FirewallProfile => Ok(from.as_any_box().downcast::<FirewallProfile>()?),
StructType::FirewallProfileRulesetProfile => Ok(from.as_any_box().downcast::<FirewallProfileRulesetProfile>()?),
StructType::HostApplyProfile => Ok(from.as_any_box().downcast::<HostApplyProfile>()?),
StructType::HostMemoryProfile => Ok(from.as_any_box().downcast::<HostMemoryProfile>()?),
StructType::IpAddressProfile => Ok(from.as_any_box().downcast::<IpAddressProfile>()?),
StructType::IpRouteProfile => Ok(from.as_any_box().downcast::<IpRouteProfile>()?),
StructType::NasStorageProfile => Ok(from.as_any_box().downcast::<NasStorageProfile>()?),
StructType::NetStackInstanceProfile => Ok(from.as_any_box().downcast::<NetStackInstanceProfile>()?),
StructType::NetworkPolicyProfile => Ok(from.as_any_box().downcast::<NetworkPolicyProfile>()?),
StructType::NetworkProfile => Ok(from.as_any_box().downcast::<NetworkProfile>()?),
StructType::NetworkProfileDnsConfigProfile => Ok(from.as_any_box().downcast::<NetworkProfileDnsConfigProfile>()?),
StructType::NsxHostVNicProfile => Ok(from.as_any_box().downcast::<NsxHostVNicProfile>()?),
StructType::OpaqueSwitchProfile => Ok(from.as_any_box().downcast::<OpaqueSwitchProfile>()?),
StructType::OptionProfile => Ok(from.as_any_box().downcast::<OptionProfile>()?),
StructType::PermissionProfile => Ok(from.as_any_box().downcast::<PermissionProfile>()?),
StructType::PhysicalNicProfile => Ok(from.as_any_box().downcast::<PhysicalNicProfile>()?),
StructType::PnicUplinkProfile => Ok(from.as_any_box().downcast::<PnicUplinkProfile>()?),
StructType::PortGroupProfile => Ok(from.as_any_box().downcast::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Ok(from.as_any_box().downcast::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Ok(from.as_any_box().downcast::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Ok(from.as_any_box().downcast::<VmPortGroupProfile>()?),
StructType::VirtualSwitchSelectionProfile => Ok(from.as_any_box().downcast::<VirtualSwitchSelectionProfile>()?),
StructType::VlanProfile => Ok(from.as_any_box().downcast::<VlanProfile>()?),
StructType::SecurityProfile => Ok(from.as_any_box().downcast::<SecurityProfile>()?),
StructType::ServiceProfile => Ok(from.as_any_box().downcast::<ServiceProfile>()?),
StructType::StaticRouteProfile => Ok(from.as_any_box().downcast::<StaticRouteProfile>()?),
StructType::StorageProfile => Ok(from.as_any_box().downcast::<StorageProfile>()?),
StructType::UserGroupProfile => Ok(from.as_any_box().downcast::<UserGroupProfile>()?),
StructType::UserProfile => Ok(from.as_any_box().downcast::<UserProfile>()?),
StructType::VirtualSwitchProfile => Ok(from.as_any_box().downcast::<VirtualSwitchProfile>()?),
StructType::LinkProfile => Ok(from.as_any_box().downcast::<LinkProfile>()?),
StructType::NumPortsProfile => Ok(from.as_any_box().downcast::<NumPortsProfile>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DvsVNicProfile* data object is the base object
/// for host and service console Virtual NIC subprofiles.
///
/// If a profile plug-in defines additional policies or subprofiles, use the
/// *ApplyProfile.policy* or *ApplyProfile.property*
/// list to access the configuration data.
///
/// ### How to access
/// - `HostProfileManager::create_default_profile()⇒DvsVNicProfileTrait`
pub trait DvsVNicProfileTrait : super::traits::ApplyProfileTrait {
/// Get a reference to the DvsVNicProfile parent struct
fn get_dvs_v_nic_profile(&self) -> &super::structs::DvsVNicProfile;
/// Get a mutable reference to the DvsVNicProfile parent struct
fn get_dvs_v_nic_profile_mut(&mut self) -> &mut super::structs::DvsVNicProfile;
}
impl std::ops::Deref for dyn DvsVNicProfileTrait {
type Target = super::structs::DvsVNicProfile;
fn deref(&self) -> &Self::Target {
self.get_dvs_v_nic_profile()
}
}
impl std::ops::DerefMut for dyn DvsVNicProfileTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_dvs_v_nic_profile_mut()
}
}
impl miniserde::Deserialize for Box<dyn DvsVNicProfileTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DvsVNicProfileTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DvsVNicProfileTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DvsVNicProfile"),
__out: &mut self.out,
}))
}
}
struct DvsVNicProfileTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DvsVNicProfileTrait>>,
}
impl miniserde::de::Map for DvsVNicProfileTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DvsVNicProfileTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DvsVNicProfileTrait for DvsVNicProfile {
fn get_dvs_v_nic_profile(&self) -> &super::structs::DvsVNicProfile { &self }
fn get_dvs_v_nic_profile_mut(&mut self) -> &mut super::structs::DvsVNicProfile { self }
}
impl DvsVNicProfileTrait for DvsHostVNicProfile {
fn get_dvs_v_nic_profile(&self) -> &super::structs::DvsVNicProfile { &self.dvs_v_nic_profile_ }
fn get_dvs_v_nic_profile_mut(&mut self) -> &mut super::structs::DvsVNicProfile { &mut self.dvs_v_nic_profile_ }
}
impl DvsVNicProfileTrait for DvsServiceConsoleVNicProfile {
fn get_dvs_v_nic_profile(&self) -> &super::structs::DvsVNicProfile { &self.dvs_v_nic_profile_ }
fn get_dvs_v_nic_profile_mut(&mut self) -> &mut super::structs::DvsVNicProfile { &mut self.dvs_v_nic_profile_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DvsVNicProfileTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DvsVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Some(from.as_any_ref().downcast_ref::<DvsServiceConsoleVNicProfile>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DvsVNicProfile => Ok(from.as_any_box().downcast::<DvsVNicProfile>()?),
StructType::DvsHostVNicProfile => Ok(from.as_any_box().downcast::<DvsHostVNicProfile>()?),
StructType::DvsServiceConsoleVNicProfile => Ok(from.as_any_box().downcast::<DvsServiceConsoleVNicProfile>()?),
_ => Err(from.as_any_box()),
}
}
}
/// *PortGroupProfile* is the base class for the different port group
/// subprofile objects.
///
/// ### How to access
/// - `HostProfileManager::create_default_profile()⇒PortGroupProfileTrait`
pub trait PortGroupProfileTrait : super::traits::ApplyProfileTrait {
/// Get a reference to the PortGroupProfile parent struct
fn get_port_group_profile(&self) -> &super::structs::PortGroupProfile;
/// Get a mutable reference to the PortGroupProfile parent struct
fn get_port_group_profile_mut(&mut self) -> &mut super::structs::PortGroupProfile;
}
impl std::ops::Deref for dyn PortGroupProfileTrait {
type Target = super::structs::PortGroupProfile;
fn deref(&self) -> &Self::Target {
self.get_port_group_profile()
}
}
impl std::ops::DerefMut for dyn PortGroupProfileTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_port_group_profile_mut()
}
}
impl miniserde::Deserialize for Box<dyn PortGroupProfileTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PortGroupProfileTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PortGroupProfileTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PortGroupProfile"),
__out: &mut self.out,
}))
}
}
struct PortGroupProfileTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PortGroupProfileTrait>>,
}
impl miniserde::de::Map for PortGroupProfileTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PortGroupProfileTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PortGroupProfileTrait for PortGroupProfile {
fn get_port_group_profile(&self) -> &super::structs::PortGroupProfile { &self }
fn get_port_group_profile_mut(&mut self) -> &mut super::structs::PortGroupProfile { self }
}
impl PortGroupProfileTrait for HostPortGroupProfile {
fn get_port_group_profile(&self) -> &super::structs::PortGroupProfile { &self.port_group_profile_ }
fn get_port_group_profile_mut(&mut self) -> &mut super::structs::PortGroupProfile { &mut self.port_group_profile_ }
}
impl PortGroupProfileTrait for ServiceConsolePortGroupProfile {
fn get_port_group_profile(&self) -> &super::structs::PortGroupProfile { &self.port_group_profile_ }
fn get_port_group_profile_mut(&mut self) -> &mut super::structs::PortGroupProfile { &mut self.port_group_profile_ }
}
impl PortGroupProfileTrait for VmPortGroupProfile {
fn get_port_group_profile(&self) -> &super::structs::PortGroupProfile { &self.port_group_profile_ }
fn get_port_group_profile_mut(&mut self) -> &mut super::structs::PortGroupProfile { &mut self.port_group_profile_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PortGroupProfileTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PortGroupProfile => Some(from.as_any_ref().downcast_ref::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Some(from.as_any_ref().downcast_ref::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Some(from.as_any_ref().downcast_ref::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Some(from.as_any_ref().downcast_ref::<VmPortGroupProfile>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PortGroupProfile => Ok(from.as_any_box().downcast::<PortGroupProfile>()?),
StructType::HostPortGroupProfile => Ok(from.as_any_box().downcast::<HostPortGroupProfile>()?),
StructType::ServiceConsolePortGroupProfile => Ok(from.as_any_box().downcast::<ServiceConsolePortGroupProfile>()?),
StructType::VmPortGroupProfile => Ok(from.as_any_box().downcast::<VmPortGroupProfile>()?),
_ => Err(from.as_any_box()),
}
}
}
/// ### How to access
/// - `HostProfile::config→HostProfileConfigInfo.default_comply_profile?.expression[*]`
/// - `HostProfile::config→HostProfileConfigInfo.custom_comply_profile?.expression[*]`
/// - `HostProfile::config→ClusterProfileConfigInfo.comply_profile?.expression[*]`
/// - `Profile::config→HostProfileConfigInfo.default_comply_profile?.expression[*]`
/// - `Profile::config→HostProfileConfigInfo.custom_comply_profile?.expression[*]`
/// - `Profile::config→ClusterProfileConfigInfo.comply_profile?.expression[*]`
/// - `ClusterProfile::config→HostProfileConfigInfo.default_comply_profile?.expression[*]`
/// - `ClusterProfile::config→HostProfileConfigInfo.custom_comply_profile?.expression[*]`
/// - `ClusterProfile::config→ClusterProfileConfigInfo.comply_profile?.expression[*]`
/// - `HostProfile::update_host_profile(config)→HostProfileCompleteConfigSpec.custom_comply_profile?.expression[*]`
///
/// *(10 of 25 paths)*
pub trait ProfileExpressionTrait : super::traits::DataObjectTrait {
/// Get a reference to the ProfileExpression parent struct
fn get_profile_expression(&self) -> &super::structs::ProfileExpression;
/// Get a mutable reference to the ProfileExpression parent struct
fn get_profile_expression_mut(&mut self) -> &mut super::structs::ProfileExpression;
}
impl std::ops::Deref for dyn ProfileExpressionTrait {
type Target = super::structs::ProfileExpression;
fn deref(&self) -> &Self::Target {
self.get_profile_expression()
}
}
impl std::ops::DerefMut for dyn ProfileExpressionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_expression_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfileExpressionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfileExpressionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfileExpressionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfileExpression"),
__out: &mut self.out,
}))
}
}
struct ProfileExpressionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfileExpressionTrait>>,
}
impl miniserde::de::Map for ProfileExpressionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfileExpressionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfileExpressionTrait for ProfileExpression {
fn get_profile_expression(&self) -> &super::structs::ProfileExpression { &self }
fn get_profile_expression_mut(&mut self) -> &mut super::structs::ProfileExpression { self }
}
impl ProfileExpressionTrait for ProfileCompositeExpression {
fn get_profile_expression(&self) -> &super::structs::ProfileExpression { &self.profile_expression_ }
fn get_profile_expression_mut(&mut self) -> &mut super::structs::ProfileExpression { &mut self.profile_expression_ }
}
impl ProfileExpressionTrait for ProfileSimpleExpression {
fn get_profile_expression(&self) -> &super::structs::ProfileExpression { &self.profile_expression_ }
fn get_profile_expression_mut(&mut self) -> &mut super::structs::ProfileExpression { &mut self.profile_expression_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfileExpressionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfileExpression => Some(from.as_any_ref().downcast_ref::<ProfileExpression>()?),
StructType::ProfileCompositeExpression => Some(from.as_any_ref().downcast_ref::<ProfileCompositeExpression>()?),
StructType::ProfileSimpleExpression => Some(from.as_any_ref().downcast_ref::<ProfileSimpleExpression>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfileExpression => Ok(from.as_any_box().downcast::<ProfileExpression>()?),
StructType::ProfileCompositeExpression => Ok(from.as_any_box().downcast::<ProfileCompositeExpression>()?),
StructType::ProfileSimpleExpression => Ok(from.as_any_box().downcast::<ProfileSimpleExpression>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *PolicyOption* data object represents one or more configuration
/// values.
///
/// A policy option is one of the configuration options from the
/// *ProfilePolicyMetadata*.*ProfilePolicyMetadata.possibleOption*
/// list.
///
/// ### How to access
/// - `HostProfileManager::create_default_profile().policy?[*].policy_option`
pub trait PolicyOptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the PolicyOption parent struct
fn get_policy_option(&self) -> &super::structs::PolicyOption;
/// Get a mutable reference to the PolicyOption parent struct
fn get_policy_option_mut(&mut self) -> &mut super::structs::PolicyOption;
}
impl std::ops::Deref for dyn PolicyOptionTrait {
type Target = super::structs::PolicyOption;
fn deref(&self) -> &Self::Target {
self.get_policy_option()
}
}
impl std::ops::DerefMut for dyn PolicyOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_policy_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn PolicyOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn PolicyOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(PolicyOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("PolicyOption"),
__out: &mut self.out,
}))
}
}
struct PolicyOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn PolicyOptionTrait>>,
}
impl miniserde::de::Map for PolicyOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn PolicyOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl PolicyOptionTrait for PolicyOption {
fn get_policy_option(&self) -> &super::structs::PolicyOption { &self }
fn get_policy_option_mut(&mut self) -> &mut super::structs::PolicyOption { self }
}
impl PolicyOptionTrait for CompositePolicyOption {
fn get_policy_option(&self) -> &super::structs::PolicyOption { &self.policy_option_ }
fn get_policy_option_mut(&mut self) -> &mut super::structs::PolicyOption { &mut self.policy_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn PolicyOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::PolicyOption => Some(from.as_any_ref().downcast_ref::<PolicyOption>()?),
StructType::CompositePolicyOption => Some(from.as_any_ref().downcast_ref::<CompositePolicyOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::PolicyOption => Ok(from.as_any_box().downcast::<PolicyOption>()?),
StructType::CompositePolicyOption => Ok(from.as_any_box().downcast::<CompositePolicyOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ProfilePolicyOptionMetadata* data object contains the metadata information
/// for a *PolicyOption*.
///
/// ### How to access
/// - `HostProfileManager::query_policy_metadata().possible_option[*]`
/// - `ProfileManager::query_policy_metadata().possible_option[*]`
/// - `ClusterProfileManager::query_policy_metadata().possible_option[*]`
pub trait ProfilePolicyOptionMetadataTrait : super::traits::DataObjectTrait {
/// Get a reference to the ProfilePolicyOptionMetadata parent struct
fn get_profile_policy_option_metadata(&self) -> &super::structs::ProfilePolicyOptionMetadata;
/// Get a mutable reference to the ProfilePolicyOptionMetadata parent struct
fn get_profile_policy_option_metadata_mut(&mut self) -> &mut super::structs::ProfilePolicyOptionMetadata;
}
impl std::ops::Deref for dyn ProfilePolicyOptionMetadataTrait {
type Target = super::structs::ProfilePolicyOptionMetadata;
fn deref(&self) -> &Self::Target {
self.get_profile_policy_option_metadata()
}
}
impl std::ops::DerefMut for dyn ProfilePolicyOptionMetadataTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_policy_option_metadata_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfilePolicyOptionMetadataTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfilePolicyOptionMetadataTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfilePolicyOptionMetadataTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfilePolicyOptionMetadata"),
__out: &mut self.out,
}))
}
}
struct ProfilePolicyOptionMetadataTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfilePolicyOptionMetadataTrait>>,
}
impl miniserde::de::Map for ProfilePolicyOptionMetadataTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfilePolicyOptionMetadataTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfilePolicyOptionMetadataTrait for ProfilePolicyOptionMetadata {
fn get_profile_policy_option_metadata(&self) -> &super::structs::ProfilePolicyOptionMetadata { &self }
fn get_profile_policy_option_metadata_mut(&mut self) -> &mut super::structs::ProfilePolicyOptionMetadata { self }
}
impl ProfilePolicyOptionMetadataTrait for ProfileCompositePolicyOptionMetadata {
fn get_profile_policy_option_metadata(&self) -> &super::structs::ProfilePolicyOptionMetadata { &self.profile_policy_option_metadata_ }
fn get_profile_policy_option_metadata_mut(&mut self) -> &mut super::structs::ProfilePolicyOptionMetadata { &mut self.profile_policy_option_metadata_ }
}
impl ProfilePolicyOptionMetadataTrait for UserInputRequiredParameterMetadata {
fn get_profile_policy_option_metadata(&self) -> &super::structs::ProfilePolicyOptionMetadata { &self.profile_policy_option_metadata_ }
fn get_profile_policy_option_metadata_mut(&mut self) -> &mut super::structs::ProfilePolicyOptionMetadata { &mut self.profile_policy_option_metadata_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfilePolicyOptionMetadataTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfilePolicyOptionMetadata => Some(from.as_any_ref().downcast_ref::<ProfilePolicyOptionMetadata>()?),
StructType::ProfileCompositePolicyOptionMetadata => Some(from.as_any_ref().downcast_ref::<ProfileCompositePolicyOptionMetadata>()?),
StructType::UserInputRequiredParameterMetadata => Some(from.as_any_ref().downcast_ref::<UserInputRequiredParameterMetadata>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfilePolicyOptionMetadata => Ok(from.as_any_box().downcast::<ProfilePolicyOptionMetadata>()?),
StructType::ProfileCompositePolicyOptionMetadata => Ok(from.as_any_box().downcast::<ProfileCompositePolicyOptionMetadata>()?),
StructType::UserInputRequiredParameterMetadata => Ok(from.as_any_box().downcast::<UserInputRequiredParameterMetadata>()?),
_ => Err(from.as_any_box()),
}
}
}
/// ### How to access
/// - `HostProfile::config`
/// - `Profile::config`
/// - `ClusterProfile::config`
pub trait ProfileConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the ProfileConfigInfo parent struct
fn get_profile_config_info(&self) -> &super::structs::ProfileConfigInfo;
/// Get a mutable reference to the ProfileConfigInfo parent struct
fn get_profile_config_info_mut(&mut self) -> &mut super::structs::ProfileConfigInfo;
}
impl std::ops::Deref for dyn ProfileConfigInfoTrait {
type Target = super::structs::ProfileConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_profile_config_info()
}
}
impl std::ops::DerefMut for dyn ProfileConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfileConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfileConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfileConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfileConfigInfo"),
__out: &mut self.out,
}))
}
}
struct ProfileConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfileConfigInfoTrait>>,
}
impl miniserde::de::Map for ProfileConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfileConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfileConfigInfoTrait for ProfileConfigInfo {
fn get_profile_config_info(&self) -> &super::structs::ProfileConfigInfo { &self }
fn get_profile_config_info_mut(&mut self) -> &mut super::structs::ProfileConfigInfo { self }
}
impl ProfileConfigInfoTrait for ClusterProfileConfigInfo {
fn get_profile_config_info(&self) -> &super::structs::ProfileConfigInfo { &self.profile_config_info_ }
fn get_profile_config_info_mut(&mut self) -> &mut super::structs::ProfileConfigInfo { &mut self.profile_config_info_ }
}
impl ProfileConfigInfoTrait for HostProfileConfigInfo {
fn get_profile_config_info(&self) -> &super::structs::ProfileConfigInfo { &self.profile_config_info_ }
fn get_profile_config_info_mut(&mut self) -> &mut super::structs::ProfileConfigInfo { &mut self.profile_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfileConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<ProfileConfigInfo>()?),
StructType::ClusterProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigInfo>()?),
StructType::HostProfileConfigInfo => Some(from.as_any_ref().downcast_ref::<HostProfileConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfileConfigInfo => Ok(from.as_any_box().downcast::<ProfileConfigInfo>()?),
StructType::ClusterProfileConfigInfo => Ok(from.as_any_box().downcast::<ClusterProfileConfigInfo>()?),
StructType::HostProfileConfigInfo => Ok(from.as_any_box().downcast::<HostProfileConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification describing the parameters during Profile creation
///
/// ### How to access
/// - `HostProfileManager::create_profile(create_spec)`
/// - `ProfileManager::create_profile(create_spec)`
/// - `ClusterProfileManager::create_profile(create_spec)`
pub trait ProfileCreateSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the ProfileCreateSpec parent struct
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec;
/// Get a mutable reference to the ProfileCreateSpec parent struct
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec;
}
impl std::ops::Deref for dyn ProfileCreateSpecTrait {
type Target = super::structs::ProfileCreateSpec;
fn deref(&self) -> &Self::Target {
self.get_profile_create_spec()
}
}
impl std::ops::DerefMut for dyn ProfileCreateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_create_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfileCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfileCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfileCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfileCreateSpec"),
__out: &mut self.out,
}))
}
}
struct ProfileCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfileCreateSpecTrait>>,
}
impl miniserde::de::Map for ProfileCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfileCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfileCreateSpecTrait for ProfileCreateSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { self }
}
impl ProfileCreateSpecTrait for ProfileSerializedCreateSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for HostProfileSerializedHostProfileSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.profile_serialized_create_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.profile_serialized_create_spec_.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for ClusterProfileCreateSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for ClusterProfileConfigSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.cluster_profile_create_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.cluster_profile_create_spec_.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for ClusterProfileCompleteConfigSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.cluster_profile_config_spec_.cluster_profile_create_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.cluster_profile_config_spec_.cluster_profile_create_spec_.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for ClusterProfileConfigServiceCreateSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.cluster_profile_config_spec_.cluster_profile_create_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.cluster_profile_config_spec_.cluster_profile_create_spec_.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for HostProfileConfigSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for HostProfileCompleteConfigSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.host_profile_config_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.host_profile_config_spec_.profile_create_spec_ }
}
impl ProfileCreateSpecTrait for HostProfileHostBasedConfigSpec {
fn get_profile_create_spec(&self) -> &super::structs::ProfileCreateSpec { &self.host_profile_config_spec_.profile_create_spec_ }
fn get_profile_create_spec_mut(&mut self) -> &mut super::structs::ProfileCreateSpec { &mut self.host_profile_config_spec_.profile_create_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfileCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<ProfileCreateSpec>()?),
StructType::ProfileSerializedCreateSpec => Some(from.as_any_ref().downcast_ref::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Some(from.as_any_ref().downcast_ref::<HostProfileSerializedHostProfileSpec>()?),
StructType::ClusterProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigServiceCreateSpec>()?),
StructType::HostProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileHostBasedConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfileCreateSpec => Ok(from.as_any_box().downcast::<ProfileCreateSpec>()?),
StructType::ProfileSerializedCreateSpec => Ok(from.as_any_box().downcast::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Ok(from.as_any_box().downcast::<HostProfileSerializedHostProfileSpec>()?),
StructType::ClusterProfileCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigServiceCreateSpec>()?),
StructType::HostProfileConfigSpec => Ok(from.as_any_box().downcast::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Ok(from.as_any_box().downcast::<HostProfileHostBasedConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ProfileSerializedCreateSpec* data object
/// defines a string that contains a serialized representation of a host profile.
///
/// ### How to access
/// - `HostProfileManager::create_profile(create_spec)⇒ProfileSerializedCreateSpecTrait`
/// - `ProfileManager::create_profile(create_spec)⇒ProfileSerializedCreateSpecTrait`
/// - `ClusterProfileManager::create_profile(create_spec)⇒ProfileSerializedCreateSpecTrait`
pub trait ProfileSerializedCreateSpecTrait : super::traits::ProfileCreateSpecTrait {
/// Get a reference to the ProfileSerializedCreateSpec parent struct
fn get_profile_serialized_create_spec(&self) -> &super::structs::ProfileSerializedCreateSpec;
/// Get a mutable reference to the ProfileSerializedCreateSpec parent struct
fn get_profile_serialized_create_spec_mut(&mut self) -> &mut super::structs::ProfileSerializedCreateSpec;
}
impl std::ops::Deref for dyn ProfileSerializedCreateSpecTrait {
type Target = super::structs::ProfileSerializedCreateSpec;
fn deref(&self) -> &Self::Target {
self.get_profile_serialized_create_spec()
}
}
impl std::ops::DerefMut for dyn ProfileSerializedCreateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_serialized_create_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfileSerializedCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfileSerializedCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfileSerializedCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfileSerializedCreateSpec"),
__out: &mut self.out,
}))
}
}
struct ProfileSerializedCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfileSerializedCreateSpecTrait>>,
}
impl miniserde::de::Map for ProfileSerializedCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfileSerializedCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfileSerializedCreateSpecTrait for ProfileSerializedCreateSpec {
fn get_profile_serialized_create_spec(&self) -> &super::structs::ProfileSerializedCreateSpec { &self }
fn get_profile_serialized_create_spec_mut(&mut self) -> &mut super::structs::ProfileSerializedCreateSpec { self }
}
impl ProfileSerializedCreateSpecTrait for HostProfileSerializedHostProfileSpec {
fn get_profile_serialized_create_spec(&self) -> &super::structs::ProfileSerializedCreateSpec { &self.profile_serialized_create_spec_ }
fn get_profile_serialized_create_spec_mut(&mut self) -> &mut super::structs::ProfileSerializedCreateSpec { &mut self.profile_serialized_create_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfileSerializedCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfileSerializedCreateSpec => Some(from.as_any_ref().downcast_ref::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Some(from.as_any_ref().downcast_ref::<HostProfileSerializedHostProfileSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfileSerializedCreateSpec => Ok(from.as_any_box().downcast::<ProfileSerializedCreateSpec>()?),
StructType::HostProfileSerializedHostProfileSpec => Ok(from.as_any_box().downcast::<HostProfileSerializedHostProfileSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for Cluster CreateSpecs
///
/// ### How to access
/// - `HostProfileManager::create_profile(create_spec)⇒ClusterProfileCreateSpecTrait`
/// - `ProfileManager::create_profile(create_spec)⇒ClusterProfileCreateSpecTrait`
/// - `ClusterProfileManager::create_profile(create_spec)⇒ClusterProfileCreateSpecTrait`
pub trait ClusterProfileCreateSpecTrait : super::traits::ProfileCreateSpecTrait {
/// Get a reference to the ClusterProfileCreateSpec parent struct
fn get_cluster_profile_create_spec(&self) -> &super::structs::ClusterProfileCreateSpec;
/// Get a mutable reference to the ClusterProfileCreateSpec parent struct
fn get_cluster_profile_create_spec_mut(&mut self) -> &mut super::structs::ClusterProfileCreateSpec;
}
impl std::ops::Deref for dyn ClusterProfileCreateSpecTrait {
type Target = super::structs::ClusterProfileCreateSpec;
fn deref(&self) -> &Self::Target {
self.get_cluster_profile_create_spec()
}
}
impl std::ops::DerefMut for dyn ClusterProfileCreateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_profile_create_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterProfileCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterProfileCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterProfileCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterProfileCreateSpec"),
__out: &mut self.out,
}))
}
}
struct ClusterProfileCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterProfileCreateSpecTrait>>,
}
impl miniserde::de::Map for ClusterProfileCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterProfileCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterProfileCreateSpecTrait for ClusterProfileCreateSpec {
fn get_cluster_profile_create_spec(&self) -> &super::structs::ClusterProfileCreateSpec { &self }
fn get_cluster_profile_create_spec_mut(&mut self) -> &mut super::structs::ClusterProfileCreateSpec { self }
}
impl ClusterProfileCreateSpecTrait for ClusterProfileConfigSpec {
fn get_cluster_profile_create_spec(&self) -> &super::structs::ClusterProfileCreateSpec { &self.cluster_profile_create_spec_ }
fn get_cluster_profile_create_spec_mut(&mut self) -> &mut super::structs::ClusterProfileCreateSpec { &mut self.cluster_profile_create_spec_ }
}
impl ClusterProfileCreateSpecTrait for ClusterProfileCompleteConfigSpec {
fn get_cluster_profile_create_spec(&self) -> &super::structs::ClusterProfileCreateSpec { &self.cluster_profile_config_spec_.cluster_profile_create_spec_ }
fn get_cluster_profile_create_spec_mut(&mut self) -> &mut super::structs::ClusterProfileCreateSpec { &mut self.cluster_profile_config_spec_.cluster_profile_create_spec_ }
}
impl ClusterProfileCreateSpecTrait for ClusterProfileConfigServiceCreateSpec {
fn get_cluster_profile_create_spec(&self) -> &super::structs::ClusterProfileCreateSpec { &self.cluster_profile_config_spec_.cluster_profile_create_spec_ }
fn get_cluster_profile_create_spec_mut(&mut self) -> &mut super::structs::ClusterProfileCreateSpec { &mut self.cluster_profile_config_spec_.cluster_profile_create_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterProfileCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterProfileCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigServiceCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterProfileCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileCreateSpec>()?),
StructType::ClusterProfileConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigServiceCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// DataObject which is a baseclass for other configuration
/// specifications.
///
/// ### How to access
/// - `ClusterProfile::update_cluster_profile(config)`
/// - `HostProfileManager::create_profile(create_spec)⇒ClusterProfileConfigSpecTrait`
/// - `ProfileManager::create_profile(create_spec)⇒ClusterProfileConfigSpecTrait`
/// - `ClusterProfileManager::create_profile(create_spec)⇒ClusterProfileConfigSpecTrait`
pub trait ClusterProfileConfigSpecTrait : super::traits::ClusterProfileCreateSpecTrait {
/// Get a reference to the ClusterProfileConfigSpec parent struct
fn get_cluster_profile_config_spec(&self) -> &super::structs::ClusterProfileConfigSpec;
/// Get a mutable reference to the ClusterProfileConfigSpec parent struct
fn get_cluster_profile_config_spec_mut(&mut self) -> &mut super::structs::ClusterProfileConfigSpec;
}
impl std::ops::Deref for dyn ClusterProfileConfigSpecTrait {
type Target = super::structs::ClusterProfileConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_cluster_profile_config_spec()
}
}
impl std::ops::DerefMut for dyn ClusterProfileConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_cluster_profile_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ClusterProfileConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ClusterProfileConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ClusterProfileConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ClusterProfileConfigSpec"),
__out: &mut self.out,
}))
}
}
struct ClusterProfileConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ClusterProfileConfigSpecTrait>>,
}
impl miniserde::de::Map for ClusterProfileConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ClusterProfileConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ClusterProfileConfigSpecTrait for ClusterProfileConfigSpec {
fn get_cluster_profile_config_spec(&self) -> &super::structs::ClusterProfileConfigSpec { &self }
fn get_cluster_profile_config_spec_mut(&mut self) -> &mut super::structs::ClusterProfileConfigSpec { self }
}
impl ClusterProfileConfigSpecTrait for ClusterProfileCompleteConfigSpec {
fn get_cluster_profile_config_spec(&self) -> &super::structs::ClusterProfileConfigSpec { &self.cluster_profile_config_spec_ }
fn get_cluster_profile_config_spec_mut(&mut self) -> &mut super::structs::ClusterProfileConfigSpec { &mut self.cluster_profile_config_spec_ }
}
impl ClusterProfileConfigSpecTrait for ClusterProfileConfigServiceCreateSpec {
fn get_cluster_profile_config_spec(&self) -> &super::structs::ClusterProfileConfigSpec { &self.cluster_profile_config_spec_ }
fn get_cluster_profile_config_spec_mut(&mut self) -> &mut super::structs::ClusterProfileConfigSpec { &mut self.cluster_profile_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ClusterProfileConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ClusterProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Some(from.as_any_ref().downcast_ref::<ClusterProfileConfigServiceCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ClusterProfileConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigSpec>()?),
StructType::ClusterProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<ClusterProfileCompleteConfigSpec>()?),
StructType::ClusterProfileConfigServiceCreateSpec => Ok(from.as_any_box().downcast::<ClusterProfileConfigServiceCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// *HostProfileConfigSpec* is the base data object
/// for all *HostProfile* configuration specifications.
///
/// ### How to access
/// - `HostProfile::update_host_profile(config)`
/// - `HostProfileManager::create_profile(create_spec)⇒HostProfileConfigSpecTrait`
/// - `ProfileManager::create_profile(create_spec)⇒HostProfileConfigSpecTrait`
/// - `ClusterProfileManager::create_profile(create_spec)⇒HostProfileConfigSpecTrait`
pub trait HostProfileConfigSpecTrait : super::traits::ProfileCreateSpecTrait {
/// Get a reference to the HostProfileConfigSpec parent struct
fn get_host_profile_config_spec(&self) -> &super::structs::HostProfileConfigSpec;
/// Get a mutable reference to the HostProfileConfigSpec parent struct
fn get_host_profile_config_spec_mut(&mut self) -> &mut super::structs::HostProfileConfigSpec;
}
impl std::ops::Deref for dyn HostProfileConfigSpecTrait {
type Target = super::structs::HostProfileConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_host_profile_config_spec()
}
}
impl std::ops::DerefMut for dyn HostProfileConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_host_profile_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn HostProfileConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostProfileConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostProfileConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostProfileConfigSpec"),
__out: &mut self.out,
}))
}
}
struct HostProfileConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostProfileConfigSpecTrait>>,
}
impl miniserde::de::Map for HostProfileConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostProfileConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostProfileConfigSpecTrait for HostProfileConfigSpec {
fn get_host_profile_config_spec(&self) -> &super::structs::HostProfileConfigSpec { &self }
fn get_host_profile_config_spec_mut(&mut self) -> &mut super::structs::HostProfileConfigSpec { self }
}
impl HostProfileConfigSpecTrait for HostProfileCompleteConfigSpec {
fn get_host_profile_config_spec(&self) -> &super::structs::HostProfileConfigSpec { &self.host_profile_config_spec_ }
fn get_host_profile_config_spec_mut(&mut self) -> &mut super::structs::HostProfileConfigSpec { &mut self.host_profile_config_spec_ }
}
impl HostProfileConfigSpecTrait for HostProfileHostBasedConfigSpec {
fn get_host_profile_config_spec(&self) -> &super::structs::HostProfileConfigSpec { &self.host_profile_config_spec_ }
fn get_host_profile_config_spec_mut(&mut self) -> &mut super::structs::HostProfileConfigSpec { &mut self.host_profile_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostProfileConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostProfileConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Some(from.as_any_ref().downcast_ref::<HostProfileHostBasedConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostProfileConfigSpec => Ok(from.as_any_box().downcast::<HostProfileConfigSpec>()?),
StructType::HostProfileCompleteConfigSpec => Ok(from.as_any_box().downcast::<HostProfileCompleteConfigSpec>()?),
StructType::HostProfileHostBasedConfigSpec => Ok(from.as_any_box().downcast::<HostProfileHostBasedConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *ProfileExecuteResult* data object contains the results from a
/// *HostProfile*.*HostProfile.ExecuteHostProfile*
/// operation.
///
/// ### How to access
/// - `HostProfile::execute_host_profile()`
pub trait ProfileExecuteResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the ProfileExecuteResult parent struct
fn get_profile_execute_result(&self) -> &super::structs::ProfileExecuteResult;
/// Get a mutable reference to the ProfileExecuteResult parent struct
fn get_profile_execute_result_mut(&mut self) -> &mut super::structs::ProfileExecuteResult;
}
impl std::ops::Deref for dyn ProfileExecuteResultTrait {
type Target = super::structs::ProfileExecuteResult;
fn deref(&self) -> &Self::Target {
self.get_profile_execute_result()
}
}
impl std::ops::DerefMut for dyn ProfileExecuteResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_profile_execute_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn ProfileExecuteResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ProfileExecuteResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ProfileExecuteResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ProfileExecuteResult"),
__out: &mut self.out,
}))
}
}
struct ProfileExecuteResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ProfileExecuteResultTrait>>,
}
impl miniserde::de::Map for ProfileExecuteResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ProfileExecuteResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ProfileExecuteResultTrait for ProfileExecuteResult {
fn get_profile_execute_result(&self) -> &super::structs::ProfileExecuteResult { &self }
fn get_profile_execute_result_mut(&mut self) -> &mut super::structs::ProfileExecuteResult { self }
}
impl ProfileExecuteResultTrait for ApplyHostProfileConfigurationSpec {
fn get_profile_execute_result(&self) -> &super::structs::ProfileExecuteResult { &self.profile_execute_result_ }
fn get_profile_execute_result_mut(&mut self) -> &mut super::structs::ProfileExecuteResult { &mut self.profile_execute_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ProfileExecuteResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ProfileExecuteResult => Some(from.as_any_ref().downcast_ref::<ProfileExecuteResult>()?),
StructType::ApplyHostProfileConfigurationSpec => Some(from.as_any_ref().downcast_ref::<ApplyHostProfileConfigurationSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ProfileExecuteResult => Ok(from.as_any_box().downcast::<ProfileExecuteResult>()?),
StructType::ApplyHostProfileConfigurationSpec => Ok(from.as_any_box().downcast::<ApplyHostProfileConfigurationSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for host-specific answer file options.
///
/// ### How to access
/// - `HostProfileManager::update_answer_file_task(config_spec)`
pub trait AnswerFileCreateSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the AnswerFileCreateSpec parent struct
fn get_answer_file_create_spec(&self) -> &super::structs::AnswerFileCreateSpec;
/// Get a mutable reference to the AnswerFileCreateSpec parent struct
fn get_answer_file_create_spec_mut(&mut self) -> &mut super::structs::AnswerFileCreateSpec;
}
impl std::ops::Deref for dyn AnswerFileCreateSpecTrait {
type Target = super::structs::AnswerFileCreateSpec;
fn deref(&self) -> &Self::Target {
self.get_answer_file_create_spec()
}
}
impl std::ops::DerefMut for dyn AnswerFileCreateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_answer_file_create_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn AnswerFileCreateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn AnswerFileCreateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(AnswerFileCreateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("AnswerFileCreateSpec"),
__out: &mut self.out,
}))
}
}
struct AnswerFileCreateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn AnswerFileCreateSpecTrait>>,
}
impl miniserde::de::Map for AnswerFileCreateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn AnswerFileCreateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl AnswerFileCreateSpecTrait for AnswerFileCreateSpec {
fn get_answer_file_create_spec(&self) -> &super::structs::AnswerFileCreateSpec { &self }
fn get_answer_file_create_spec_mut(&mut self) -> &mut super::structs::AnswerFileCreateSpec { self }
}
impl AnswerFileCreateSpecTrait for AnswerFileOptionsCreateSpec {
fn get_answer_file_create_spec(&self) -> &super::structs::AnswerFileCreateSpec { &self.answer_file_create_spec_ }
fn get_answer_file_create_spec_mut(&mut self) -> &mut super::structs::AnswerFileCreateSpec { &mut self.answer_file_create_spec_ }
}
impl AnswerFileCreateSpecTrait for AnswerFileSerializedCreateSpec {
fn get_answer_file_create_spec(&self) -> &super::structs::AnswerFileCreateSpec { &self.answer_file_create_spec_ }
fn get_answer_file_create_spec_mut(&mut self) -> &mut super::structs::AnswerFileCreateSpec { &mut self.answer_file_create_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn AnswerFileCreateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::AnswerFileCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileCreateSpec>()?),
StructType::AnswerFileOptionsCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileOptionsCreateSpec>()?),
StructType::AnswerFileSerializedCreateSpec => Some(from.as_any_ref().downcast_ref::<AnswerFileSerializedCreateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::AnswerFileCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileCreateSpec>()?),
StructType::AnswerFileOptionsCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileOptionsCreateSpec>()?),
StructType::AnswerFileSerializedCreateSpec => Ok(from.as_any_box().downcast::<AnswerFileSerializedCreateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Data type used to contain a representation of host or cluster customization
/// data in a *HostProfilesCustomizationData* object.
///
/// Subclasses of this must be defined to provide host or cluster customization
/// data in specific formats.
pub trait HostProfilesEntityCustomizationsTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn HostProfilesEntityCustomizationsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HostProfilesEntityCustomizationsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HostProfilesEntityCustomizationsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HostProfilesEntityCustomizations"),
__out: &mut self.out,
}))
}
}
struct HostProfilesEntityCustomizationsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HostProfilesEntityCustomizationsTrait>>,
}
impl miniserde::de::Map for HostProfilesEntityCustomizationsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HostProfilesEntityCustomizationsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HostProfilesEntityCustomizationsTrait for HostProfilesEntityCustomizations {
}
impl HostProfilesEntityCustomizationsTrait for StructuredCustomizations {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HostProfilesEntityCustomizationsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HostProfilesEntityCustomizations => Some(from.as_any_ref().downcast_ref::<HostProfilesEntityCustomizations>()?),
StructType::StructuredCustomizations => Some(from.as_any_ref().downcast_ref::<StructuredCustomizations>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HostProfilesEntityCustomizations => Ok(from.as_any_box().downcast::<HostProfilesEntityCustomizations>()?),
StructType::StructuredCustomizations => Ok(from.as_any_box().downcast::<StructuredCustomizations>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Parameters for scheduled task creation.
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec)`
/// - `ScheduledTaskManager::create_scheduled_task(spec)`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec)`
pub trait ScheduledTaskSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the ScheduledTaskSpec parent struct
fn get_scheduled_task_spec(&self) -> &super::structs::ScheduledTaskSpec;
/// Get a mutable reference to the ScheduledTaskSpec parent struct
fn get_scheduled_task_spec_mut(&mut self) -> &mut super::structs::ScheduledTaskSpec;
}
impl std::ops::Deref for dyn ScheduledTaskSpecTrait {
type Target = super::structs::ScheduledTaskSpec;
fn deref(&self) -> &Self::Target {
self.get_scheduled_task_spec()
}
}
impl std::ops::DerefMut for dyn ScheduledTaskSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_scheduled_task_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn ScheduledTaskSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn ScheduledTaskSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(ScheduledTaskSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("ScheduledTaskSpec"),
__out: &mut self.out,
}))
}
}
struct ScheduledTaskSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn ScheduledTaskSpecTrait>>,
}
impl miniserde::de::Map for ScheduledTaskSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn ScheduledTaskSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl ScheduledTaskSpecTrait for ScheduledTaskSpec {
fn get_scheduled_task_spec(&self) -> &super::structs::ScheduledTaskSpec { &self }
fn get_scheduled_task_spec_mut(&mut self) -> &mut super::structs::ScheduledTaskSpec { self }
}
impl ScheduledTaskSpecTrait for ScheduledTaskInfo {
fn get_scheduled_task_spec(&self) -> &super::structs::ScheduledTaskSpec { &self.scheduled_task_spec_ }
fn get_scheduled_task_spec_mut(&mut self) -> &mut super::structs::ScheduledTaskSpec { &mut self.scheduled_task_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn ScheduledTaskSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::ScheduledTaskSpec => Some(from.as_any_ref().downcast_ref::<ScheduledTaskSpec>()?),
StructType::ScheduledTaskInfo => Some(from.as_any_ref().downcast_ref::<ScheduledTaskInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::ScheduledTaskSpec => Ok(from.as_any_box().downcast::<ScheduledTaskSpec>()?),
StructType::ScheduledTaskInfo => Ok(from.as_any_box().downcast::<ScheduledTaskInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *TaskScheduler* data object is the base type for the scheduler objects.
///
/// The hierarchy of scheduler objects is as follows:
///
/// TaskScheduler
/// *AfterStartupTaskScheduler*
/// *OnceTaskScheduler*
/// *RecurrentTaskScheduler*
/// *HourlyTaskScheduler*
/// *DailyTaskScheduler*
/// *WeeklyTaskScheduler*
/// *MonthlyTaskScheduler*
/// *MonthlyByDayTaskScheduler*
/// *MonthlyByWeekdayTaskScheduler*
///
/// Use a scheduler object to set the time(s) for task execution.
/// You can use two scheduling modes - single execution or
/// recurring execution:
/// - Use the *AfterStartupTaskScheduler* or the *OnceTaskScheduler*
/// to schedule a single instance of task execution.
/// - Use one of the recurrent task schedulers to schedule
/// hourly, daily, weekly, or monthly task execution.
///
/// After you have established the task timing, use the scheduler
/// object for the *ScheduledTaskSpec*
/// *ScheduledTaskSpec.scheduler* property value.
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).scheduler`
/// - `ScheduledTaskManager::create_scheduled_task(spec).scheduler`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).scheduler`
pub trait TaskSchedulerTrait : super::traits::DataObjectTrait {
/// Get a reference to the TaskScheduler parent struct
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler;
/// Get a mutable reference to the TaskScheduler parent struct
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler;
}
impl std::ops::Deref for dyn TaskSchedulerTrait {
type Target = super::structs::TaskScheduler;
fn deref(&self) -> &Self::Target {
self.get_task_scheduler()
}
}
impl std::ops::DerefMut for dyn TaskSchedulerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_task_scheduler_mut()
}
}
impl miniserde::Deserialize for Box<dyn TaskSchedulerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn TaskSchedulerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(TaskSchedulerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("TaskScheduler"),
__out: &mut self.out,
}))
}
}
struct TaskSchedulerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn TaskSchedulerTrait>>,
}
impl miniserde::de::Map for TaskSchedulerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn TaskSchedulerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl TaskSchedulerTrait for TaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { self }
}
impl TaskSchedulerTrait for AfterStartupTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.task_scheduler_ }
}
impl TaskSchedulerTrait for OnceTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.task_scheduler_ }
}
impl TaskSchedulerTrait for RecurrentTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.task_scheduler_ }
}
impl TaskSchedulerTrait for HourlyTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.recurrent_task_scheduler_.task_scheduler_ }
}
impl TaskSchedulerTrait for DailyTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
}
impl TaskSchedulerTrait for MonthlyTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
}
impl TaskSchedulerTrait for MonthlyByDayTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
}
impl TaskSchedulerTrait for MonthlyByWeekdayTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
}
impl TaskSchedulerTrait for WeeklyTaskScheduler {
fn get_task_scheduler(&self) -> &super::structs::TaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
fn get_task_scheduler_mut(&mut self) -> &mut super::structs::TaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_.task_scheduler_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn TaskSchedulerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::TaskScheduler => Some(from.as_any_ref().downcast_ref::<TaskScheduler>()?),
StructType::AfterStartupTaskScheduler => Some(from.as_any_ref().downcast_ref::<AfterStartupTaskScheduler>()?),
StructType::OnceTaskScheduler => Some(from.as_any_ref().downcast_ref::<OnceTaskScheduler>()?),
StructType::RecurrentTaskScheduler => Some(from.as_any_ref().downcast_ref::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Some(from.as_any_ref().downcast_ref::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Some(from.as_any_ref().downcast_ref::<WeeklyTaskScheduler>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::TaskScheduler => Ok(from.as_any_box().downcast::<TaskScheduler>()?),
StructType::AfterStartupTaskScheduler => Ok(from.as_any_box().downcast::<AfterStartupTaskScheduler>()?),
StructType::OnceTaskScheduler => Ok(from.as_any_box().downcast::<OnceTaskScheduler>()?),
StructType::RecurrentTaskScheduler => Ok(from.as_any_box().downcast::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Ok(from.as_any_box().downcast::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Ok(from.as_any_box().downcast::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Ok(from.as_any_box().downcast::<WeeklyTaskScheduler>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *RecurrentTaskScheduler* data object is the base type for
/// the hierarchy that includes hourly, daily, weekly, and monthly task schedulers.
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).scheduler⇒RecurrentTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_scheduled_task(spec).scheduler⇒RecurrentTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).scheduler⇒RecurrentTaskSchedulerTrait`
pub trait RecurrentTaskSchedulerTrait : super::traits::TaskSchedulerTrait {
/// Get a reference to the RecurrentTaskScheduler parent struct
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler;
/// Get a mutable reference to the RecurrentTaskScheduler parent struct
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler;
}
impl std::ops::Deref for dyn RecurrentTaskSchedulerTrait {
type Target = super::structs::RecurrentTaskScheduler;
fn deref(&self) -> &Self::Target {
self.get_recurrent_task_scheduler()
}
}
impl std::ops::DerefMut for dyn RecurrentTaskSchedulerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_recurrent_task_scheduler_mut()
}
}
impl miniserde::Deserialize for Box<dyn RecurrentTaskSchedulerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn RecurrentTaskSchedulerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(RecurrentTaskSchedulerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("RecurrentTaskScheduler"),
__out: &mut self.out,
}))
}
}
struct RecurrentTaskSchedulerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn RecurrentTaskSchedulerTrait>>,
}
impl miniserde::de::Map for RecurrentTaskSchedulerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn RecurrentTaskSchedulerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl RecurrentTaskSchedulerTrait for RecurrentTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { self }
}
impl RecurrentTaskSchedulerTrait for HourlyTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.recurrent_task_scheduler_ }
}
impl RecurrentTaskSchedulerTrait for DailyTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.hourly_task_scheduler_.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.hourly_task_scheduler_.recurrent_task_scheduler_ }
}
impl RecurrentTaskSchedulerTrait for MonthlyTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
}
impl RecurrentTaskSchedulerTrait for MonthlyByDayTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
}
impl RecurrentTaskSchedulerTrait for MonthlyByWeekdayTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
}
impl RecurrentTaskSchedulerTrait for WeeklyTaskScheduler {
fn get_recurrent_task_scheduler(&self) -> &super::structs::RecurrentTaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
fn get_recurrent_task_scheduler_mut(&mut self) -> &mut super::structs::RecurrentTaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_.recurrent_task_scheduler_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn RecurrentTaskSchedulerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::RecurrentTaskScheduler => Some(from.as_any_ref().downcast_ref::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Some(from.as_any_ref().downcast_ref::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Some(from.as_any_ref().downcast_ref::<WeeklyTaskScheduler>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::RecurrentTaskScheduler => Ok(from.as_any_box().downcast::<RecurrentTaskScheduler>()?),
StructType::HourlyTaskScheduler => Ok(from.as_any_box().downcast::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Ok(from.as_any_box().downcast::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Ok(from.as_any_box().downcast::<WeeklyTaskScheduler>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *HourlyTaskScheduler* data object sets the time for hourly
/// task execution.
///
/// By default, the scheduled task will run once every hour,
/// at the specified minute.
///
/// If you set the interval to a value greater than 1, the task will
/// execute at the specified hourly interval. (For example, an interval
/// of 2 will cause the task to execute at the specified minute every 2 hours.)
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).scheduler⇒HourlyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_scheduled_task(spec).scheduler⇒HourlyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).scheduler⇒HourlyTaskSchedulerTrait`
pub trait HourlyTaskSchedulerTrait : super::traits::RecurrentTaskSchedulerTrait {
/// Get a reference to the HourlyTaskScheduler parent struct
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler;
/// Get a mutable reference to the HourlyTaskScheduler parent struct
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler;
}
impl std::ops::Deref for dyn HourlyTaskSchedulerTrait {
type Target = super::structs::HourlyTaskScheduler;
fn deref(&self) -> &Self::Target {
self.get_hourly_task_scheduler()
}
}
impl std::ops::DerefMut for dyn HourlyTaskSchedulerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_hourly_task_scheduler_mut()
}
}
impl miniserde::Deserialize for Box<dyn HourlyTaskSchedulerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn HourlyTaskSchedulerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(HourlyTaskSchedulerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("HourlyTaskScheduler"),
__out: &mut self.out,
}))
}
}
struct HourlyTaskSchedulerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn HourlyTaskSchedulerTrait>>,
}
impl miniserde::de::Map for HourlyTaskSchedulerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn HourlyTaskSchedulerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl HourlyTaskSchedulerTrait for HourlyTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { self }
}
impl HourlyTaskSchedulerTrait for DailyTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self.hourly_task_scheduler_ }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { &mut self.hourly_task_scheduler_ }
}
impl HourlyTaskSchedulerTrait for MonthlyTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_ }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_ }
}
impl HourlyTaskSchedulerTrait for MonthlyByDayTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_ }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_ }
}
impl HourlyTaskSchedulerTrait for MonthlyByWeekdayTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_ }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_.hourly_task_scheduler_ }
}
impl HourlyTaskSchedulerTrait for WeeklyTaskScheduler {
fn get_hourly_task_scheduler(&self) -> &super::structs::HourlyTaskScheduler { &self.daily_task_scheduler_.hourly_task_scheduler_ }
fn get_hourly_task_scheduler_mut(&mut self) -> &mut super::structs::HourlyTaskScheduler { &mut self.daily_task_scheduler_.hourly_task_scheduler_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn HourlyTaskSchedulerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::HourlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Some(from.as_any_ref().downcast_ref::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Some(from.as_any_ref().downcast_ref::<WeeklyTaskScheduler>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::HourlyTaskScheduler => Ok(from.as_any_box().downcast::<HourlyTaskScheduler>()?),
StructType::DailyTaskScheduler => Ok(from.as_any_box().downcast::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Ok(from.as_any_box().downcast::<WeeklyTaskScheduler>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *DailyTaskScheduler* data object sets the time for daily
/// task execution.
///
/// You set the hour and the inherited minute
/// property to complete the schedule. By default, the scheduled task
/// will run once every day at the specified hour and minute.
///
/// If you set the interval to a value greater than 1, the task will
/// execute at the specified daily interval. (For example, an interval
/// of 2 will cause the task to execute at the specified hour and minute
/// every 2 days.)
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).scheduler⇒DailyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_scheduled_task(spec).scheduler⇒DailyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).scheduler⇒DailyTaskSchedulerTrait`
pub trait DailyTaskSchedulerTrait : super::traits::HourlyTaskSchedulerTrait {
/// Get a reference to the DailyTaskScheduler parent struct
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler;
/// Get a mutable reference to the DailyTaskScheduler parent struct
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler;
}
impl std::ops::Deref for dyn DailyTaskSchedulerTrait {
type Target = super::structs::DailyTaskScheduler;
fn deref(&self) -> &Self::Target {
self.get_daily_task_scheduler()
}
}
impl std::ops::DerefMut for dyn DailyTaskSchedulerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_daily_task_scheduler_mut()
}
}
impl miniserde::Deserialize for Box<dyn DailyTaskSchedulerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn DailyTaskSchedulerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(DailyTaskSchedulerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("DailyTaskScheduler"),
__out: &mut self.out,
}))
}
}
struct DailyTaskSchedulerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn DailyTaskSchedulerTrait>>,
}
impl miniserde::de::Map for DailyTaskSchedulerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn DailyTaskSchedulerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl DailyTaskSchedulerTrait for DailyTaskScheduler {
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler { &self }
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler { self }
}
impl DailyTaskSchedulerTrait for MonthlyTaskScheduler {
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler { &self.daily_task_scheduler_ }
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler { &mut self.daily_task_scheduler_ }
}
impl DailyTaskSchedulerTrait for MonthlyByDayTaskScheduler {
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_ }
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_ }
}
impl DailyTaskSchedulerTrait for MonthlyByWeekdayTaskScheduler {
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler { &self.monthly_task_scheduler_.daily_task_scheduler_ }
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler { &mut self.monthly_task_scheduler_.daily_task_scheduler_ }
}
impl DailyTaskSchedulerTrait for WeeklyTaskScheduler {
fn get_daily_task_scheduler(&self) -> &super::structs::DailyTaskScheduler { &self.daily_task_scheduler_ }
fn get_daily_task_scheduler_mut(&mut self) -> &mut super::structs::DailyTaskScheduler { &mut self.daily_task_scheduler_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn DailyTaskSchedulerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::DailyTaskScheduler => Some(from.as_any_ref().downcast_ref::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Some(from.as_any_ref().downcast_ref::<WeeklyTaskScheduler>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::DailyTaskScheduler => Ok(from.as_any_box().downcast::<DailyTaskScheduler>()?),
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
StructType::WeeklyTaskScheduler => Ok(from.as_any_box().downcast::<WeeklyTaskScheduler>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *MonthlyTaskScheduler* data object is the base type for
/// the monthly schedulers (*MonthlyByDayTaskScheduler* and
/// *MonthlyByWeekdayTaskScheduler*).
///
/// ### How to access
/// - `ScheduledTask::reconfigure_scheduled_task(spec).scheduler⇒MonthlyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_scheduled_task(spec).scheduler⇒MonthlyTaskSchedulerTrait`
/// - `ScheduledTaskManager::create_object_scheduled_task(spec).scheduler⇒MonthlyTaskSchedulerTrait`
pub trait MonthlyTaskSchedulerTrait : super::traits::DailyTaskSchedulerTrait {
/// Get a reference to the MonthlyTaskScheduler parent struct
fn get_monthly_task_scheduler(&self) -> &super::structs::MonthlyTaskScheduler;
/// Get a mutable reference to the MonthlyTaskScheduler parent struct
fn get_monthly_task_scheduler_mut(&mut self) -> &mut super::structs::MonthlyTaskScheduler;
}
impl std::ops::Deref for dyn MonthlyTaskSchedulerTrait {
type Target = super::structs::MonthlyTaskScheduler;
fn deref(&self) -> &Self::Target {
self.get_monthly_task_scheduler()
}
}
impl std::ops::DerefMut for dyn MonthlyTaskSchedulerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_monthly_task_scheduler_mut()
}
}
impl miniserde::Deserialize for Box<dyn MonthlyTaskSchedulerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn MonthlyTaskSchedulerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(MonthlyTaskSchedulerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("MonthlyTaskScheduler"),
__out: &mut self.out,
}))
}
}
struct MonthlyTaskSchedulerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn MonthlyTaskSchedulerTrait>>,
}
impl miniserde::de::Map for MonthlyTaskSchedulerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn MonthlyTaskSchedulerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl MonthlyTaskSchedulerTrait for MonthlyTaskScheduler {
fn get_monthly_task_scheduler(&self) -> &super::structs::MonthlyTaskScheduler { &self }
fn get_monthly_task_scheduler_mut(&mut self) -> &mut super::structs::MonthlyTaskScheduler { self }
}
impl MonthlyTaskSchedulerTrait for MonthlyByDayTaskScheduler {
fn get_monthly_task_scheduler(&self) -> &super::structs::MonthlyTaskScheduler { &self.monthly_task_scheduler_ }
fn get_monthly_task_scheduler_mut(&mut self) -> &mut super::structs::MonthlyTaskScheduler { &mut self.monthly_task_scheduler_ }
}
impl MonthlyTaskSchedulerTrait for MonthlyByWeekdayTaskScheduler {
fn get_monthly_task_scheduler(&self) -> &super::structs::MonthlyTaskScheduler { &self.monthly_task_scheduler_ }
fn get_monthly_task_scheduler_mut(&mut self) -> &mut super::structs::MonthlyTaskScheduler { &mut self.monthly_task_scheduler_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn MonthlyTaskSchedulerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::MonthlyTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Some(from.as_any_ref().downcast_ref::<MonthlyByWeekdayTaskScheduler>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::MonthlyTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyTaskScheduler>()?),
StructType::MonthlyByDayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByDayTaskScheduler>()?),
StructType::MonthlyByWeekdayTaskScheduler => Ok(from.as_any_box().downcast::<MonthlyByWeekdayTaskScheduler>()?),
_ => Err(from.as_any_box()),
}
}
}
/// VM Configuration.
///
/// ### How to access
/// - `VirtualMachine::config.v_app_config?`
/// - `VirtualMachineSnapshot::config.v_app_config?`
/// - `HostSystem::query_memory_overhead_ex(vm_config_info).v_app_config?`
pub trait VmConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VmConfigInfo parent struct
fn get_vm_config_info(&self) -> &super::structs::VmConfigInfo;
/// Get a mutable reference to the VmConfigInfo parent struct
fn get_vm_config_info_mut(&mut self) -> &mut super::structs::VmConfigInfo;
}
impl std::ops::Deref for dyn VmConfigInfoTrait {
type Target = super::structs::VmConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_vm_config_info()
}
}
impl std::ops::DerefMut for dyn VmConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmConfigInfo"),
__out: &mut self.out,
}))
}
}
struct VmConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmConfigInfoTrait>>,
}
impl miniserde::de::Map for VmConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmConfigInfoTrait for VmConfigInfo {
fn get_vm_config_info(&self) -> &super::structs::VmConfigInfo { &self }
fn get_vm_config_info_mut(&mut self) -> &mut super::structs::VmConfigInfo { self }
}
impl VmConfigInfoTrait for VAppConfigInfo {
fn get_vm_config_info(&self) -> &super::structs::VmConfigInfo { &self.vm_config_info_ }
fn get_vm_config_info_mut(&mut self) -> &mut super::structs::VmConfigInfo { &mut self.vm_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigInfo => Some(from.as_any_ref().downcast_ref::<VmConfigInfo>()?),
StructType::VAppConfigInfo => Some(from.as_any_ref().downcast_ref::<VAppConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigInfo => Ok(from.as_any_box().downcast::<VmConfigInfo>()?),
StructType::VAppConfigInfo => Ok(from.as_any_box().downcast::<VAppConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// vApp related configuration of a VM.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.v_app_config?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→ClusterClusterInitialPlacementAction.config_spec?.v_app_config?`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.v_app_config?`
/// - `ClusterComputeResource::recommendation.action?[*]→ClusterClusterInitialPlacementAction.config_spec?.v_app_config?`
/// - `VirtualMachine::reconfig_vm_task(spec).v_app_config?`
/// - `VirtualMachine::clone_vm_task(spec).config?.v_app_config?`
/// - `Folder::create_vm_task(config).v_app_config?`
/// - `ResourcePool::create_child_vm_task(config).v_app_config?`
/// - `ResourcePool::import_v_app(spec)→VirtualMachineImportSpec.config_spec.v_app_config?`
/// - `Datastore::datastore_enter_maintenance_mode().recommendations?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.v_app_config?`
///
/// *(10 of 23 paths)*
pub trait VmConfigSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VmConfigSpec parent struct
fn get_vm_config_spec(&self) -> &super::structs::VmConfigSpec;
/// Get a mutable reference to the VmConfigSpec parent struct
fn get_vm_config_spec_mut(&mut self) -> &mut super::structs::VmConfigSpec;
}
impl std::ops::Deref for dyn VmConfigSpecTrait {
type Target = super::structs::VmConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_vm_config_spec()
}
}
impl std::ops::DerefMut for dyn VmConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vm_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VmConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VmConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VmConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VmConfigSpec"),
__out: &mut self.out,
}))
}
}
struct VmConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VmConfigSpecTrait>>,
}
impl miniserde::de::Map for VmConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VmConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VmConfigSpecTrait for VmConfigSpec {
fn get_vm_config_spec(&self) -> &super::structs::VmConfigSpec { &self }
fn get_vm_config_spec_mut(&mut self) -> &mut super::structs::VmConfigSpec { self }
}
impl VmConfigSpecTrait for VAppConfigSpec {
fn get_vm_config_spec(&self) -> &super::structs::VmConfigSpec { &self.vm_config_spec_ }
fn get_vm_config_spec_mut(&mut self) -> &mut super::structs::VmConfigSpec { &mut self.vm_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VmConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigSpec => Some(from.as_any_ref().downcast_ref::<VmConfigSpec>()?),
StructType::VAppConfigSpec => Some(from.as_any_ref().downcast_ref::<VAppConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VmConfigSpec => Ok(from.as_any_box().downcast::<VmConfigSpec>()?),
StructType::VAppConfigSpec => Ok(from.as_any_box().downcast::<VAppConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The NodeDeploymentSpec class defines location
/// specification of the nodes the VCHA Cluster along with Management
/// vCenter Server information that manages node VM.
///
/// ### How to access
/// - `FailoverClusterConfigurator::create_witness_node_task(witness_deployment_spec)`
/// - `FailoverClusterConfigurator::deploy_vcha_task(deployment_spec).witness_deployment_spec`
pub trait NodeDeploymentSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the NodeDeploymentSpec parent struct
fn get_node_deployment_spec(&self) -> &super::structs::NodeDeploymentSpec;
/// Get a mutable reference to the NodeDeploymentSpec parent struct
fn get_node_deployment_spec_mut(&mut self) -> &mut super::structs::NodeDeploymentSpec;
}
impl std::ops::Deref for dyn NodeDeploymentSpecTrait {
type Target = super::structs::NodeDeploymentSpec;
fn deref(&self) -> &Self::Target {
self.get_node_deployment_spec()
}
}
impl std::ops::DerefMut for dyn NodeDeploymentSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_node_deployment_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn NodeDeploymentSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NodeDeploymentSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NodeDeploymentSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NodeDeploymentSpec"),
__out: &mut self.out,
}))
}
}
struct NodeDeploymentSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NodeDeploymentSpecTrait>>,
}
impl miniserde::de::Map for NodeDeploymentSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NodeDeploymentSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NodeDeploymentSpecTrait for NodeDeploymentSpec {
fn get_node_deployment_spec(&self) -> &super::structs::NodeDeploymentSpec { &self }
fn get_node_deployment_spec_mut(&mut self) -> &mut super::structs::NodeDeploymentSpec { self }
}
impl NodeDeploymentSpecTrait for PassiveNodeDeploymentSpec {
fn get_node_deployment_spec(&self) -> &super::structs::NodeDeploymentSpec { &self.node_deployment_spec_ }
fn get_node_deployment_spec_mut(&mut self) -> &mut super::structs::NodeDeploymentSpec { &mut self.node_deployment_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NodeDeploymentSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NodeDeploymentSpec => Some(from.as_any_ref().downcast_ref::<NodeDeploymentSpec>()?),
StructType::PassiveNodeDeploymentSpec => Some(from.as_any_ref().downcast_ref::<PassiveNodeDeploymentSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NodeDeploymentSpec => Ok(from.as_any_box().downcast::<NodeDeploymentSpec>()?),
StructType::PassiveNodeDeploymentSpec => Ok(from.as_any_box().downcast::<PassiveNodeDeploymentSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The NodeNetworkSpec class defines network specification of a node
/// in the VCHA Cluster.
///
/// ### How to access
/// - `FailoverClusterConfigurator::prepare_vcha_task(network_spec).witness_network_spec`
pub trait NodeNetworkSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the NodeNetworkSpec parent struct
fn get_node_network_spec(&self) -> &super::structs::NodeNetworkSpec;
/// Get a mutable reference to the NodeNetworkSpec parent struct
fn get_node_network_spec_mut(&mut self) -> &mut super::structs::NodeNetworkSpec;
}
impl std::ops::Deref for dyn NodeNetworkSpecTrait {
type Target = super::structs::NodeNetworkSpec;
fn deref(&self) -> &Self::Target {
self.get_node_network_spec()
}
}
impl std::ops::DerefMut for dyn NodeNetworkSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_node_network_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn NodeNetworkSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn NodeNetworkSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(NodeNetworkSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("NodeNetworkSpec"),
__out: &mut self.out,
}))
}
}
struct NodeNetworkSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn NodeNetworkSpecTrait>>,
}
impl miniserde::de::Map for NodeNetworkSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn NodeNetworkSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl NodeNetworkSpecTrait for NodeNetworkSpec {
fn get_node_network_spec(&self) -> &super::structs::NodeNetworkSpec { &self }
fn get_node_network_spec_mut(&mut self) -> &mut super::structs::NodeNetworkSpec { self }
}
impl NodeNetworkSpecTrait for PassiveNodeNetworkSpec {
fn get_node_network_spec(&self) -> &super::structs::NodeNetworkSpec { &self.node_network_spec_ }
fn get_node_network_spec_mut(&mut self) -> &mut super::structs::NodeNetworkSpec { &mut self.node_network_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn NodeNetworkSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::NodeNetworkSpec => Some(from.as_any_ref().downcast_ref::<NodeNetworkSpec>()?),
StructType::PassiveNodeNetworkSpec => Some(from.as_any_ref().downcast_ref::<PassiveNodeNetworkSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::NodeNetworkSpec => Ok(from.as_any_box().downcast::<NodeNetworkSpec>()?),
StructType::PassiveNodeNetworkSpec => Ok(from.as_any_box().downcast::<PassiveNodeNetworkSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The BaseIndependentFilterSpec is base class for two different types
/// of independent filter specs *VirtualMachineIndependentFilterSpec*
/// and *VirtualMachineEmptyIndependentFilterSpec* which are used to specify
/// independent filters to be attached/removed on VMs virtual disk.
///
/// ***Since:*** vSphere API Release 7.0.2.1
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].filter_spec?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].filter_spec?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].filter_spec?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].filter_spec?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].filter_spec?[*]`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].filter_spec?[*]`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].filter_spec?[*]`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].filter_spec?[*]`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].filter_spec?[*]`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].filter_spec?[*]`
///
/// *(10 of 100 paths)*
pub trait VirtualMachineBaseIndependentFilterSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualMachineBaseIndependentFilterSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineBaseIndependentFilterSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineBaseIndependentFilterSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineBaseIndependentFilterSpec"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineBaseIndependentFilterSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineBaseIndependentFilterSpecTrait>>,
}
impl miniserde::de::Map for VirtualMachineBaseIndependentFilterSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineBaseIndependentFilterSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineBaseIndependentFilterSpecTrait for VirtualMachineBaseIndependentFilterSpec {
}
impl VirtualMachineBaseIndependentFilterSpecTrait for VirtualMachineEmptyIndependentFilterSpec {
}
impl VirtualMachineBaseIndependentFilterSpecTrait for VirtualMachineIndependentFilterSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineBaseIndependentFilterSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineBaseIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineBaseIndependentFilterSpec>()?),
StructType::VirtualMachineEmptyIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineEmptyIndependentFilterSpec>()?),
StructType::VirtualMachineIndependentFilterSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineIndependentFilterSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineBaseIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineBaseIndependentFilterSpec>()?),
StructType::VirtualMachineEmptyIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineEmptyIndependentFilterSpec>()?),
StructType::VirtualMachineIndependentFilterSpec => Ok(from.as_any_box().downcast::<VirtualMachineIndependentFilterSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Bootable device.
///
/// ### How to access
/// - `VirtualMachine::config.boot_options?.boot_order?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.boot_options?.boot_order?[*]`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→ClusterClusterInitialPlacementAction.config_spec?.boot_options?.boot_order?[*]`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.boot_options?.boot_order?[*]`
/// - `ClusterComputeResource::recommendation.action?[*]→ClusterClusterInitialPlacementAction.config_spec?.boot_options?.boot_order?[*]`
/// - `VirtualMachineSnapshot::config.boot_options?.boot_order?[*]`
/// - `VirtualMachine::reconfig_vm_task(spec).boot_options?.boot_order?[*]`
/// - `VirtualMachine::clone_vm_task(spec).config?.boot_options?.boot_order?[*]`
/// - `HostSystem::query_memory_overhead_ex(vm_config_info).boot_options?.boot_order?[*]`
/// - `Folder::create_vm_task(config).boot_options?.boot_order?[*]`
///
/// *(10 of 26 paths)*
pub trait VirtualMachineBootOptionsBootableDeviceTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualMachineBootOptionsBootableDeviceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineBootOptionsBootableDeviceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineBootOptionsBootableDeviceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineBootOptionsBootableDevice"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineBootOptionsBootableDeviceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineBootOptionsBootableDeviceTrait>>,
}
impl miniserde::de::Map for VirtualMachineBootOptionsBootableDeviceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineBootOptionsBootableDeviceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineBootOptionsBootableDeviceTrait for VirtualMachineBootOptionsBootableDevice {
}
impl VirtualMachineBootOptionsBootableDeviceTrait for VirtualMachineBootOptionsBootableCdromDevice {
}
impl VirtualMachineBootOptionsBootableDeviceTrait for VirtualMachineBootOptionsBootableDiskDevice {
}
impl VirtualMachineBootOptionsBootableDeviceTrait for VirtualMachineBootOptionsBootableEthernetDevice {
}
impl VirtualMachineBootOptionsBootableDeviceTrait for VirtualMachineBootOptionsBootableFloppyDevice {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineBootOptionsBootableDeviceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineBootOptionsBootableDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableDevice>()?),
StructType::VirtualMachineBootOptionsBootableCdromDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableCdromDevice>()?),
StructType::VirtualMachineBootOptionsBootableDiskDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableDiskDevice>()?),
StructType::VirtualMachineBootOptionsBootableEthernetDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableEthernetDevice>()?),
StructType::VirtualMachineBootOptionsBootableFloppyDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineBootOptionsBootableFloppyDevice>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineBootOptionsBootableDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableDevice>()?),
StructType::VirtualMachineBootOptionsBootableCdromDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableCdromDevice>()?),
StructType::VirtualMachineBootOptionsBootableDiskDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableDiskDevice>()?),
StructType::VirtualMachineBootOptionsBootableEthernetDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableEthernetDevice>()?),
StructType::VirtualMachineBootOptionsBootableFloppyDevice => Ok(from.as_any_box().downcast::<VirtualMachineBootOptionsBootableFloppyDevice>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Runtime state of a device.
///
/// Subclassed for information that is specific
/// to certain device types.
///
/// ### How to access
/// - `VirtualMachine::runtime.device?[*].runtime_state`
/// - `VirtualMachine::summary.runtime.device?[*].runtime_state`
/// - `HostSystem::query_host_connection_info().vm?[*].runtime.device?[*].runtime_state`
/// - `Datacenter::query_connection_info().vm?[*].runtime.device?[*].runtime_state`
/// - `Datacenter::query_connection_info_via_spec().vm?[*].runtime.device?[*].runtime_state`
/// - `EnvironmentBrowser::query_config_target().usb?[*].summary?.runtime.device?[*].runtime_state`
pub trait VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineDeviceRuntimeInfoDeviceRuntimeState"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait>>,
}
impl miniserde::de::Map for VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait for VirtualMachineDeviceRuntimeInfoDeviceRuntimeState {
}
impl VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait for VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineDeviceRuntimeInfoDeviceRuntimeStateTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineDeviceRuntimeInfoDeviceRuntimeState => Some(from.as_any_ref().downcast_ref::<VirtualMachineDeviceRuntimeInfoDeviceRuntimeState>()?),
StructType::VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState => Some(from.as_any_ref().downcast_ref::<VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineDeviceRuntimeInfoDeviceRuntimeState => Ok(from.as_any_box().downcast::<VirtualMachineDeviceRuntimeInfoDeviceRuntimeState>()?),
StructType::VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState => Ok(from.as_any_box().downcast::<VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState>()?),
_ => Err(from.as_any_box()),
}
}
}
/// FaultToleranceConfigInfo is a data object type containing Fault Tolerance
/// settings for this virtual machine.
///
/// role, instanceUuids and configPaths contain information about the
/// whole fault tolerance group.
///
/// ### How to access
/// - `VirtualMachine::config.ft_info?`
/// - `VirtualMachine::summary.config.ft_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.ft_info?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→ClusterClusterInitialPlacementAction.config_spec?.ft_info?`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.ft_info?`
/// - `ClusterComputeResource::recommendation.action?[*]→ClusterClusterInitialPlacementAction.config_spec?.ft_info?`
/// - `VirtualMachineSnapshot::config.ft_info?`
/// - `VirtualMachine::reconfig_vm_task(spec).ft_info?`
/// - `VirtualMachine::clone_vm_task(spec).config?.ft_info?`
/// - `HostSystem::query_memory_overhead_ex(vm_config_info).ft_info?`
///
/// *(10 of 31 paths)*
pub trait FaultToleranceConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the FaultToleranceConfigInfo parent struct
fn get_fault_tolerance_config_info(&self) -> &super::structs::FaultToleranceConfigInfo;
/// Get a mutable reference to the FaultToleranceConfigInfo parent struct
fn get_fault_tolerance_config_info_mut(&mut self) -> &mut super::structs::FaultToleranceConfigInfo;
}
impl std::ops::Deref for dyn FaultToleranceConfigInfoTrait {
type Target = super::structs::FaultToleranceConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_fault_tolerance_config_info()
}
}
impl std::ops::DerefMut for dyn FaultToleranceConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_fault_tolerance_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn FaultToleranceConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FaultToleranceConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FaultToleranceConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FaultToleranceConfigInfo"),
__out: &mut self.out,
}))
}
}
struct FaultToleranceConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FaultToleranceConfigInfoTrait>>,
}
impl miniserde::de::Map for FaultToleranceConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FaultToleranceConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FaultToleranceConfigInfoTrait for FaultToleranceConfigInfo {
fn get_fault_tolerance_config_info(&self) -> &super::structs::FaultToleranceConfigInfo { &self }
fn get_fault_tolerance_config_info_mut(&mut self) -> &mut super::structs::FaultToleranceConfigInfo { self }
}
impl FaultToleranceConfigInfoTrait for FaultTolerancePrimaryConfigInfo {
fn get_fault_tolerance_config_info(&self) -> &super::structs::FaultToleranceConfigInfo { &self.fault_tolerance_config_info_ }
fn get_fault_tolerance_config_info_mut(&mut self) -> &mut super::structs::FaultToleranceConfigInfo { &mut self.fault_tolerance_config_info_ }
}
impl FaultToleranceConfigInfoTrait for FaultToleranceSecondaryConfigInfo {
fn get_fault_tolerance_config_info(&self) -> &super::structs::FaultToleranceConfigInfo { &self.fault_tolerance_config_info_ }
fn get_fault_tolerance_config_info_mut(&mut self) -> &mut super::structs::FaultToleranceConfigInfo { &mut self.fault_tolerance_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FaultToleranceConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FaultToleranceConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultToleranceConfigInfo>()?),
StructType::FaultTolerancePrimaryConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultTolerancePrimaryConfigInfo>()?),
StructType::FaultToleranceSecondaryConfigInfo => Some(from.as_any_ref().downcast_ref::<FaultToleranceSecondaryConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FaultToleranceConfigInfo => Ok(from.as_any_box().downcast::<FaultToleranceConfigInfo>()?),
StructType::FaultTolerancePrimaryConfigInfo => Ok(from.as_any_box().downcast::<FaultTolerancePrimaryConfigInfo>()?),
StructType::FaultToleranceSecondaryConfigInfo => Ok(from.as_any_box().downcast::<FaultToleranceSecondaryConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type encapsulates configuration settings
/// when creating a virtual machine quiesced snapshot.
///
/// ### How to access
/// - `VirtualMachine::create_snapshot_ex_task(quiesce_spec)`
pub trait VirtualMachineGuestQuiesceSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualMachineGuestQuiesceSpec parent struct
fn get_virtual_machine_guest_quiesce_spec(&self) -> &super::structs::VirtualMachineGuestQuiesceSpec;
/// Get a mutable reference to the VirtualMachineGuestQuiesceSpec parent struct
fn get_virtual_machine_guest_quiesce_spec_mut(&mut self) -> &mut super::structs::VirtualMachineGuestQuiesceSpec;
}
impl std::ops::Deref for dyn VirtualMachineGuestQuiesceSpecTrait {
type Target = super::structs::VirtualMachineGuestQuiesceSpec;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_guest_quiesce_spec()
}
}
impl std::ops::DerefMut for dyn VirtualMachineGuestQuiesceSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_guest_quiesce_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineGuestQuiesceSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineGuestQuiesceSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineGuestQuiesceSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineGuestQuiesceSpec"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineGuestQuiesceSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineGuestQuiesceSpecTrait>>,
}
impl miniserde::de::Map for VirtualMachineGuestQuiesceSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineGuestQuiesceSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineGuestQuiesceSpecTrait for VirtualMachineGuestQuiesceSpec {
fn get_virtual_machine_guest_quiesce_spec(&self) -> &super::structs::VirtualMachineGuestQuiesceSpec { &self }
fn get_virtual_machine_guest_quiesce_spec_mut(&mut self) -> &mut super::structs::VirtualMachineGuestQuiesceSpec { self }
}
impl VirtualMachineGuestQuiesceSpecTrait for VirtualMachineWindowsQuiesceSpec {
fn get_virtual_machine_guest_quiesce_spec(&self) -> &super::structs::VirtualMachineGuestQuiesceSpec { &self.virtual_machine_guest_quiesce_spec_ }
fn get_virtual_machine_guest_quiesce_spec_mut(&mut self) -> &mut super::structs::VirtualMachineGuestQuiesceSpec { &mut self.virtual_machine_guest_quiesce_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineGuestQuiesceSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineGuestQuiesceSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineGuestQuiesceSpec>()?),
StructType::VirtualMachineWindowsQuiesceSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineWindowsQuiesceSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineGuestQuiesceSpec => Ok(from.as_any_box().downcast::<VirtualMachineGuestQuiesceSpec>()?),
StructType::VirtualMachineWindowsQuiesceSpec => Ok(from.as_any_box().downcast::<VirtualMachineWindowsQuiesceSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The ProfileSpec data object is used to specify the Storage Policy to be
/// associated with a Virtual Machine Home or a Virtual Disk.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.perfsvc_config?.profile?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?→VsanIscsiTargetServiceSpec.home_object_storage_policy?`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.profile?[*]`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.profile?[*]`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.profile?[*]`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.vm_profile?[*]`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.profile?[*]`
/// - `Folder::create_vm_task(config).vm_profile?[*]`
/// - `Folder::create_vm_task(config).device_change?[*].profile?[*]`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.perfsvc_config?.profile?`
///
/// *(10 of 100 paths)*
pub trait VirtualMachineProfileSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualMachineProfileSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineProfileSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineProfileSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineProfileSpec"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineProfileSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineProfileSpecTrait>>,
}
impl miniserde::de::Map for VirtualMachineProfileSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineProfileSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineProfileSpecTrait for VirtualMachineProfileSpec {
}
impl VirtualMachineProfileSpecTrait for VirtualMachineDefaultProfileSpec {
}
impl VirtualMachineProfileSpecTrait for VirtualMachineDefinedProfileSpec {
}
impl VirtualMachineProfileSpecTrait for VirtualMachineEmptyProfileSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineProfileSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineProfileSpec>()?),
StructType::VirtualMachineDefaultProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineDefaultProfileSpec>()?),
StructType::VirtualMachineDefinedProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineDefinedProfileSpec>()?),
StructType::VirtualMachineEmptyProfileSpec => Some(from.as_any_ref().downcast_ref::<VirtualMachineEmptyProfileSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineProfileSpec>()?),
StructType::VirtualMachineDefaultProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineDefaultProfileSpec>()?),
StructType::VirtualMachineDefinedProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineDefinedProfileSpec>()?),
StructType::VirtualMachineEmptyProfileSpec => Ok(from.as_any_box().downcast::<VirtualMachineEmptyProfileSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// ### How to access
/// - `EnvironmentBrowser::query_config_target().sriov?[*].device_pool?`
/// - `EnvironmentBrowser::query_config_target().pci_passthrough?[*]→VirtualMachineSriovInfo.device_pool?`
pub trait VirtualMachineSriovDevicePoolInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualMachineSriovDevicePoolInfo parent struct
fn get_virtual_machine_sriov_device_pool_info(&self) -> &super::structs::VirtualMachineSriovDevicePoolInfo;
/// Get a mutable reference to the VirtualMachineSriovDevicePoolInfo parent struct
fn get_virtual_machine_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::VirtualMachineSriovDevicePoolInfo;
}
impl std::ops::Deref for dyn VirtualMachineSriovDevicePoolInfoTrait {
type Target = super::structs::VirtualMachineSriovDevicePoolInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_sriov_device_pool_info()
}
}
impl std::ops::DerefMut for dyn VirtualMachineSriovDevicePoolInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_sriov_device_pool_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineSriovDevicePoolInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineSriovDevicePoolInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineSriovDevicePoolInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineSriovDevicePoolInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineSriovDevicePoolInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineSriovDevicePoolInfoTrait>>,
}
impl miniserde::de::Map for VirtualMachineSriovDevicePoolInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineSriovDevicePoolInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineSriovDevicePoolInfoTrait for VirtualMachineSriovDevicePoolInfo {
fn get_virtual_machine_sriov_device_pool_info(&self) -> &super::structs::VirtualMachineSriovDevicePoolInfo { &self }
fn get_virtual_machine_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::VirtualMachineSriovDevicePoolInfo { self }
}
impl VirtualMachineSriovDevicePoolInfoTrait for VirtualMachineSriovNetworkDevicePoolInfo {
fn get_virtual_machine_sriov_device_pool_info(&self) -> &super::structs::VirtualMachineSriovDevicePoolInfo { &self.virtual_machine_sriov_device_pool_info_ }
fn get_virtual_machine_sriov_device_pool_info_mut(&mut self) -> &mut super::structs::VirtualMachineSriovDevicePoolInfo { &mut self.virtual_machine_sriov_device_pool_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineSriovDevicePoolInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineSriovDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovDevicePoolInfo>()?),
StructType::VirtualMachineSriovNetworkDevicePoolInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovNetworkDevicePoolInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineSriovDevicePoolInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovDevicePoolInfo>()?),
StructType::VirtualMachineSriovNetworkDevicePoolInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovNetworkDevicePoolInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The TargetInfo specified a value that can be used in the device backings to
/// connect the virtual machine to a physical (or logical) host device.
pub trait VirtualMachineTargetInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualMachineTargetInfo parent struct
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo;
/// Get a mutable reference to the VirtualMachineTargetInfo parent struct
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo;
}
impl std::ops::Deref for dyn VirtualMachineTargetInfoTrait {
type Target = super::structs::VirtualMachineTargetInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_target_info()
}
}
impl std::ops::DerefMut for dyn VirtualMachineTargetInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_target_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineTargetInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineTargetInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineTargetInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineTargetInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineTargetInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineTargetInfoTrait>>,
}
impl miniserde::de::Map for VirtualMachineTargetInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineTargetInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineTargetInfoTrait for VirtualMachineTargetInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { self }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineCdromInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineDatastoreInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineDiskDeviceInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineIdeDiskDeviceInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_disk_device_info_.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_disk_device_info_.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineScsiDiskDeviceInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_disk_device_info_.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_disk_device_info_.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineDynamicPassthroughInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineFloppyInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineNetworkInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for OpaqueNetworkTargetInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineParallelInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachinePciPassthroughInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineSriovInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_pci_passthrough_info_.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_pci_passthrough_info_.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachinePciSharedGpuPassthroughInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachinePrecisionClockInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineScsiPassthroughInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineSerialInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineSgxTargetInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineSoundInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for SubnetInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineUsbInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineVFlashModuleInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineVMotionStunTimeInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineVendorDeviceGroupInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineVgpuDeviceInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl VirtualMachineTargetInfoTrait for VirtualMachineVgpuProfileInfo {
fn get_virtual_machine_target_info(&self) -> &super::structs::VirtualMachineTargetInfo { &self.virtual_machine_target_info_ }
fn get_virtual_machine_target_info_mut(&mut self) -> &mut super::structs::VirtualMachineTargetInfo { &mut self.virtual_machine_target_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineTargetInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineTargetInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineTargetInfo>()?),
StructType::VirtualMachineCdromInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineCdromInfo>()?),
StructType::VirtualMachineDatastoreInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDatastoreInfo>()?),
StructType::VirtualMachineDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineScsiDiskDeviceInfo>()?),
StructType::VirtualMachineDynamicPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDynamicPassthroughInfo>()?),
StructType::VirtualMachineFloppyInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineFloppyInfo>()?),
StructType::VirtualMachineNetworkInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineNetworkInfo>()?),
StructType::OpaqueNetworkTargetInfo => Some(from.as_any_ref().downcast_ref::<OpaqueNetworkTargetInfo>()?),
StructType::VirtualMachineParallelInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineParallelInfo>()?),
StructType::VirtualMachinePciPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovInfo>()?),
StructType::VirtualMachinePciSharedGpuPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePciSharedGpuPassthroughInfo>()?),
StructType::VirtualMachinePrecisionClockInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePrecisionClockInfo>()?),
StructType::VirtualMachineScsiPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineScsiPassthroughInfo>()?),
StructType::VirtualMachineSerialInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSerialInfo>()?),
StructType::VirtualMachineSgxTargetInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSgxTargetInfo>()?),
StructType::VirtualMachineSoundInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSoundInfo>()?),
StructType::SubnetInfo => Some(from.as_any_ref().downcast_ref::<SubnetInfo>()?),
StructType::VirtualMachineUsbInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineUsbInfo>()?),
StructType::VirtualMachineVFlashModuleInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVFlashModuleInfo>()?),
StructType::VirtualMachineVMotionStunTimeInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVMotionStunTimeInfo>()?),
StructType::VirtualMachineVendorDeviceGroupInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVendorDeviceGroupInfo>()?),
StructType::VirtualMachineVgpuDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVgpuDeviceInfo>()?),
StructType::VirtualMachineVgpuProfileInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineVgpuProfileInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineTargetInfo => Ok(from.as_any_box().downcast::<VirtualMachineTargetInfo>()?),
StructType::VirtualMachineCdromInfo => Ok(from.as_any_box().downcast::<VirtualMachineCdromInfo>()?),
StructType::VirtualMachineDatastoreInfo => Ok(from.as_any_box().downcast::<VirtualMachineDatastoreInfo>()?),
StructType::VirtualMachineDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineScsiDiskDeviceInfo>()?),
StructType::VirtualMachineDynamicPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachineDynamicPassthroughInfo>()?),
StructType::VirtualMachineFloppyInfo => Ok(from.as_any_box().downcast::<VirtualMachineFloppyInfo>()?),
StructType::VirtualMachineNetworkInfo => Ok(from.as_any_box().downcast::<VirtualMachineNetworkInfo>()?),
StructType::OpaqueNetworkTargetInfo => Ok(from.as_any_box().downcast::<OpaqueNetworkTargetInfo>()?),
StructType::VirtualMachineParallelInfo => Ok(from.as_any_box().downcast::<VirtualMachineParallelInfo>()?),
StructType::VirtualMachinePciPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovInfo>()?),
StructType::VirtualMachinePciSharedGpuPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachinePciSharedGpuPassthroughInfo>()?),
StructType::VirtualMachinePrecisionClockInfo => Ok(from.as_any_box().downcast::<VirtualMachinePrecisionClockInfo>()?),
StructType::VirtualMachineScsiPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachineScsiPassthroughInfo>()?),
StructType::VirtualMachineSerialInfo => Ok(from.as_any_box().downcast::<VirtualMachineSerialInfo>()?),
StructType::VirtualMachineSgxTargetInfo => Ok(from.as_any_box().downcast::<VirtualMachineSgxTargetInfo>()?),
StructType::VirtualMachineSoundInfo => Ok(from.as_any_box().downcast::<VirtualMachineSoundInfo>()?),
StructType::SubnetInfo => Ok(from.as_any_box().downcast::<SubnetInfo>()?),
StructType::VirtualMachineUsbInfo => Ok(from.as_any_box().downcast::<VirtualMachineUsbInfo>()?),
StructType::VirtualMachineVFlashModuleInfo => Ok(from.as_any_box().downcast::<VirtualMachineVFlashModuleInfo>()?),
StructType::VirtualMachineVMotionStunTimeInfo => Ok(from.as_any_box().downcast::<VirtualMachineVMotionStunTimeInfo>()?),
StructType::VirtualMachineVendorDeviceGroupInfo => Ok(from.as_any_box().downcast::<VirtualMachineVendorDeviceGroupInfo>()?),
StructType::VirtualMachineVgpuDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineVgpuDeviceInfo>()?),
StructType::VirtualMachineVgpuProfileInfo => Ok(from.as_any_box().downcast::<VirtualMachineVgpuProfileInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The DiskDeviceInfo class contains basic information about a specific disk hardware
/// device.
pub trait VirtualMachineDiskDeviceInfoTrait : super::traits::VirtualMachineTargetInfoTrait {
/// Get a reference to the VirtualMachineDiskDeviceInfo parent struct
fn get_virtual_machine_disk_device_info(&self) -> &super::structs::VirtualMachineDiskDeviceInfo;
/// Get a mutable reference to the VirtualMachineDiskDeviceInfo parent struct
fn get_virtual_machine_disk_device_info_mut(&mut self) -> &mut super::structs::VirtualMachineDiskDeviceInfo;
}
impl std::ops::Deref for dyn VirtualMachineDiskDeviceInfoTrait {
type Target = super::structs::VirtualMachineDiskDeviceInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_disk_device_info()
}
}
impl std::ops::DerefMut for dyn VirtualMachineDiskDeviceInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_disk_device_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineDiskDeviceInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineDiskDeviceInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineDiskDeviceInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineDiskDeviceInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineDiskDeviceInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineDiskDeviceInfoTrait>>,
}
impl miniserde::de::Map for VirtualMachineDiskDeviceInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineDiskDeviceInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineDiskDeviceInfoTrait for VirtualMachineDiskDeviceInfo {
fn get_virtual_machine_disk_device_info(&self) -> &super::structs::VirtualMachineDiskDeviceInfo { &self }
fn get_virtual_machine_disk_device_info_mut(&mut self) -> &mut super::structs::VirtualMachineDiskDeviceInfo { self }
}
impl VirtualMachineDiskDeviceInfoTrait for VirtualMachineIdeDiskDeviceInfo {
fn get_virtual_machine_disk_device_info(&self) -> &super::structs::VirtualMachineDiskDeviceInfo { &self.virtual_machine_disk_device_info_ }
fn get_virtual_machine_disk_device_info_mut(&mut self) -> &mut super::structs::VirtualMachineDiskDeviceInfo { &mut self.virtual_machine_disk_device_info_ }
}
impl VirtualMachineDiskDeviceInfoTrait for VirtualMachineScsiDiskDeviceInfo {
fn get_virtual_machine_disk_device_info(&self) -> &super::structs::VirtualMachineDiskDeviceInfo { &self.virtual_machine_disk_device_info_ }
fn get_virtual_machine_disk_device_info_mut(&mut self) -> &mut super::structs::VirtualMachineDiskDeviceInfo { &mut self.virtual_machine_disk_device_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineDiskDeviceInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineScsiDiskDeviceInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineDiskDeviceInfo>()?),
StructType::VirtualMachineIdeDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineIdeDiskDeviceInfo>()?),
StructType::VirtualMachineScsiDiskDeviceInfo => Ok(from.as_any_box().downcast::<VirtualMachineScsiDiskDeviceInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Description of a generic PCI device that can be attached to a virtual machine.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_target().pci_passthrough?[*]`
pub trait VirtualMachinePciPassthroughInfoTrait : super::traits::VirtualMachineTargetInfoTrait {
/// Get a reference to the VirtualMachinePciPassthroughInfo parent struct
fn get_virtual_machine_pci_passthrough_info(&self) -> &super::structs::VirtualMachinePciPassthroughInfo;
/// Get a mutable reference to the VirtualMachinePciPassthroughInfo parent struct
fn get_virtual_machine_pci_passthrough_info_mut(&mut self) -> &mut super::structs::VirtualMachinePciPassthroughInfo;
}
impl std::ops::Deref for dyn VirtualMachinePciPassthroughInfoTrait {
type Target = super::structs::VirtualMachinePciPassthroughInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_pci_passthrough_info()
}
}
impl std::ops::DerefMut for dyn VirtualMachinePciPassthroughInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_pci_passthrough_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachinePciPassthroughInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachinePciPassthroughInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachinePciPassthroughInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachinePciPassthroughInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualMachinePciPassthroughInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachinePciPassthroughInfoTrait>>,
}
impl miniserde::de::Map for VirtualMachinePciPassthroughInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachinePciPassthroughInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachinePciPassthroughInfoTrait for VirtualMachinePciPassthroughInfo {
fn get_virtual_machine_pci_passthrough_info(&self) -> &super::structs::VirtualMachinePciPassthroughInfo { &self }
fn get_virtual_machine_pci_passthrough_info_mut(&mut self) -> &mut super::structs::VirtualMachinePciPassthroughInfo { self }
}
impl VirtualMachinePciPassthroughInfoTrait for VirtualMachineSriovInfo {
fn get_virtual_machine_pci_passthrough_info(&self) -> &super::structs::VirtualMachinePciPassthroughInfo { &self.virtual_machine_pci_passthrough_info_ }
fn get_virtual_machine_pci_passthrough_info_mut(&mut self) -> &mut super::structs::VirtualMachinePciPassthroughInfo { &mut self.virtual_machine_pci_passthrough_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachinePciPassthroughInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachinePciPassthroughInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Some(from.as_any_ref().downcast_ref::<VirtualMachineSriovInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachinePciPassthroughInfo => Ok(from.as_any_box().downcast::<VirtualMachinePciPassthroughInfo>()?),
StructType::VirtualMachineSriovInfo => Ok(from.as_any_box().downcast::<VirtualMachineSriovInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base device group type.
///
/// ### How to access
/// - `VirtualMachine::config.device_groups?.device_group?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*]`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*]`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*]`
/// - `ClusterComputeResource::recommendation.action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_groups?.device_group?[*]`
/// - `VirtualMachineSnapshot::config.device_groups?.device_group?[*]`
/// - `VirtualMachine::reconfig_vm_task(spec).device_groups?.device_group?[*]`
/// - `VirtualMachine::clone_vm_task(spec).config?.device_groups?.device_group?[*]`
/// - `HostSystem::query_memory_overhead_ex(vm_config_info).device_groups?.device_group?[*]`
/// - `Folder::create_vm_task(config).device_groups?.device_group?[*]`
///
/// *(10 of 26 paths)*
pub trait VirtualMachineVirtualDeviceGroupsDeviceGroupTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualMachineVirtualDeviceGroupsDeviceGroup parent struct
fn get_virtual_machine_virtual_device_groups_device_group(&self) -> &super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup;
/// Get a mutable reference to the VirtualMachineVirtualDeviceGroupsDeviceGroup parent struct
fn get_virtual_machine_virtual_device_groups_device_group_mut(&mut self) -> &mut super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup;
}
impl std::ops::Deref for dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait {
type Target = super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup;
fn deref(&self) -> &Self::Target {
self.get_virtual_machine_virtual_device_groups_device_group()
}
}
impl std::ops::DerefMut for dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_machine_virtual_device_groups_device_group_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualMachineVirtualDeviceGroupsDeviceGroupTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualMachineVirtualDeviceGroupsDeviceGroup"),
__out: &mut self.out,
}))
}
}
struct VirtualMachineVirtualDeviceGroupsDeviceGroupTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait>>,
}
impl miniserde::de::Map for VirtualMachineVirtualDeviceGroupsDeviceGroupTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualMachineVirtualDeviceGroupsDeviceGroupTrait for VirtualMachineVirtualDeviceGroupsDeviceGroup {
fn get_virtual_machine_virtual_device_groups_device_group(&self) -> &super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup { &self }
fn get_virtual_machine_virtual_device_groups_device_group_mut(&mut self) -> &mut super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup { self }
}
impl VirtualMachineVirtualDeviceGroupsDeviceGroupTrait for VirtualMachineVirtualDeviceGroupsVendorDeviceGroup {
fn get_virtual_machine_virtual_device_groups_device_group(&self) -> &super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup { &self.virtual_machine_virtual_device_groups_device_group_ }
fn get_virtual_machine_virtual_device_groups_device_group_mut(&mut self) -> &mut super::structs::VirtualMachineVirtualDeviceGroupsDeviceGroup { &mut self.virtual_machine_virtual_device_groups_device_group_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualMachineVirtualDeviceGroupsDeviceGroupTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineVirtualDeviceGroupsDeviceGroup => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceGroupsDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceGroupsVendorDeviceGroup => Some(from.as_any_ref().downcast_ref::<VirtualMachineVirtualDeviceGroupsVendorDeviceGroup>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualMachineVirtualDeviceGroupsDeviceGroup => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceGroupsDeviceGroup>()?),
StructType::VirtualMachineVirtualDeviceGroupsVendorDeviceGroup => Ok(from.as_any_box().downcast::<VirtualMachineVirtualDeviceGroupsVendorDeviceGroup>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for sysprep, sysprepText, or linuxPrep object type.
///
/// ### How to access
/// - `VirtualMachine::check_customization_spec(spec).identity`
/// - `VirtualMachine::customize_vm_task(spec).identity`
/// - `VirtualMachine::clone_vm_task(spec).customization?.identity`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.identity`
/// - `VirtualMachineGuestCustomizationManager::customize_guest_task(spec).identity`
/// - `CustomizationSpecManager::create_customization_spec(item).spec.identity`
/// - `CustomizationSpecManager::get_customization_spec().spec.identity`
/// - `CustomizationSpecManager::overwrite_customization_spec(item).spec.identity`
/// - `CustomizationSpecManager::customization_spec_item_to_xml(item).spec.identity`
/// - `CustomizationSpecManager::xml_to_customization_spec_item().spec.identity`
///
/// *(10 of 12 paths)*
pub trait CustomizationIdentitySettingsTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CustomizationIdentitySettingsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomizationIdentitySettingsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomizationIdentitySettingsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomizationIdentitySettings"),
__out: &mut self.out,
}))
}
}
struct CustomizationIdentitySettingsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomizationIdentitySettingsTrait>>,
}
impl miniserde::de::Map for CustomizationIdentitySettingsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomizationIdentitySettingsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomizationIdentitySettingsTrait for CustomizationIdentitySettings {
}
impl CustomizationIdentitySettingsTrait for CustomizationCloudinitPrep {
}
impl CustomizationIdentitySettingsTrait for CustomizationLinuxPrep {
}
impl CustomizationIdentitySettingsTrait for CustomizationSysprep {
}
impl CustomizationIdentitySettingsTrait for CustomizationSysprepText {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomizationIdentitySettingsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIdentitySettings => Some(from.as_any_ref().downcast_ref::<CustomizationIdentitySettings>()?),
StructType::CustomizationCloudinitPrep => Some(from.as_any_ref().downcast_ref::<CustomizationCloudinitPrep>()?),
StructType::CustomizationLinuxPrep => Some(from.as_any_ref().downcast_ref::<CustomizationLinuxPrep>()?),
StructType::CustomizationSysprep => Some(from.as_any_ref().downcast_ref::<CustomizationSysprep>()?),
StructType::CustomizationSysprepText => Some(from.as_any_ref().downcast_ref::<CustomizationSysprepText>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIdentitySettings => Ok(from.as_any_box().downcast::<CustomizationIdentitySettings>()?),
StructType::CustomizationCloudinitPrep => Ok(from.as_any_box().downcast::<CustomizationCloudinitPrep>()?),
StructType::CustomizationLinuxPrep => Ok(from.as_any_box().downcast::<CustomizationLinuxPrep>()?),
StructType::CustomizationSysprep => Ok(from.as_any_box().downcast::<CustomizationSysprep>()?),
StructType::CustomizationSysprepText => Ok(from.as_any_box().downcast::<CustomizationSysprepText>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for the various IP specification possibilities.
///
/// ### How to access
/// - `VirtualMachine::check_customization_spec(spec).nic_setting_map?[*].adapter.ip`
/// - `VirtualMachine::customize_vm_task(spec).nic_setting_map?[*].adapter.ip`
/// - `VirtualMachine::clone_vm_task(spec).customization?.nic_setting_map?[*].adapter.ip`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.nic_setting_map?[*].adapter.ip`
/// - `FailoverClusterConfigurator::create_passive_node_task(passive_deployment_spec).failover_ip_settings?.ip`
/// - `FailoverClusterConfigurator::create_witness_node_task(witness_deployment_spec).ip_settings.ip`
/// - `FailoverClusterConfigurator::create_witness_node_task(witness_deployment_spec)→PassiveNodeDeploymentSpec.failover_ip_settings?.ip`
/// - `FailoverClusterConfigurator::deploy_vcha_task(deployment_spec).passive_deployment_spec.failover_ip_settings?.ip`
/// - `FailoverClusterConfigurator::deploy_vcha_task(deployment_spec).witness_deployment_spec.ip_settings.ip`
/// - `VirtualMachineGuestCustomizationManager::customize_guest_task(spec).nic_setting_map?[*].adapter.ip`
///
/// *(10 of 27 paths)*
pub trait CustomizationIpGeneratorTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CustomizationIpGeneratorTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomizationIpGeneratorTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomizationIpGeneratorTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomizationIpGenerator"),
__out: &mut self.out,
}))
}
}
struct CustomizationIpGeneratorTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomizationIpGeneratorTrait>>,
}
impl miniserde::de::Map for CustomizationIpGeneratorTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomizationIpGeneratorTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomizationIpGeneratorTrait for CustomizationIpGenerator {
}
impl CustomizationIpGeneratorTrait for CustomizationCustomIpGenerator {
}
impl CustomizationIpGeneratorTrait for CustomizationDhcpIpGenerator {
}
impl CustomizationIpGeneratorTrait for CustomizationFixedIp {
}
impl CustomizationIpGeneratorTrait for CustomizationUnknownIpGenerator {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomizationIpGeneratorTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationIpGenerator>()?),
StructType::CustomizationCustomIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationCustomIpGenerator>()?),
StructType::CustomizationDhcpIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationDhcpIpGenerator>()?),
StructType::CustomizationFixedIp => Some(from.as_any_ref().downcast_ref::<CustomizationFixedIp>()?),
StructType::CustomizationUnknownIpGenerator => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownIpGenerator>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIpGenerator => Ok(from.as_any_box().downcast::<CustomizationIpGenerator>()?),
StructType::CustomizationCustomIpGenerator => Ok(from.as_any_box().downcast::<CustomizationCustomIpGenerator>()?),
StructType::CustomizationDhcpIpGenerator => Ok(from.as_any_box().downcast::<CustomizationDhcpIpGenerator>()?),
StructType::CustomizationFixedIp => Ok(from.as_any_box().downcast::<CustomizationFixedIp>()?),
StructType::CustomizationUnknownIpGenerator => Ok(from.as_any_box().downcast::<CustomizationUnknownIpGenerator>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for the various IpV6 specification possibilities
///
/// ### How to access
/// - `VirtualMachine::check_customization_spec(spec).nic_setting_map?[*].adapter.ip_v_6_spec?.ip[*]`
/// - `VirtualMachine::customize_vm_task(spec).nic_setting_map?[*].adapter.ip_v_6_spec?.ip[*]`
/// - `VirtualMachine::clone_vm_task(spec).customization?.nic_setting_map?[*].adapter.ip_v_6_spec?.ip[*]`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.nic_setting_map?[*].adapter.ip_v_6_spec?.ip[*]`
/// - `FailoverClusterConfigurator::create_passive_node_task(passive_deployment_spec).failover_ip_settings?.ip_v_6_spec?.ip[*]`
/// - `FailoverClusterConfigurator::create_witness_node_task(witness_deployment_spec).ip_settings.ip_v_6_spec?.ip[*]`
/// - `FailoverClusterConfigurator::create_witness_node_task(witness_deployment_spec)→PassiveNodeDeploymentSpec.failover_ip_settings?.ip_v_6_spec?.ip[*]`
/// - `FailoverClusterConfigurator::deploy_vcha_task(deployment_spec).passive_deployment_spec.failover_ip_settings?.ip_v_6_spec?.ip[*]`
/// - `FailoverClusterConfigurator::deploy_vcha_task(deployment_spec).witness_deployment_spec.ip_settings.ip_v_6_spec?.ip[*]`
/// - `VirtualMachineGuestCustomizationManager::customize_guest_task(spec).nic_setting_map?[*].adapter.ip_v_6_spec?.ip[*]`
///
/// *(10 of 27 paths)*
pub trait CustomizationIpV6GeneratorTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CustomizationIpV6GeneratorTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomizationIpV6GeneratorTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomizationIpV6GeneratorTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomizationIpV6Generator"),
__out: &mut self.out,
}))
}
}
struct CustomizationIpV6GeneratorTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomizationIpV6GeneratorTrait>>,
}
impl miniserde::de::Map for CustomizationIpV6GeneratorTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomizationIpV6GeneratorTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomizationIpV6GeneratorTrait for CustomizationIpV6Generator {
}
impl CustomizationIpV6GeneratorTrait for CustomizationAutoIpV6Generator {
}
impl CustomizationIpV6GeneratorTrait for CustomizationCustomIpV6Generator {
}
impl CustomizationIpV6GeneratorTrait for CustomizationDhcpIpV6Generator {
}
impl CustomizationIpV6GeneratorTrait for CustomizationFixedIpV6 {
}
impl CustomizationIpV6GeneratorTrait for CustomizationStatelessIpV6Generator {
}
impl CustomizationIpV6GeneratorTrait for CustomizationUnknownIpV6Generator {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomizationIpV6GeneratorTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationIpV6Generator>()?),
StructType::CustomizationAutoIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationAutoIpV6Generator>()?),
StructType::CustomizationCustomIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationCustomIpV6Generator>()?),
StructType::CustomizationDhcpIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationDhcpIpV6Generator>()?),
StructType::CustomizationFixedIpV6 => Some(from.as_any_ref().downcast_ref::<CustomizationFixedIpV6>()?),
StructType::CustomizationStatelessIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationStatelessIpV6Generator>()?),
StructType::CustomizationUnknownIpV6Generator => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownIpV6Generator>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationIpV6Generator>()?),
StructType::CustomizationAutoIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationAutoIpV6Generator>()?),
StructType::CustomizationCustomIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationCustomIpV6Generator>()?),
StructType::CustomizationDhcpIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationDhcpIpV6Generator>()?),
StructType::CustomizationFixedIpV6 => Ok(from.as_any_box().downcast::<CustomizationFixedIpV6>()?),
StructType::CustomizationStatelessIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationStatelessIpV6Generator>()?),
StructType::CustomizationUnknownIpV6Generator => Ok(from.as_any_box().downcast::<CustomizationUnknownIpV6Generator>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A base object type for a virtual machine name that can be either fixed or
/// auto-generated.
///
/// ### How to access
/// - `VirtualMachine::check_customization_spec(spec).identity→CustomizationLinuxPrep.host_name`
/// - `VirtualMachine::customize_vm_task(spec).identity→CustomizationLinuxPrep.host_name`
/// - `VirtualMachine::check_customization_spec(spec).identity→CustomizationSysprep.user_data.computer_name`
/// - `VirtualMachine::clone_vm_task(spec).customization?.identity→CustomizationLinuxPrep.host_name`
/// - `VirtualMachine::customize_vm_task(spec).identity→CustomizationSysprep.user_data.computer_name`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.identity→CustomizationLinuxPrep.host_name`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.identity→CustomizationSysprep.user_data.computer_name`
/// - `VirtualMachineGuestCustomizationManager::customize_guest_task(spec).identity→CustomizationLinuxPrep.host_name`
/// - `CustomizationSpecManager::create_customization_spec(item).spec.identity→CustomizationLinuxPrep.host_name`
/// - `CustomizationSpecManager::get_customization_spec().spec.identity→CustomizationLinuxPrep.host_name`
///
/// *(10 of 24 paths)*
pub trait CustomizationNameTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CustomizationNameTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomizationNameTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomizationNameTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomizationName"),
__out: &mut self.out,
}))
}
}
struct CustomizationNameTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomizationNameTrait>>,
}
impl miniserde::de::Map for CustomizationNameTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomizationNameTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomizationNameTrait for CustomizationName {
}
impl CustomizationNameTrait for CustomizationCustomName {
}
impl CustomizationNameTrait for CustomizationFixedName {
}
impl CustomizationNameTrait for CustomizationPrefixName {
}
impl CustomizationNameTrait for CustomizationUnknownName {
}
impl CustomizationNameTrait for CustomizationVirtualMachineName {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomizationNameTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationName => Some(from.as_any_ref().downcast_ref::<CustomizationName>()?),
StructType::CustomizationCustomName => Some(from.as_any_ref().downcast_ref::<CustomizationCustomName>()?),
StructType::CustomizationFixedName => Some(from.as_any_ref().downcast_ref::<CustomizationFixedName>()?),
StructType::CustomizationPrefixName => Some(from.as_any_ref().downcast_ref::<CustomizationPrefixName>()?),
StructType::CustomizationUnknownName => Some(from.as_any_ref().downcast_ref::<CustomizationUnknownName>()?),
StructType::CustomizationVirtualMachineName => Some(from.as_any_ref().downcast_ref::<CustomizationVirtualMachineName>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationName => Ok(from.as_any_box().downcast::<CustomizationName>()?),
StructType::CustomizationCustomName => Ok(from.as_any_box().downcast::<CustomizationCustomName>()?),
StructType::CustomizationFixedName => Ok(from.as_any_box().downcast::<CustomizationFixedName>()?),
StructType::CustomizationPrefixName => Ok(from.as_any_box().downcast::<CustomizationPrefixName>()?),
StructType::CustomizationUnknownName => Ok(from.as_any_box().downcast::<CustomizationUnknownName>()?),
StructType::CustomizationVirtualMachineName => Ok(from.as_any_box().downcast::<CustomizationVirtualMachineName>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base object type for optional operations supported by the customization process.
///
/// ### How to access
/// - `VirtualMachine::check_customization_spec(spec).options?`
/// - `VirtualMachine::customize_vm_task(spec).options?`
/// - `VirtualMachine::clone_vm_task(spec).customization?.options?`
/// - `ClusterComputeResource::place_vm(placement_spec).clone_spec?.customization?.options?`
/// - `VirtualMachineGuestCustomizationManager::customize_guest_task(spec).options?`
/// - `CustomizationSpecManager::create_customization_spec(item).spec.options?`
/// - `CustomizationSpecManager::get_customization_spec().spec.options?`
/// - `CustomizationSpecManager::overwrite_customization_spec(item).spec.options?`
/// - `CustomizationSpecManager::customization_spec_item_to_xml(item).spec.options?`
/// - `CustomizationSpecManager::xml_to_customization_spec_item().spec.options?`
///
/// *(10 of 12 paths)*
pub trait CustomizationOptionsTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn CustomizationOptionsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn CustomizationOptionsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(CustomizationOptionsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("CustomizationOptions"),
__out: &mut self.out,
}))
}
}
struct CustomizationOptionsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn CustomizationOptionsTrait>>,
}
impl miniserde::de::Map for CustomizationOptionsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn CustomizationOptionsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl CustomizationOptionsTrait for CustomizationOptions {
}
impl CustomizationOptionsTrait for CustomizationLinuxOptions {
}
impl CustomizationOptionsTrait for CustomizationWinOptions {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn CustomizationOptionsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationOptions => Some(from.as_any_ref().downcast_ref::<CustomizationOptions>()?),
StructType::CustomizationLinuxOptions => Some(from.as_any_ref().downcast_ref::<CustomizationLinuxOptions>()?),
StructType::CustomizationWinOptions => Some(from.as_any_ref().downcast_ref::<CustomizationWinOptions>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::CustomizationOptions => Ok(from.as_any_box().downcast::<CustomizationOptions>()?),
StructType::CustomizationLinuxOptions => Ok(from.as_any_box().downcast::<CustomizationLinuxOptions>()?),
StructType::CustomizationWinOptions => Ok(from.as_any_box().downcast::<CustomizationWinOptions>()?),
_ => Err(from.as_any_box()),
}
}
}
/// VirtualDevice is the base data object type for devices in a virtual machine.
///
/// This type contains enough information about a virtual device to allow clients
/// to display devices they do not recognize. For example, a client with an
/// older version than the server to which it connects may see a device
/// without knowing what it is.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device`
///
/// *(10 of 65 paths)*
pub trait VirtualDeviceTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualDevice parent struct
fn get_virtual_device(&self) -> &super::structs::VirtualDevice;
/// Get a mutable reference to the VirtualDevice parent struct
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice;
}
impl std::ops::Deref for dyn VirtualDeviceTrait {
type Target = super::structs::VirtualDevice;
fn deref(&self) -> &Self::Target {
self.get_virtual_device()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDevice"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceTrait>>,
}
impl miniserde::de::Map for VirtualDeviceTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceTrait for VirtualDevice {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { self }
}
impl VirtualDeviceTrait for VirtualCdrom {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualIdeController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualNvdimmController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualNvmeController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPciController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPs2Controller {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSataController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualAhciController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_sata_controller_.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_sata_controller_.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualScsiController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for ParaVirtualScsiController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualBusLogicController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualLsiLogicController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualLsiLogicSasController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_scsi_controller_.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSioController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualUsbController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualUsbxhciController {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_controller_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_controller_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualDisk {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualEthernetCard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualE1000 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualE1000E {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPcNet32 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSriovEthernetCard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualVmxnet {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualVmxnet2 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualVmxnet3 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualVmxnet3Vrdma {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_vmxnet_3_.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_vmxnet_3_.virtual_vmxnet_.virtual_ethernet_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualFloppy {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualKeyboard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualNvdimm {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPciPassthrough {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualParallelPort {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPointingDevice {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualPrecisionClock {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualScsiPassthrough {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSerialPort {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSoundCard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualEnsoniq1371 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_sound_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_sound_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualHdAudioCard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_sound_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_sound_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualSoundBlaster16 {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_sound_card_.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_sound_card_.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualTpm {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualUsb {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualMachineVmciDevice {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualMachineVmirom {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualMachineVideoCard {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl VirtualDeviceTrait for VirtualWdt {
fn get_virtual_device(&self) -> &super::structs::VirtualDevice { &self.virtual_device_ }
fn get_virtual_device_mut(&mut self) -> &mut super::structs::VirtualDevice { &mut self.virtual_device_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevice => Some(from.as_any_ref().downcast_ref::<VirtualDevice>()?),
StructType::VirtualCdrom => Some(from.as_any_ref().downcast_ref::<VirtualCdrom>()?),
StructType::VirtualController => Some(from.as_any_ref().downcast_ref::<VirtualController>()?),
StructType::VirtualIdeController => Some(from.as_any_ref().downcast_ref::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Some(from.as_any_ref().downcast_ref::<VirtualNvmeController>()?),
StructType::VirtualPciController => Some(from.as_any_ref().downcast_ref::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Some(from.as_any_ref().downcast_ref::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Some(from.as_any_ref().downcast_ref::<VirtualSataController>()?),
StructType::VirtualAhciController => Some(from.as_any_ref().downcast_ref::<VirtualAhciController>()?),
StructType::VirtualScsiController => Some(from.as_any_ref().downcast_ref::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Some(from.as_any_ref().downcast_ref::<VirtualSioController>()?),
StructType::VirtualUsbController => Some(from.as_any_ref().downcast_ref::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciController>()?),
StructType::VirtualDisk => Some(from.as_any_ref().downcast_ref::<VirtualDisk>()?),
StructType::VirtualEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Some(from.as_any_ref().downcast_ref::<VirtualE1000>()?),
StructType::VirtualE1000E => Some(from.as_any_ref().downcast_ref::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Vrdma>()?),
StructType::VirtualFloppy => Some(from.as_any_ref().downcast_ref::<VirtualFloppy>()?),
StructType::VirtualKeyboard => Some(from.as_any_ref().downcast_ref::<VirtualKeyboard>()?),
StructType::VirtualNvdimm => Some(from.as_any_ref().downcast_ref::<VirtualNvdimm>()?),
StructType::VirtualPciPassthrough => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthrough>()?),
StructType::VirtualParallelPort => Some(from.as_any_ref().downcast_ref::<VirtualParallelPort>()?),
StructType::VirtualPointingDevice => Some(from.as_any_ref().downcast_ref::<VirtualPointingDevice>()?),
StructType::VirtualPrecisionClock => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClock>()?),
StructType::VirtualScsiPassthrough => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthrough>()?),
StructType::VirtualSerialPort => Some(from.as_any_ref().downcast_ref::<VirtualSerialPort>()?),
StructType::VirtualSoundCard => Some(from.as_any_ref().downcast_ref::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16>()?),
StructType::VirtualTpm => Some(from.as_any_ref().downcast_ref::<VirtualTpm>()?),
StructType::VirtualUsb => Some(from.as_any_ref().downcast_ref::<VirtualUsb>()?),
StructType::VirtualMachineVmciDevice => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDevice>()?),
StructType::VirtualMachineVmirom => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmirom>()?),
StructType::VirtualMachineVideoCard => Some(from.as_any_ref().downcast_ref::<VirtualMachineVideoCard>()?),
StructType::VirtualWdt => Some(from.as_any_ref().downcast_ref::<VirtualWdt>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevice => Ok(from.as_any_box().downcast::<VirtualDevice>()?),
StructType::VirtualCdrom => Ok(from.as_any_box().downcast::<VirtualCdrom>()?),
StructType::VirtualController => Ok(from.as_any_box().downcast::<VirtualController>()?),
StructType::VirtualIdeController => Ok(from.as_any_box().downcast::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Ok(from.as_any_box().downcast::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Ok(from.as_any_box().downcast::<VirtualNvmeController>()?),
StructType::VirtualPciController => Ok(from.as_any_box().downcast::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Ok(from.as_any_box().downcast::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Ok(from.as_any_box().downcast::<VirtualSataController>()?),
StructType::VirtualAhciController => Ok(from.as_any_box().downcast::<VirtualAhciController>()?),
StructType::VirtualScsiController => Ok(from.as_any_box().downcast::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Ok(from.as_any_box().downcast::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Ok(from.as_any_box().downcast::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Ok(from.as_any_box().downcast::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Ok(from.as_any_box().downcast::<VirtualSioController>()?),
StructType::VirtualUsbController => Ok(from.as_any_box().downcast::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Ok(from.as_any_box().downcast::<VirtualUsbxhciController>()?),
StructType::VirtualDisk => Ok(from.as_any_box().downcast::<VirtualDisk>()?),
StructType::VirtualEthernetCard => Ok(from.as_any_box().downcast::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Ok(from.as_any_box().downcast::<VirtualE1000>()?),
StructType::VirtualE1000E => Ok(from.as_any_box().downcast::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Ok(from.as_any_box().downcast::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Ok(from.as_any_box().downcast::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Ok(from.as_any_box().downcast::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Ok(from.as_any_box().downcast::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Ok(from.as_any_box().downcast::<VirtualVmxnet3Vrdma>()?),
StructType::VirtualFloppy => Ok(from.as_any_box().downcast::<VirtualFloppy>()?),
StructType::VirtualKeyboard => Ok(from.as_any_box().downcast::<VirtualKeyboard>()?),
StructType::VirtualNvdimm => Ok(from.as_any_box().downcast::<VirtualNvdimm>()?),
StructType::VirtualPciPassthrough => Ok(from.as_any_box().downcast::<VirtualPciPassthrough>()?),
StructType::VirtualParallelPort => Ok(from.as_any_box().downcast::<VirtualParallelPort>()?),
StructType::VirtualPointingDevice => Ok(from.as_any_box().downcast::<VirtualPointingDevice>()?),
StructType::VirtualPrecisionClock => Ok(from.as_any_box().downcast::<VirtualPrecisionClock>()?),
StructType::VirtualScsiPassthrough => Ok(from.as_any_box().downcast::<VirtualScsiPassthrough>()?),
StructType::VirtualSerialPort => Ok(from.as_any_box().downcast::<VirtualSerialPort>()?),
StructType::VirtualSoundCard => Ok(from.as_any_box().downcast::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Ok(from.as_any_box().downcast::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16>()?),
StructType::VirtualTpm => Ok(from.as_any_box().downcast::<VirtualTpm>()?),
StructType::VirtualUsb => Ok(from.as_any_box().downcast::<VirtualUsb>()?),
StructType::VirtualMachineVmciDevice => Ok(from.as_any_box().downcast::<VirtualMachineVmciDevice>()?),
StructType::VirtualMachineVmirom => Ok(from.as_any_box().downcast::<VirtualMachineVmirom>()?),
StructType::VirtualMachineVideoCard => Ok(from.as_any_box().downcast::<VirtualMachineVideoCard>()?),
StructType::VirtualWdt => Ok(from.as_any_box().downcast::<VirtualWdt>()?),
_ => Err(from.as_any_box()),
}
}
}
/// VirtualController is the base data object type for a device controller in
/// a virtual machine.
///
/// VirtualController extends
/// *VirtualDevice* to inherit
/// general information about a controller (such as name and description), and to allow
/// controllers to appear in a generic list of virtual devices.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualControllerTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualControllerTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualControllerTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualControllerTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualControllerTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualControllerTrait : super::traits::VirtualDeviceTrait {
/// Get a reference to the VirtualController parent struct
fn get_virtual_controller(&self) -> &super::structs::VirtualController;
/// Get a mutable reference to the VirtualController parent struct
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController;
}
impl std::ops::Deref for dyn VirtualControllerTrait {
type Target = super::structs::VirtualController;
fn deref(&self) -> &Self::Target {
self.get_virtual_controller()
}
}
impl std::ops::DerefMut for dyn VirtualControllerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_controller_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualControllerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualControllerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualControllerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualController"),
__out: &mut self.out,
}))
}
}
struct VirtualControllerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualControllerTrait>>,
}
impl miniserde::de::Map for VirtualControllerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualControllerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualControllerTrait for VirtualController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { self }
}
impl VirtualControllerTrait for VirtualIdeController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualNvdimmController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualNvmeController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualPciController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualPs2Controller {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualSataController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualAhciController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_sata_controller_.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_sata_controller_.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualScsiController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for ParaVirtualScsiController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_scsi_controller_.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_scsi_controller_.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualBusLogicController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_scsi_controller_.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_scsi_controller_.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualLsiLogicController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_scsi_controller_.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_scsi_controller_.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualLsiLogicSasController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_scsi_controller_.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_scsi_controller_.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualSioController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualUsbController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl VirtualControllerTrait for VirtualUsbxhciController {
fn get_virtual_controller(&self) -> &super::structs::VirtualController { &self.virtual_controller_ }
fn get_virtual_controller_mut(&mut self) -> &mut super::structs::VirtualController { &mut self.virtual_controller_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualControllerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualController => Some(from.as_any_ref().downcast_ref::<VirtualController>()?),
StructType::VirtualIdeController => Some(from.as_any_ref().downcast_ref::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Some(from.as_any_ref().downcast_ref::<VirtualNvmeController>()?),
StructType::VirtualPciController => Some(from.as_any_ref().downcast_ref::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Some(from.as_any_ref().downcast_ref::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Some(from.as_any_ref().downcast_ref::<VirtualSataController>()?),
StructType::VirtualAhciController => Some(from.as_any_ref().downcast_ref::<VirtualAhciController>()?),
StructType::VirtualScsiController => Some(from.as_any_ref().downcast_ref::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Some(from.as_any_ref().downcast_ref::<VirtualSioController>()?),
StructType::VirtualUsbController => Some(from.as_any_ref().downcast_ref::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciController>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualController => Ok(from.as_any_box().downcast::<VirtualController>()?),
StructType::VirtualIdeController => Ok(from.as_any_box().downcast::<VirtualIdeController>()?),
StructType::VirtualNvdimmController => Ok(from.as_any_box().downcast::<VirtualNvdimmController>()?),
StructType::VirtualNvmeController => Ok(from.as_any_box().downcast::<VirtualNvmeController>()?),
StructType::VirtualPciController => Ok(from.as_any_box().downcast::<VirtualPciController>()?),
StructType::VirtualPs2Controller => Ok(from.as_any_box().downcast::<VirtualPs2Controller>()?),
StructType::VirtualSataController => Ok(from.as_any_box().downcast::<VirtualSataController>()?),
StructType::VirtualAhciController => Ok(from.as_any_box().downcast::<VirtualAhciController>()?),
StructType::VirtualScsiController => Ok(from.as_any_box().downcast::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Ok(from.as_any_box().downcast::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Ok(from.as_any_box().downcast::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Ok(from.as_any_box().downcast::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasController>()?),
StructType::VirtualSioController => Ok(from.as_any_box().downcast::<VirtualSioController>()?),
StructType::VirtualUsbController => Ok(from.as_any_box().downcast::<VirtualUsbController>()?),
StructType::VirtualUsbxhciController => Ok(from.as_any_box().downcast::<VirtualUsbxhciController>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualSATAController data object type represents
/// a SATA controller in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualSataControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualSataControllerTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualSataControllerTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualSataControllerTrait : super::traits::VirtualControllerTrait {
/// Get a reference to the VirtualSataController parent struct
fn get_virtual_sata_controller(&self) -> &super::structs::VirtualSataController;
/// Get a mutable reference to the VirtualSataController parent struct
fn get_virtual_sata_controller_mut(&mut self) -> &mut super::structs::VirtualSataController;
}
impl std::ops::Deref for dyn VirtualSataControllerTrait {
type Target = super::structs::VirtualSataController;
fn deref(&self) -> &Self::Target {
self.get_virtual_sata_controller()
}
}
impl std::ops::DerefMut for dyn VirtualSataControllerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_sata_controller_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualSataControllerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualSataControllerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualSataControllerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualSataController"),
__out: &mut self.out,
}))
}
}
struct VirtualSataControllerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualSataControllerTrait>>,
}
impl miniserde::de::Map for VirtualSataControllerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualSataControllerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualSataControllerTrait for VirtualSataController {
fn get_virtual_sata_controller(&self) -> &super::structs::VirtualSataController { &self }
fn get_virtual_sata_controller_mut(&mut self) -> &mut super::structs::VirtualSataController { self }
}
impl VirtualSataControllerTrait for VirtualAhciController {
fn get_virtual_sata_controller(&self) -> &super::structs::VirtualSataController { &self.virtual_sata_controller_ }
fn get_virtual_sata_controller_mut(&mut self) -> &mut super::structs::VirtualSataController { &mut self.virtual_sata_controller_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualSataControllerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSataController => Some(from.as_any_ref().downcast_ref::<VirtualSataController>()?),
StructType::VirtualAhciController => Some(from.as_any_ref().downcast_ref::<VirtualAhciController>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSataController => Ok(from.as_any_box().downcast::<VirtualSataController>()?),
StructType::VirtualAhciController => Ok(from.as_any_box().downcast::<VirtualAhciController>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualSCSIController data object type represents
/// a SCSI controller in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualScsiControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualScsiControllerTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualScsiControllerTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualScsiControllerTrait : super::traits::VirtualControllerTrait {
/// Get a reference to the VirtualScsiController parent struct
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController;
/// Get a mutable reference to the VirtualScsiController parent struct
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController;
}
impl std::ops::Deref for dyn VirtualScsiControllerTrait {
type Target = super::structs::VirtualScsiController;
fn deref(&self) -> &Self::Target {
self.get_virtual_scsi_controller()
}
}
impl std::ops::DerefMut for dyn VirtualScsiControllerTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_scsi_controller_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualScsiControllerTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualScsiControllerTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualScsiControllerTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualScsiController"),
__out: &mut self.out,
}))
}
}
struct VirtualScsiControllerTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualScsiControllerTrait>>,
}
impl miniserde::de::Map for VirtualScsiControllerTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualScsiControllerTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualScsiControllerTrait for VirtualScsiController {
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController { &self }
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController { self }
}
impl VirtualScsiControllerTrait for ParaVirtualScsiController {
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController { &self.virtual_scsi_controller_ }
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController { &mut self.virtual_scsi_controller_ }
}
impl VirtualScsiControllerTrait for VirtualBusLogicController {
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController { &self.virtual_scsi_controller_ }
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController { &mut self.virtual_scsi_controller_ }
}
impl VirtualScsiControllerTrait for VirtualLsiLogicController {
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController { &self.virtual_scsi_controller_ }
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController { &mut self.virtual_scsi_controller_ }
}
impl VirtualScsiControllerTrait for VirtualLsiLogicSasController {
fn get_virtual_scsi_controller(&self) -> &super::structs::VirtualScsiController { &self.virtual_scsi_controller_ }
fn get_virtual_scsi_controller_mut(&mut self) -> &mut super::structs::VirtualScsiController { &mut self.virtual_scsi_controller_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualScsiControllerTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualScsiController => Some(from.as_any_ref().downcast_ref::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasController>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualScsiController => Ok(from.as_any_box().downcast::<VirtualScsiController>()?),
StructType::ParaVirtualScsiController => Ok(from.as_any_box().downcast::<ParaVirtualScsiController>()?),
StructType::VirtualBusLogicController => Ok(from.as_any_box().downcast::<VirtualBusLogicController>()?),
StructType::VirtualLsiLogicController => Ok(from.as_any_box().downcast::<VirtualLsiLogicController>()?),
StructType::VirtualLsiLogicSasController => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasController>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VirtualEthernetCard* data object contains the properties
/// of an Ethernet adapter attached to a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualEthernetCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualEthernetCardTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualEthernetCardTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualEthernetCardTrait : super::traits::VirtualDeviceTrait {
/// Get a reference to the VirtualEthernetCard parent struct
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard;
/// Get a mutable reference to the VirtualEthernetCard parent struct
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard;
}
impl std::ops::Deref for dyn VirtualEthernetCardTrait {
type Target = super::structs::VirtualEthernetCard;
fn deref(&self) -> &Self::Target {
self.get_virtual_ethernet_card()
}
}
impl std::ops::DerefMut for dyn VirtualEthernetCardTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_ethernet_card_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualEthernetCardTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualEthernetCardTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualEthernetCardTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualEthernetCard"),
__out: &mut self.out,
}))
}
}
struct VirtualEthernetCardTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualEthernetCardTrait>>,
}
impl miniserde::de::Map for VirtualEthernetCardTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualEthernetCardTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualEthernetCardTrait for VirtualEthernetCard {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { self }
}
impl VirtualEthernetCardTrait for VirtualE1000 {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualE1000E {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualPcNet32 {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualSriovEthernetCard {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualVmxnet {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualVmxnet2 {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_vmxnet_.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_vmxnet_.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualVmxnet3 {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_vmxnet_.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_vmxnet_.virtual_ethernet_card_ }
}
impl VirtualEthernetCardTrait for VirtualVmxnet3Vrdma {
fn get_virtual_ethernet_card(&self) -> &super::structs::VirtualEthernetCard { &self.virtual_vmxnet_3_.virtual_vmxnet_.virtual_ethernet_card_ }
fn get_virtual_ethernet_card_mut(&mut self) -> &mut super::structs::VirtualEthernetCard { &mut self.virtual_vmxnet_3_.virtual_vmxnet_.virtual_ethernet_card_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualEthernetCardTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Some(from.as_any_ref().downcast_ref::<VirtualE1000>()?),
StructType::VirtualE1000E => Some(from.as_any_ref().downcast_ref::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Vrdma>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualEthernetCard => Ok(from.as_any_box().downcast::<VirtualEthernetCard>()?),
StructType::VirtualE1000 => Ok(from.as_any_box().downcast::<VirtualE1000>()?),
StructType::VirtualE1000E => Ok(from.as_any_box().downcast::<VirtualE1000E>()?),
StructType::VirtualPcNet32 => Ok(from.as_any_box().downcast::<VirtualPcNet32>()?),
StructType::VirtualSriovEthernetCard => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCard>()?),
StructType::VirtualVmxnet => Ok(from.as_any_box().downcast::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Ok(from.as_any_box().downcast::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Ok(from.as_any_box().downcast::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Ok(from.as_any_box().downcast::<VirtualVmxnet3Vrdma>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualVmxnet data object type represents an instance
/// of the Vmxnet virtual Ethernet adapter attached to a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualVmxnetTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualVmxnetTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualVmxnetTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualVmxnetTrait : super::traits::VirtualEthernetCardTrait {
/// Get a reference to the VirtualVmxnet parent struct
fn get_virtual_vmxnet(&self) -> &super::structs::VirtualVmxnet;
/// Get a mutable reference to the VirtualVmxnet parent struct
fn get_virtual_vmxnet_mut(&mut self) -> &mut super::structs::VirtualVmxnet;
}
impl std::ops::Deref for dyn VirtualVmxnetTrait {
type Target = super::structs::VirtualVmxnet;
fn deref(&self) -> &Self::Target {
self.get_virtual_vmxnet()
}
}
impl std::ops::DerefMut for dyn VirtualVmxnetTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_vmxnet_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualVmxnetTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualVmxnetTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualVmxnetTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualVmxnet"),
__out: &mut self.out,
}))
}
}
struct VirtualVmxnetTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualVmxnetTrait>>,
}
impl miniserde::de::Map for VirtualVmxnetTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualVmxnetTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualVmxnetTrait for VirtualVmxnet {
fn get_virtual_vmxnet(&self) -> &super::structs::VirtualVmxnet { &self }
fn get_virtual_vmxnet_mut(&mut self) -> &mut super::structs::VirtualVmxnet { self }
}
impl VirtualVmxnetTrait for VirtualVmxnet2 {
fn get_virtual_vmxnet(&self) -> &super::structs::VirtualVmxnet { &self.virtual_vmxnet_ }
fn get_virtual_vmxnet_mut(&mut self) -> &mut super::structs::VirtualVmxnet { &mut self.virtual_vmxnet_ }
}
impl VirtualVmxnetTrait for VirtualVmxnet3 {
fn get_virtual_vmxnet(&self) -> &super::structs::VirtualVmxnet { &self.virtual_vmxnet_ }
fn get_virtual_vmxnet_mut(&mut self) -> &mut super::structs::VirtualVmxnet { &mut self.virtual_vmxnet_ }
}
impl VirtualVmxnetTrait for VirtualVmxnet3Vrdma {
fn get_virtual_vmxnet(&self) -> &super::structs::VirtualVmxnet { &self.virtual_vmxnet_3_.virtual_vmxnet_ }
fn get_virtual_vmxnet_mut(&mut self) -> &mut super::structs::VirtualVmxnet { &mut self.virtual_vmxnet_3_.virtual_vmxnet_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualVmxnetTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Vrdma>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet => Ok(from.as_any_box().downcast::<VirtualVmxnet>()?),
StructType::VirtualVmxnet2 => Ok(from.as_any_box().downcast::<VirtualVmxnet2>()?),
StructType::VirtualVmxnet3 => Ok(from.as_any_box().downcast::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Ok(from.as_any_box().downcast::<VirtualVmxnet3Vrdma>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualVmxnet3 data object type represents an instance
/// of the Vmxnet3 virtual Ethernet adapter attached to a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualVmxnet3Trait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualVmxnet3Trait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualVmxnet3Trait`
///
/// *(10 of 65 paths)*
pub trait VirtualVmxnet3Trait : super::traits::VirtualVmxnetTrait {
/// Get a reference to the VirtualVmxnet3 parent struct
fn get_virtual_vmxnet_3(&self) -> &super::structs::VirtualVmxnet3;
/// Get a mutable reference to the VirtualVmxnet3 parent struct
fn get_virtual_vmxnet_3_mut(&mut self) -> &mut super::structs::VirtualVmxnet3;
}
impl std::ops::Deref for dyn VirtualVmxnet3Trait {
type Target = super::structs::VirtualVmxnet3;
fn deref(&self) -> &Self::Target {
self.get_virtual_vmxnet_3()
}
}
impl std::ops::DerefMut for dyn VirtualVmxnet3Trait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_vmxnet_3_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualVmxnet3Trait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualVmxnet3Trait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualVmxnet3TraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualVmxnet3"),
__out: &mut self.out,
}))
}
}
struct VirtualVmxnet3TraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualVmxnet3Trait>>,
}
impl miniserde::de::Map for VirtualVmxnet3TraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualVmxnet3Trait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualVmxnet3Trait for VirtualVmxnet3 {
fn get_virtual_vmxnet_3(&self) -> &super::structs::VirtualVmxnet3 { &self }
fn get_virtual_vmxnet_3_mut(&mut self) -> &mut super::structs::VirtualVmxnet3 { self }
}
impl VirtualVmxnet3Trait for VirtualVmxnet3Vrdma {
fn get_virtual_vmxnet_3(&self) -> &super::structs::VirtualVmxnet3 { &self.virtual_vmxnet_3_ }
fn get_virtual_vmxnet_3_mut(&mut self) -> &mut super::structs::VirtualVmxnet3 { &mut self.virtual_vmxnet_3_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualVmxnet3Trait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet3 => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Vrdma>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet3 => Ok(from.as_any_box().downcast::<VirtualVmxnet3>()?),
StructType::VirtualVmxnet3Vrdma => Ok(from.as_any_box().downcast::<VirtualVmxnet3Vrdma>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type represents a sound card in
/// a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*]⇒VirtualSoundCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device⇒VirtualSoundCardTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device⇒VirtualSoundCardTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualSoundCardTrait : super::traits::VirtualDeviceTrait {
/// Get a reference to the VirtualSoundCard parent struct
fn get_virtual_sound_card(&self) -> &super::structs::VirtualSoundCard;
/// Get a mutable reference to the VirtualSoundCard parent struct
fn get_virtual_sound_card_mut(&mut self) -> &mut super::structs::VirtualSoundCard;
}
impl std::ops::Deref for dyn VirtualSoundCardTrait {
type Target = super::structs::VirtualSoundCard;
fn deref(&self) -> &Self::Target {
self.get_virtual_sound_card()
}
}
impl std::ops::DerefMut for dyn VirtualSoundCardTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_sound_card_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualSoundCardTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualSoundCardTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualSoundCardTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualSoundCard"),
__out: &mut self.out,
}))
}
}
struct VirtualSoundCardTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualSoundCardTrait>>,
}
impl miniserde::de::Map for VirtualSoundCardTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualSoundCardTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualSoundCardTrait for VirtualSoundCard {
fn get_virtual_sound_card(&self) -> &super::structs::VirtualSoundCard { &self }
fn get_virtual_sound_card_mut(&mut self) -> &mut super::structs::VirtualSoundCard { self }
}
impl VirtualSoundCardTrait for VirtualEnsoniq1371 {
fn get_virtual_sound_card(&self) -> &super::structs::VirtualSoundCard { &self.virtual_sound_card_ }
fn get_virtual_sound_card_mut(&mut self) -> &mut super::structs::VirtualSoundCard { &mut self.virtual_sound_card_ }
}
impl VirtualSoundCardTrait for VirtualHdAudioCard {
fn get_virtual_sound_card(&self) -> &super::structs::VirtualSoundCard { &self.virtual_sound_card_ }
fn get_virtual_sound_card_mut(&mut self) -> &mut super::structs::VirtualSoundCard { &mut self.virtual_sound_card_ }
}
impl VirtualSoundCardTrait for VirtualSoundBlaster16 {
fn get_virtual_sound_card(&self) -> &super::structs::VirtualSoundCard { &self.virtual_sound_card_ }
fn get_virtual_sound_card_mut(&mut self) -> &mut super::structs::VirtualSoundCard { &mut self.virtual_sound_card_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualSoundCardTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSoundCard => Some(from.as_any_ref().downcast_ref::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSoundCard => Ok(from.as_any_box().downcast::<VirtualSoundCard>()?),
StructType::VirtualEnsoniq1371 => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371>()?),
StructType::VirtualHdAudioCard => Ok(from.as_any_box().downcast::<VirtualHdAudioCard>()?),
StructType::VirtualSoundBlaster16 => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16>()?),
_ => Err(from.as_any_box()),
}
}
}
/// <code>*VirtualDeviceBackingInfo*</code> is a base data object type
/// for information about the backing of a device in a virtual machine.
///
/// This base type does not define any properties. It is used as a namespace
/// for general-purpose subtypes. Specific devices are represented by subtypes
/// which define properties for device-specific backing information.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?`
///
/// *(10 of 100 paths)*
pub trait VirtualDeviceBackingInfoTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceBackingInfoTrait for VirtualDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDeviceDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualCdromAtapiBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualCdromPassthroughBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskRawDiskVer2BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskPartitionedRawDiskVer2BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualEthernetCardLegacyNetworkBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualEthernetCardNetworkBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualFloppyDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPciPassthroughDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPciPassthroughDynamicBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualParallelPortDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPointingDeviceDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualScsiPassthroughDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSerialPortDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSoundCardDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualUsbRemoteHostBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualUsbusbBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDeviceFileBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualCdromIsoBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskFlatVer1BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskFlatVer2BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskLocalPMemBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskRawDiskMappingVer1BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskSeSparseBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskSparseVer1BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDiskSparseVer2BackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualFloppyImageBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualNvdimmBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualParallelPortFileBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSerialPortFileBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDevicePipeBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSerialPortPipeBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDeviceRemoteDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualCdromRemoteAtapiBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualCdromRemotePassthroughBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualFloppyRemoteDeviceBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualUsbRemoteClientBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualDeviceUriBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSerialPortUriBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualEthernetCardDistributedVirtualPortBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualEthernetCardOpaqueNetworkBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPciPassthroughDvxBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPciPassthroughPluginBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPciPassthroughVmiopBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualPrecisionClockSystemClockBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSerialPortThinPrintBackingInfo {
}
impl VirtualDeviceBackingInfoTrait for VirtualSriovEthernetCardSriovBackingInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBackingInfo>()?),
StructType::VirtualDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingInfo>()?),
StructType::VirtualDeviceFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingInfo>()?),
StructType::VirtualDevicePipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingInfo>()?),
StructType::VirtualDeviceRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingInfo>()?),
StructType::VirtualDeviceUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingInfo>()?),
StructType::VirtualEthernetCardDistributedVirtualPortBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardDistributedVirtualPortBackingInfo>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOpaqueNetworkBackingInfo>()?),
StructType::VirtualPciPassthroughDvxBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDvxBackingInfo>()?),
StructType::VirtualPciPassthroughPluginBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingInfo>()?),
StructType::VirtualPrecisionClockSystemClockBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockSystemClockBackingInfo>()?),
StructType::VirtualSerialPortThinPrintBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortThinPrintBackingInfo>()?),
StructType::VirtualSriovEthernetCardSriovBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardSriovBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceBackingInfo>()?),
StructType::VirtualDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingInfo>()?),
StructType::VirtualDeviceFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Ok(from.as_any_box().downcast::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingInfo>()?),
StructType::VirtualDevicePipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingInfo>()?),
StructType::VirtualDeviceRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingInfo>()?),
StructType::VirtualDeviceUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingInfo>()?),
StructType::VirtualEthernetCardDistributedVirtualPortBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardDistributedVirtualPortBackingInfo>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardOpaqueNetworkBackingInfo>()?),
StructType::VirtualPciPassthroughDvxBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDvxBackingInfo>()?),
StructType::VirtualPciPassthroughPluginBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingInfo>()?),
StructType::VirtualPrecisionClockSystemClockBackingInfo => Ok(from.as_any_box().downcast::<VirtualPrecisionClockSystemClockBackingInfo>()?),
StructType::VirtualSerialPortThinPrintBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortThinPrintBackingInfo>()?),
StructType::VirtualSriovEthernetCardSriovBackingInfo => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardSriovBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The <code>*VirtualDeviceDeviceBackingInfo*</code> data object type
/// defines information about a host device or resource that backs a device
/// in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceDeviceBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDeviceDeviceBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
/// Get a reference to the VirtualDeviceDeviceBackingInfo parent struct
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo;
/// Get a mutable reference to the VirtualDeviceDeviceBackingInfo parent struct
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo;
}
impl std::ops::Deref for dyn VirtualDeviceDeviceBackingInfoTrait {
type Target = super::structs::VirtualDeviceDeviceBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_device_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceDeviceBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_device_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceDeviceBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceDeviceBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceDeviceBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceDeviceBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceDeviceBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceDeviceBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceDeviceBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceDeviceBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualDeviceDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { self }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualCdromAtapiBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualCdromPassthroughBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualDiskRawDiskVer2BackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualDiskPartitionedRawDiskVer2BackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_disk_raw_disk_ver_2_backing_info_.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_disk_raw_disk_ver_2_backing_info_.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualEthernetCardLegacyNetworkBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualEthernetCardNetworkBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualFloppyDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualPciPassthroughDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualPciPassthroughDynamicBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualParallelPortDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualPointingDeviceDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualScsiPassthroughDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualSerialPortDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualSoundCardDeviceBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualUsbRemoteHostBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl VirtualDeviceDeviceBackingInfoTrait for VirtualUsbusbBackingInfo {
fn get_virtual_device_device_backing_info(&self) -> &super::structs::VirtualDeviceDeviceBackingInfo { &self.virtual_device_device_backing_info_ }
fn get_virtual_device_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingInfo { &mut self.virtual_device_device_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceDeviceBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingInfo>()?),
StructType::VirtualCdromAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingInfo>()?),
StructType::VirtualCdromPassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingInfo>()?),
StructType::VirtualDiskRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingInfo>()?),
StructType::VirtualEthernetCardNetworkBackingInfo => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingInfo>()?),
StructType::VirtualFloppyDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingInfo>()?),
StructType::VirtualPciPassthroughDynamicBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingInfo>()?),
StructType::VirtualParallelPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingInfo>()?),
StructType::VirtualPointingDeviceDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualPointingDeviceDeviceBackingInfo>()?),
StructType::VirtualScsiPassthroughDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingInfo>()?),
StructType::VirtualSerialPortDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingInfo>()?),
StructType::VirtualSoundCardDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteHostBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingInfo>()?),
StructType::VirtualUsbusbBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type contains information about backing a virtual disk by
/// using a host device, as used by VMware Server.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDiskRawDiskVer2BackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDiskRawDiskVer2BackingInfoTrait : super::traits::VirtualDeviceDeviceBackingInfoTrait {
/// Get a reference to the VirtualDiskRawDiskVer2BackingInfo parent struct
fn get_virtual_disk_raw_disk_ver_2_backing_info(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingInfo;
/// Get a mutable reference to the VirtualDiskRawDiskVer2BackingInfo parent struct
fn get_virtual_disk_raw_disk_ver_2_backing_info_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingInfo;
}
impl std::ops::Deref for dyn VirtualDiskRawDiskVer2BackingInfoTrait {
type Target = super::structs::VirtualDiskRawDiskVer2BackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_disk_raw_disk_ver_2_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDiskRawDiskVer2BackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_disk_raw_disk_ver_2_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDiskRawDiskVer2BackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDiskRawDiskVer2BackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDiskRawDiskVer2BackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDiskRawDiskVer2BackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDiskRawDiskVer2BackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDiskRawDiskVer2BackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDiskRawDiskVer2BackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDiskRawDiskVer2BackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDiskRawDiskVer2BackingInfoTrait for VirtualDiskRawDiskVer2BackingInfo {
fn get_virtual_disk_raw_disk_ver_2_backing_info(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingInfo { &self }
fn get_virtual_disk_raw_disk_ver_2_backing_info_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingInfo { self }
}
impl VirtualDiskRawDiskVer2BackingInfoTrait for VirtualDiskPartitionedRawDiskVer2BackingInfo {
fn get_virtual_disk_raw_disk_ver_2_backing_info(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingInfo { &self.virtual_disk_raw_disk_ver_2_backing_info_ }
fn get_virtual_disk_raw_disk_ver_2_backing_info_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingInfo { &mut self.virtual_disk_raw_disk_ver_2_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDiskRawDiskVer2BackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingInfo>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// <code>*VirtualDeviceFileBackingInfo*</code> is a data object type
/// for information about file backing for a device in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDeviceFileBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceFileBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDeviceFileBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
/// Get a reference to the VirtualDeviceFileBackingInfo parent struct
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo;
/// Get a mutable reference to the VirtualDeviceFileBackingInfo parent struct
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo;
}
impl std::ops::Deref for dyn VirtualDeviceFileBackingInfoTrait {
type Target = super::structs::VirtualDeviceFileBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_file_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceFileBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_file_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceFileBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceFileBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceFileBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceFileBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceFileBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceFileBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceFileBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceFileBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDeviceFileBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { self }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualCdromIsoBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskFlatVer1BackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskFlatVer2BackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskLocalPMemBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskRawDiskMappingVer1BackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskSeSparseBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskSparseVer1BackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualDiskSparseVer2BackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualFloppyImageBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualNvdimmBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualParallelPortFileBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl VirtualDeviceFileBackingInfoTrait for VirtualSerialPortFileBackingInfo {
fn get_virtual_device_file_backing_info(&self) -> &super::structs::VirtualDeviceFileBackingInfo { &self.virtual_device_file_backing_info_ }
fn get_virtual_device_file_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingInfo { &mut self.virtual_device_file_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceFileBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingInfo>()?),
StructType::VirtualCdromIsoBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingInfo>()?),
StructType::VirtualDiskFlatVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingInfo>()?),
StructType::VirtualDiskFlatVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingInfo>()?),
StructType::VirtualDiskLocalPMemBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingInfo>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingInfo>()?),
StructType::VirtualDiskSeSparseBackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingInfo>()?),
StructType::VirtualDiskSparseVer1BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingInfo>()?),
StructType::VirtualDiskSparseVer2BackingInfo => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingInfo>()?),
StructType::VirtualFloppyImageBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingInfo>()?),
StructType::VirtualNvdimmBackingInfo => Ok(from.as_any_box().downcast::<VirtualNvdimmBackingInfo>()?),
StructType::VirtualParallelPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingInfo>()?),
StructType::VirtualSerialPortFileBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The <code>*VirtualDevicePipeBackingInfo*</code> data object type
/// defines information for using a named pipe as backing for a device
/// in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDevicePipeBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDevicePipeBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDevicePipeBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
/// Get a reference to the VirtualDevicePipeBackingInfo parent struct
fn get_virtual_device_pipe_backing_info(&self) -> &super::structs::VirtualDevicePipeBackingInfo;
/// Get a mutable reference to the VirtualDevicePipeBackingInfo parent struct
fn get_virtual_device_pipe_backing_info_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingInfo;
}
impl std::ops::Deref for dyn VirtualDevicePipeBackingInfoTrait {
type Target = super::structs::VirtualDevicePipeBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_pipe_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDevicePipeBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_pipe_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDevicePipeBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDevicePipeBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDevicePipeBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDevicePipeBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDevicePipeBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDevicePipeBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDevicePipeBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDevicePipeBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDevicePipeBackingInfoTrait for VirtualDevicePipeBackingInfo {
fn get_virtual_device_pipe_backing_info(&self) -> &super::structs::VirtualDevicePipeBackingInfo { &self }
fn get_virtual_device_pipe_backing_info_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingInfo { self }
}
impl VirtualDevicePipeBackingInfoTrait for VirtualSerialPortPipeBackingInfo {
fn get_virtual_device_pipe_backing_info(&self) -> &super::structs::VirtualDevicePipeBackingInfo { &self.virtual_device_pipe_backing_info_ }
fn get_virtual_device_pipe_backing_info_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingInfo { &mut self.virtual_device_pipe_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDevicePipeBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingInfo>()?),
StructType::VirtualSerialPortPipeBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// <code>*VirtualDeviceRemoteDeviceBackingInfo*</code> is a data object type
/// for information
/// about a remote device backing used by a device in a virtual machine.
///
/// The primary difference between a remote device backing and a
/// local device backing is that the VirtualCenter server cannot provide a list
/// of remote host devices available for this virtual device backing.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceRemoteDeviceBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDeviceRemoteDeviceBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
/// Get a reference to the VirtualDeviceRemoteDeviceBackingInfo parent struct
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo;
/// Get a mutable reference to the VirtualDeviceRemoteDeviceBackingInfo parent struct
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo;
}
impl std::ops::Deref for dyn VirtualDeviceRemoteDeviceBackingInfoTrait {
type Target = super::structs::VirtualDeviceRemoteDeviceBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_remote_device_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceRemoteDeviceBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_remote_device_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceRemoteDeviceBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceRemoteDeviceBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceRemoteDeviceBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceRemoteDeviceBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceRemoteDeviceBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceRemoteDeviceBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceRemoteDeviceBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceRemoteDeviceBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceRemoteDeviceBackingInfoTrait for VirtualDeviceRemoteDeviceBackingInfo {
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo { &self }
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo { self }
}
impl VirtualDeviceRemoteDeviceBackingInfoTrait for VirtualCdromRemoteAtapiBackingInfo {
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo { &self.virtual_device_remote_device_backing_info_ }
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo { &mut self.virtual_device_remote_device_backing_info_ }
}
impl VirtualDeviceRemoteDeviceBackingInfoTrait for VirtualCdromRemotePassthroughBackingInfo {
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo { &self.virtual_device_remote_device_backing_info_ }
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo { &mut self.virtual_device_remote_device_backing_info_ }
}
impl VirtualDeviceRemoteDeviceBackingInfoTrait for VirtualFloppyRemoteDeviceBackingInfo {
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo { &self.virtual_device_remote_device_backing_info_ }
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo { &mut self.virtual_device_remote_device_backing_info_ }
}
impl VirtualDeviceRemoteDeviceBackingInfoTrait for VirtualUsbRemoteClientBackingInfo {
fn get_virtual_device_remote_device_backing_info(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingInfo { &self.virtual_device_remote_device_backing_info_ }
fn get_virtual_device_remote_device_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingInfo { &mut self.virtual_device_remote_device_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceRemoteDeviceBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingInfo>()?),
StructType::VirtualCdromRemoteAtapiBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingInfo>()?),
StructType::VirtualCdromRemotePassthroughBackingInfo => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingInfo>()?),
StructType::VirtualFloppyRemoteDeviceBackingInfo => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingInfo>()?),
StructType::VirtualUsbRemoteClientBackingInfo => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The <code>*VirtualDeviceURIBackingInfo*</code> data object type
/// defines information for using a network socket as backing for a virtual device.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualDeviceUriBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualDeviceUriBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualDeviceUriBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
/// Get a reference to the VirtualDeviceUriBackingInfo parent struct
fn get_virtual_device_uri_backing_info(&self) -> &super::structs::VirtualDeviceUriBackingInfo;
/// Get a mutable reference to the VirtualDeviceUriBackingInfo parent struct
fn get_virtual_device_uri_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingInfo;
}
impl std::ops::Deref for dyn VirtualDeviceUriBackingInfoTrait {
type Target = super::structs::VirtualDeviceUriBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_uri_backing_info()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceUriBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_uri_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceUriBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceUriBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceUriBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceUriBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceUriBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceUriBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceUriBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceUriBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceUriBackingInfoTrait for VirtualDeviceUriBackingInfo {
fn get_virtual_device_uri_backing_info(&self) -> &super::structs::VirtualDeviceUriBackingInfo { &self }
fn get_virtual_device_uri_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingInfo { self }
}
impl VirtualDeviceUriBackingInfoTrait for VirtualSerialPortUriBackingInfo {
fn get_virtual_device_uri_backing_info(&self) -> &super::structs::VirtualDeviceUriBackingInfo { &self.virtual_device_uri_backing_info_ }
fn get_virtual_device_uri_backing_info_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingInfo { &mut self.virtual_device_uri_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceUriBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingInfo>()?),
StructType::VirtualSerialPortUriBackingInfo => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualPCIPassthrough.PluginBackingInfo is a base data object type
/// for encoding plugin-specific information.
///
/// This base type does not define
/// any properties. Specific plugin types are represented by subtypes which
/// define properties for subtype-specific backing information.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].backing?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.disk?[*].disk_backing_info?⇒VirtualPciPassthroughPluginBackingInfoTrait`
///
/// *(10 of 100 paths)*
pub trait VirtualPciPassthroughPluginBackingInfoTrait : super::traits::VirtualDeviceBackingInfoTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualPciPassthroughPluginBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualPciPassthroughPluginBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualPciPassthroughPluginBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualPciPassthroughPluginBackingInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualPciPassthroughPluginBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualPciPassthroughPluginBackingInfoTrait>>,
}
impl miniserde::de::Map for VirtualPciPassthroughPluginBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualPciPassthroughPluginBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualPciPassthroughPluginBackingInfoTrait for VirtualPciPassthroughPluginBackingInfo {
}
impl VirtualPciPassthroughPluginBackingInfoTrait for VirtualPciPassthroughVmiopBackingInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualPciPassthroughPluginBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualPciPassthroughPluginBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualPciPassthroughPluginBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingInfo>()?),
StructType::VirtualPciPassthroughVmiopBackingInfo => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// <code>*VirtualDeviceBusSlotInfo*</code> is a base data object type
/// for information about device connection to its bus.
///
/// This base type does not
/// define any properties. It is used as a namespace for general-purpose subtypes.
/// Specific devices types are represented by subtypes which define properties for
/// device-specific backing information.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].slot_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device.slot_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device.slot_info?`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.slot_info?`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.slot_info?`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.slot_info?`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.slot_info?`
///
/// *(10 of 65 paths)*
pub trait VirtualDeviceBusSlotInfoTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceBusSlotInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceBusSlotInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceBusSlotInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceBusSlotInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceBusSlotInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceBusSlotInfoTrait>>,
}
impl miniserde::de::Map for VirtualDeviceBusSlotInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceBusSlotInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceBusSlotInfoTrait for VirtualDeviceBusSlotInfo {
}
impl VirtualDeviceBusSlotInfoTrait for VirtualDevicePciBusSlotInfo {
}
impl VirtualDeviceBusSlotInfoTrait for VirtualUsbControllerPciBusSlotInfo {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceBusSlotInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBusSlotInfo>()?),
StructType::VirtualDevicePciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerPciBusSlotInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualDeviceBusSlotInfo>()?),
StructType::VirtualDevicePciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualUsbControllerPciBusSlotInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The <code>*VirtualDevicePciBusSlotInfo*</code> data object type
/// defines information about a pci bus slot of pci device in a virtual machine.
///
/// ### How to access
/// - `VirtualMachine::config.hardware.device?[*].slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*].device.slot_info?⇒VirtualDevicePciBusSlotInfoTrait`
///
/// *(10 of 65 paths)*
pub trait VirtualDevicePciBusSlotInfoTrait : super::traits::VirtualDeviceBusSlotInfoTrait {
/// Get a reference to the VirtualDevicePciBusSlotInfo parent struct
fn get_virtual_device_pci_bus_slot_info(&self) -> &super::structs::VirtualDevicePciBusSlotInfo;
/// Get a mutable reference to the VirtualDevicePciBusSlotInfo parent struct
fn get_virtual_device_pci_bus_slot_info_mut(&mut self) -> &mut super::structs::VirtualDevicePciBusSlotInfo;
}
impl std::ops::Deref for dyn VirtualDevicePciBusSlotInfoTrait {
type Target = super::structs::VirtualDevicePciBusSlotInfo;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_pci_bus_slot_info()
}
}
impl std::ops::DerefMut for dyn VirtualDevicePciBusSlotInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_pci_bus_slot_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDevicePciBusSlotInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDevicePciBusSlotInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDevicePciBusSlotInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDevicePciBusSlotInfo"),
__out: &mut self.out,
}))
}
}
struct VirtualDevicePciBusSlotInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDevicePciBusSlotInfoTrait>>,
}
impl miniserde::de::Map for VirtualDevicePciBusSlotInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDevicePciBusSlotInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDevicePciBusSlotInfoTrait for VirtualDevicePciBusSlotInfo {
fn get_virtual_device_pci_bus_slot_info(&self) -> &super::structs::VirtualDevicePciBusSlotInfo { &self }
fn get_virtual_device_pci_bus_slot_info_mut(&mut self) -> &mut super::structs::VirtualDevicePciBusSlotInfo { self }
}
impl VirtualDevicePciBusSlotInfoTrait for VirtualUsbControllerPciBusSlotInfo {
fn get_virtual_device_pci_bus_slot_info(&self) -> &super::structs::VirtualDevicePciBusSlotInfo { &self.virtual_device_pci_bus_slot_info_ }
fn get_virtual_device_pci_bus_slot_info_mut(&mut self) -> &mut super::structs::VirtualDevicePciBusSlotInfo { &mut self.virtual_device_pci_bus_slot_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDevicePciBusSlotInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerPciBusSlotInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualDevicePciBusSlotInfo>()?),
StructType::VirtualUsbControllerPciBusSlotInfo => Ok(from.as_any_box().downcast::<VirtualUsbControllerPciBusSlotInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualDeviceOption data object type contains information about
/// a virtual device type, the options for configuring the virtual device,
/// and the relationship between this virtual device and other devices.
///
/// The vSphere API groups device configurations that are mutually exclusive
/// into different configuration objects; each of these configuration objects
/// may define subtypes for virtual device backing options
/// that are independent of the virtual device.
/// Backing-dependent options should appear in a subtype of
/// *VirtualDeviceBackingOption*.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]`
pub trait VirtualDeviceOptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualDeviceOption parent struct
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption;
/// Get a mutable reference to the VirtualDeviceOption parent struct
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption;
}
impl std::ops::Deref for dyn VirtualDeviceOptionTrait {
type Target = super::structs::VirtualDeviceOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceOptionTrait for VirtualDeviceOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { self }
}
impl VirtualDeviceOptionTrait for VirtualCdromOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualIdeControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualNvdimmControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualNvmeControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPciControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPs2ControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSataControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualAhciControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_sata_controller_option_.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_sata_controller_option_.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualScsiControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for ParaVirtualScsiControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualBusLogicControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualLsiLogicControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualLsiLogicSasControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSioControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualUsbControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualUsbxhciControllerOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_controller_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_controller_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualDiskOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualEthernetCardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualE1000Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualE1000EOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPcNet32Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSriovEthernetCardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVmxnetOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVmxnet2Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVmxnet3Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVmxnet3VrdmaOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_vmxnet_3_option_.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_vmxnet_3_option_.virtual_vmxnet_option_.virtual_ethernet_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualFloppyOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualKeyboardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualNvdimmOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPciPassthroughOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualParallelPortOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPointingDeviceOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualPrecisionClockOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualScsiPassthroughOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSerialPortOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSoundCardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualEnsoniq1371Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_sound_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_sound_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualHdAudioCardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_sound_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_sound_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualSoundBlaster16Option {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_sound_card_option_.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_sound_card_option_.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualTpmOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualUsbOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualMachineVmciDeviceOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVmiromOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualVideoCardOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl VirtualDeviceOptionTrait for VirtualWdtOption {
fn get_virtual_device_option(&self) -> &super::structs::VirtualDeviceOption { &self.virtual_device_option_ }
fn get_virtual_device_option_mut(&mut self) -> &mut super::structs::VirtualDeviceOption { &mut self.virtual_device_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceOption>()?),
StructType::VirtualCdromOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromOption>()?),
StructType::VirtualControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciControllerOption>()?),
StructType::VirtualDiskOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskOption>()?),
StructType::VirtualEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Some(from.as_any_ref().downcast_ref::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Some(from.as_any_ref().downcast_ref::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3VrdmaOption>()?),
StructType::VirtualFloppyOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyOption>()?),
StructType::VirtualKeyboardOption => Some(from.as_any_ref().downcast_ref::<VirtualKeyboardOption>()?),
StructType::VirtualNvdimmOption => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmOption>()?),
StructType::VirtualPciPassthroughOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughOption>()?),
StructType::VirtualParallelPortOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortOption>()?),
StructType::VirtualPointingDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceOption>()?),
StructType::VirtualPrecisionClockOption => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockOption>()?),
StructType::VirtualScsiPassthroughOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughOption>()?),
StructType::VirtualSerialPortOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortOption>()?),
StructType::VirtualSoundCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16Option>()?),
StructType::VirtualTpmOption => Some(from.as_any_ref().downcast_ref::<VirtualTpmOption>()?),
StructType::VirtualUsbOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbOption>()?),
StructType::VirtualMachineVmciDeviceOption => Some(from.as_any_ref().downcast_ref::<VirtualMachineVmciDeviceOption>()?),
StructType::VirtualVmiromOption => Some(from.as_any_ref().downcast_ref::<VirtualVmiromOption>()?),
StructType::VirtualVideoCardOption => Some(from.as_any_ref().downcast_ref::<VirtualVideoCardOption>()?),
StructType::VirtualWdtOption => Some(from.as_any_ref().downcast_ref::<VirtualWdtOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceOption => Ok(from.as_any_box().downcast::<VirtualDeviceOption>()?),
StructType::VirtualCdromOption => Ok(from.as_any_box().downcast::<VirtualCdromOption>()?),
StructType::VirtualControllerOption => Ok(from.as_any_box().downcast::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Ok(from.as_any_box().downcast::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Ok(from.as_any_box().downcast::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Ok(from.as_any_box().downcast::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Ok(from.as_any_box().downcast::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Ok(from.as_any_box().downcast::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Ok(from.as_any_box().downcast::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Ok(from.as_any_box().downcast::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Ok(from.as_any_box().downcast::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Ok(from.as_any_box().downcast::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Ok(from.as_any_box().downcast::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbxhciControllerOption>()?),
StructType::VirtualDiskOption => Ok(from.as_any_box().downcast::<VirtualDiskOption>()?),
StructType::VirtualEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Ok(from.as_any_box().downcast::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Ok(from.as_any_box().downcast::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Ok(from.as_any_box().downcast::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Ok(from.as_any_box().downcast::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Ok(from.as_any_box().downcast::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Ok(from.as_any_box().downcast::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3VrdmaOption>()?),
StructType::VirtualFloppyOption => Ok(from.as_any_box().downcast::<VirtualFloppyOption>()?),
StructType::VirtualKeyboardOption => Ok(from.as_any_box().downcast::<VirtualKeyboardOption>()?),
StructType::VirtualNvdimmOption => Ok(from.as_any_box().downcast::<VirtualNvdimmOption>()?),
StructType::VirtualPciPassthroughOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughOption>()?),
StructType::VirtualParallelPortOption => Ok(from.as_any_box().downcast::<VirtualParallelPortOption>()?),
StructType::VirtualPointingDeviceOption => Ok(from.as_any_box().downcast::<VirtualPointingDeviceOption>()?),
StructType::VirtualPrecisionClockOption => Ok(from.as_any_box().downcast::<VirtualPrecisionClockOption>()?),
StructType::VirtualScsiPassthroughOption => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughOption>()?),
StructType::VirtualSerialPortOption => Ok(from.as_any_box().downcast::<VirtualSerialPortOption>()?),
StructType::VirtualSoundCardOption => Ok(from.as_any_box().downcast::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Ok(from.as_any_box().downcast::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16Option>()?),
StructType::VirtualTpmOption => Ok(from.as_any_box().downcast::<VirtualTpmOption>()?),
StructType::VirtualUsbOption => Ok(from.as_any_box().downcast::<VirtualUsbOption>()?),
StructType::VirtualMachineVmciDeviceOption => Ok(from.as_any_box().downcast::<VirtualMachineVmciDeviceOption>()?),
StructType::VirtualVmiromOption => Ok(from.as_any_box().downcast::<VirtualVmiromOption>()?),
StructType::VirtualVideoCardOption => Ok(from.as_any_box().downcast::<VirtualVideoCardOption>()?),
StructType::VirtualWdtOption => Ok(from.as_any_box().downcast::<VirtualWdtOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualControllerOption data object type contains information about
/// a virtual controller type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualControllerOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualControllerOptionTrait`
pub trait VirtualControllerOptionTrait : super::traits::VirtualDeviceOptionTrait {
/// Get a reference to the VirtualControllerOption parent struct
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption;
/// Get a mutable reference to the VirtualControllerOption parent struct
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption;
}
impl std::ops::Deref for dyn VirtualControllerOptionTrait {
type Target = super::structs::VirtualControllerOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_controller_option()
}
}
impl std::ops::DerefMut for dyn VirtualControllerOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_controller_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualControllerOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualControllerOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualControllerOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualControllerOption"),
__out: &mut self.out,
}))
}
}
struct VirtualControllerOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualControllerOptionTrait>>,
}
impl miniserde::de::Map for VirtualControllerOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualControllerOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualControllerOptionTrait for VirtualControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { self }
}
impl VirtualControllerOptionTrait for VirtualIdeControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualNvdimmControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualNvmeControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualPciControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualPs2ControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualSataControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualAhciControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_sata_controller_option_.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_sata_controller_option_.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualScsiControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for ParaVirtualScsiControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_scsi_controller_option_.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualBusLogicControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_scsi_controller_option_.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualLsiLogicControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_scsi_controller_option_.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualLsiLogicSasControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_scsi_controller_option_.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_scsi_controller_option_.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualSioControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualUsbControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl VirtualControllerOptionTrait for VirtualUsbxhciControllerOption {
fn get_virtual_controller_option(&self) -> &super::structs::VirtualControllerOption { &self.virtual_controller_option_ }
fn get_virtual_controller_option_mut(&mut self) -> &mut super::structs::VirtualControllerOption { &mut self.virtual_controller_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualControllerOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbxhciControllerOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualControllerOption => Ok(from.as_any_box().downcast::<VirtualControllerOption>()?),
StructType::VirtualIdeControllerOption => Ok(from.as_any_box().downcast::<VirtualIdeControllerOption>()?),
StructType::VirtualNvdimmControllerOption => Ok(from.as_any_box().downcast::<VirtualNvdimmControllerOption>()?),
StructType::VirtualNvmeControllerOption => Ok(from.as_any_box().downcast::<VirtualNvmeControllerOption>()?),
StructType::VirtualPciControllerOption => Ok(from.as_any_box().downcast::<VirtualPciControllerOption>()?),
StructType::VirtualPs2ControllerOption => Ok(from.as_any_box().downcast::<VirtualPs2ControllerOption>()?),
StructType::VirtualSataControllerOption => Ok(from.as_any_box().downcast::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Ok(from.as_any_box().downcast::<VirtualAhciControllerOption>()?),
StructType::VirtualScsiControllerOption => Ok(from.as_any_box().downcast::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Ok(from.as_any_box().downcast::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasControllerOption>()?),
StructType::VirtualSioControllerOption => Ok(from.as_any_box().downcast::<VirtualSioControllerOption>()?),
StructType::VirtualUsbControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbControllerOption>()?),
StructType::VirtualUsbxhciControllerOption => Ok(from.as_any_box().downcast::<VirtualUsbxhciControllerOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualSATAControllerOption data object type contains the options
/// for a virtual SATA controller defined by the
/// *VirtualSATAController*
/// data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualSataControllerOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualSataControllerOptionTrait`
pub trait VirtualSataControllerOptionTrait : super::traits::VirtualControllerOptionTrait {
/// Get a reference to the VirtualSataControllerOption parent struct
fn get_virtual_sata_controller_option(&self) -> &super::structs::VirtualSataControllerOption;
/// Get a mutable reference to the VirtualSataControllerOption parent struct
fn get_virtual_sata_controller_option_mut(&mut self) -> &mut super::structs::VirtualSataControllerOption;
}
impl std::ops::Deref for dyn VirtualSataControllerOptionTrait {
type Target = super::structs::VirtualSataControllerOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_sata_controller_option()
}
}
impl std::ops::DerefMut for dyn VirtualSataControllerOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_sata_controller_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualSataControllerOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualSataControllerOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualSataControllerOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualSataControllerOption"),
__out: &mut self.out,
}))
}
}
struct VirtualSataControllerOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualSataControllerOptionTrait>>,
}
impl miniserde::de::Map for VirtualSataControllerOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualSataControllerOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualSataControllerOptionTrait for VirtualSataControllerOption {
fn get_virtual_sata_controller_option(&self) -> &super::structs::VirtualSataControllerOption { &self }
fn get_virtual_sata_controller_option_mut(&mut self) -> &mut super::structs::VirtualSataControllerOption { self }
}
impl VirtualSataControllerOptionTrait for VirtualAhciControllerOption {
fn get_virtual_sata_controller_option(&self) -> &super::structs::VirtualSataControllerOption { &self.virtual_sata_controller_option_ }
fn get_virtual_sata_controller_option_mut(&mut self) -> &mut super::structs::VirtualSataControllerOption { &mut self.virtual_sata_controller_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualSataControllerOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSataControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualAhciControllerOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSataControllerOption => Ok(from.as_any_box().downcast::<VirtualSataControllerOption>()?),
StructType::VirtualAhciControllerOption => Ok(from.as_any_box().downcast::<VirtualAhciControllerOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualSCSIControllerOption data object type contains the options
/// for a virtual SCSI controller defined by the
/// *VirtualSCSIController*
/// data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualScsiControllerOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualScsiControllerOptionTrait`
pub trait VirtualScsiControllerOptionTrait : super::traits::VirtualControllerOptionTrait {
/// Get a reference to the VirtualScsiControllerOption parent struct
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption;
/// Get a mutable reference to the VirtualScsiControllerOption parent struct
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption;
}
impl std::ops::Deref for dyn VirtualScsiControllerOptionTrait {
type Target = super::structs::VirtualScsiControllerOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_scsi_controller_option()
}
}
impl std::ops::DerefMut for dyn VirtualScsiControllerOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_scsi_controller_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualScsiControllerOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualScsiControllerOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualScsiControllerOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualScsiControllerOption"),
__out: &mut self.out,
}))
}
}
struct VirtualScsiControllerOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualScsiControllerOptionTrait>>,
}
impl miniserde::de::Map for VirtualScsiControllerOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualScsiControllerOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualScsiControllerOptionTrait for VirtualScsiControllerOption {
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption { &self }
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption { self }
}
impl VirtualScsiControllerOptionTrait for ParaVirtualScsiControllerOption {
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption { &self.virtual_scsi_controller_option_ }
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption { &mut self.virtual_scsi_controller_option_ }
}
impl VirtualScsiControllerOptionTrait for VirtualBusLogicControllerOption {
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption { &self.virtual_scsi_controller_option_ }
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption { &mut self.virtual_scsi_controller_option_ }
}
impl VirtualScsiControllerOptionTrait for VirtualLsiLogicControllerOption {
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption { &self.virtual_scsi_controller_option_ }
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption { &mut self.virtual_scsi_controller_option_ }
}
impl VirtualScsiControllerOptionTrait for VirtualLsiLogicSasControllerOption {
fn get_virtual_scsi_controller_option(&self) -> &super::structs::VirtualScsiControllerOption { &self.virtual_scsi_controller_option_ }
fn get_virtual_scsi_controller_option_mut(&mut self) -> &mut super::structs::VirtualScsiControllerOption { &mut self.virtual_scsi_controller_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualScsiControllerOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Some(from.as_any_ref().downcast_ref::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Some(from.as_any_ref().downcast_ref::<VirtualLsiLogicSasControllerOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualScsiControllerOption => Ok(from.as_any_box().downcast::<VirtualScsiControllerOption>()?),
StructType::ParaVirtualScsiControllerOption => Ok(from.as_any_box().downcast::<ParaVirtualScsiControllerOption>()?),
StructType::VirtualBusLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualBusLogicControllerOption>()?),
StructType::VirtualLsiLogicControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicControllerOption>()?),
StructType::VirtualLsiLogicSasControllerOption => Ok(from.as_any_box().downcast::<VirtualLsiLogicSasControllerOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type contains the options for the
/// virtual ethernet card data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualEthernetCardOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualEthernetCardOptionTrait`
pub trait VirtualEthernetCardOptionTrait : super::traits::VirtualDeviceOptionTrait {
/// Get a reference to the VirtualEthernetCardOption parent struct
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption;
/// Get a mutable reference to the VirtualEthernetCardOption parent struct
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption;
}
impl std::ops::Deref for dyn VirtualEthernetCardOptionTrait {
type Target = super::structs::VirtualEthernetCardOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_ethernet_card_option()
}
}
impl std::ops::DerefMut for dyn VirtualEthernetCardOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_ethernet_card_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualEthernetCardOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualEthernetCardOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualEthernetCardOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualEthernetCardOption"),
__out: &mut self.out,
}))
}
}
struct VirtualEthernetCardOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualEthernetCardOptionTrait>>,
}
impl miniserde::de::Map for VirtualEthernetCardOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualEthernetCardOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualEthernetCardOptionTrait for VirtualEthernetCardOption {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { self }
}
impl VirtualEthernetCardOptionTrait for VirtualE1000Option {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualE1000EOption {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualPcNet32Option {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualSriovEthernetCardOption {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualVmxnetOption {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualVmxnet2Option {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualVmxnet3Option {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
}
impl VirtualEthernetCardOptionTrait for VirtualVmxnet3VrdmaOption {
fn get_virtual_ethernet_card_option(&self) -> &super::structs::VirtualEthernetCardOption { &self.virtual_vmxnet_3_option_.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
fn get_virtual_ethernet_card_option_mut(&mut self) -> &mut super::structs::VirtualEthernetCardOption { &mut self.virtual_vmxnet_3_option_.virtual_vmxnet_option_.virtual_ethernet_card_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualEthernetCardOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Some(from.as_any_ref().downcast_ref::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Some(from.as_any_ref().downcast_ref::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Some(from.as_any_ref().downcast_ref::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3VrdmaOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardOption>()?),
StructType::VirtualE1000Option => Ok(from.as_any_box().downcast::<VirtualE1000Option>()?),
StructType::VirtualE1000EOption => Ok(from.as_any_box().downcast::<VirtualE1000EOption>()?),
StructType::VirtualPcNet32Option => Ok(from.as_any_box().downcast::<VirtualPcNet32Option>()?),
StructType::VirtualSriovEthernetCardOption => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardOption>()?),
StructType::VirtualVmxnetOption => Ok(from.as_any_box().downcast::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Ok(from.as_any_box().downcast::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Ok(from.as_any_box().downcast::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3VrdmaOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualVmxnetOption data object type contains the options for the
/// *VirtualVmxnet* data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualVmxnetOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualVmxnetOptionTrait`
pub trait VirtualVmxnetOptionTrait : super::traits::VirtualEthernetCardOptionTrait {
/// Get a reference to the VirtualVmxnetOption parent struct
fn get_virtual_vmxnet_option(&self) -> &super::structs::VirtualVmxnetOption;
/// Get a mutable reference to the VirtualVmxnetOption parent struct
fn get_virtual_vmxnet_option_mut(&mut self) -> &mut super::structs::VirtualVmxnetOption;
}
impl std::ops::Deref for dyn VirtualVmxnetOptionTrait {
type Target = super::structs::VirtualVmxnetOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_vmxnet_option()
}
}
impl std::ops::DerefMut for dyn VirtualVmxnetOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_vmxnet_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualVmxnetOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualVmxnetOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualVmxnetOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualVmxnetOption"),
__out: &mut self.out,
}))
}
}
struct VirtualVmxnetOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualVmxnetOptionTrait>>,
}
impl miniserde::de::Map for VirtualVmxnetOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualVmxnetOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualVmxnetOptionTrait for VirtualVmxnetOption {
fn get_virtual_vmxnet_option(&self) -> &super::structs::VirtualVmxnetOption { &self }
fn get_virtual_vmxnet_option_mut(&mut self) -> &mut super::structs::VirtualVmxnetOption { self }
}
impl VirtualVmxnetOptionTrait for VirtualVmxnet2Option {
fn get_virtual_vmxnet_option(&self) -> &super::structs::VirtualVmxnetOption { &self.virtual_vmxnet_option_ }
fn get_virtual_vmxnet_option_mut(&mut self) -> &mut super::structs::VirtualVmxnetOption { &mut self.virtual_vmxnet_option_ }
}
impl VirtualVmxnetOptionTrait for VirtualVmxnet3Option {
fn get_virtual_vmxnet_option(&self) -> &super::structs::VirtualVmxnetOption { &self.virtual_vmxnet_option_ }
fn get_virtual_vmxnet_option_mut(&mut self) -> &mut super::structs::VirtualVmxnetOption { &mut self.virtual_vmxnet_option_ }
}
impl VirtualVmxnetOptionTrait for VirtualVmxnet3VrdmaOption {
fn get_virtual_vmxnet_option(&self) -> &super::structs::VirtualVmxnetOption { &self.virtual_vmxnet_3_option_.virtual_vmxnet_option_ }
fn get_virtual_vmxnet_option_mut(&mut self) -> &mut super::structs::VirtualVmxnetOption { &mut self.virtual_vmxnet_3_option_.virtual_vmxnet_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualVmxnetOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnetOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3VrdmaOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnetOption => Ok(from.as_any_box().downcast::<VirtualVmxnetOption>()?),
StructType::VirtualVmxnet2Option => Ok(from.as_any_box().downcast::<VirtualVmxnet2Option>()?),
StructType::VirtualVmxnet3Option => Ok(from.as_any_box().downcast::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3VrdmaOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualVmxnet3Option data object type contains the options for the
/// *VirtualVmxnet3* data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualVmxnet3OptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualVmxnet3OptionTrait`
pub trait VirtualVmxnet3OptionTrait : super::traits::VirtualVmxnetOptionTrait {
/// Get a reference to the VirtualVmxnet3Option parent struct
fn get_virtual_vmxnet_3_option(&self) -> &super::structs::VirtualVmxnet3Option;
/// Get a mutable reference to the VirtualVmxnet3Option parent struct
fn get_virtual_vmxnet_3_option_mut(&mut self) -> &mut super::structs::VirtualVmxnet3Option;
}
impl std::ops::Deref for dyn VirtualVmxnet3OptionTrait {
type Target = super::structs::VirtualVmxnet3Option;
fn deref(&self) -> &Self::Target {
self.get_virtual_vmxnet_3_option()
}
}
impl std::ops::DerefMut for dyn VirtualVmxnet3OptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_vmxnet_3_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualVmxnet3OptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualVmxnet3OptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualVmxnet3OptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualVmxnet3Option"),
__out: &mut self.out,
}))
}
}
struct VirtualVmxnet3OptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualVmxnet3OptionTrait>>,
}
impl miniserde::de::Map for VirtualVmxnet3OptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualVmxnet3OptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualVmxnet3OptionTrait for VirtualVmxnet3Option {
fn get_virtual_vmxnet_3_option(&self) -> &super::structs::VirtualVmxnet3Option { &self }
fn get_virtual_vmxnet_3_option_mut(&mut self) -> &mut super::structs::VirtualVmxnet3Option { self }
}
impl VirtualVmxnet3OptionTrait for VirtualVmxnet3VrdmaOption {
fn get_virtual_vmxnet_3_option(&self) -> &super::structs::VirtualVmxnet3Option { &self.virtual_vmxnet_3_option_ }
fn get_virtual_vmxnet_3_option_mut(&mut self) -> &mut super::structs::VirtualVmxnet3Option { &mut self.virtual_vmxnet_3_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualVmxnet3OptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet3Option => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Some(from.as_any_ref().downcast_ref::<VirtualVmxnet3VrdmaOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualVmxnet3Option => Ok(from.as_any_box().downcast::<VirtualVmxnet3Option>()?),
StructType::VirtualVmxnet3VrdmaOption => Ok(from.as_any_box().downcast::<VirtualVmxnet3VrdmaOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualSoundCardOption data class contains the options for the
/// virtual sound card class.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*]⇒VirtualSoundCardOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*]⇒VirtualSoundCardOptionTrait`
pub trait VirtualSoundCardOptionTrait : super::traits::VirtualDeviceOptionTrait {
/// Get a reference to the VirtualSoundCardOption parent struct
fn get_virtual_sound_card_option(&self) -> &super::structs::VirtualSoundCardOption;
/// Get a mutable reference to the VirtualSoundCardOption parent struct
fn get_virtual_sound_card_option_mut(&mut self) -> &mut super::structs::VirtualSoundCardOption;
}
impl std::ops::Deref for dyn VirtualSoundCardOptionTrait {
type Target = super::structs::VirtualSoundCardOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_sound_card_option()
}
}
impl std::ops::DerefMut for dyn VirtualSoundCardOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_sound_card_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualSoundCardOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualSoundCardOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualSoundCardOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualSoundCardOption"),
__out: &mut self.out,
}))
}
}
struct VirtualSoundCardOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualSoundCardOptionTrait>>,
}
impl miniserde::de::Map for VirtualSoundCardOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualSoundCardOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualSoundCardOptionTrait for VirtualSoundCardOption {
fn get_virtual_sound_card_option(&self) -> &super::structs::VirtualSoundCardOption { &self }
fn get_virtual_sound_card_option_mut(&mut self) -> &mut super::structs::VirtualSoundCardOption { self }
}
impl VirtualSoundCardOptionTrait for VirtualEnsoniq1371Option {
fn get_virtual_sound_card_option(&self) -> &super::structs::VirtualSoundCardOption { &self.virtual_sound_card_option_ }
fn get_virtual_sound_card_option_mut(&mut self) -> &mut super::structs::VirtualSoundCardOption { &mut self.virtual_sound_card_option_ }
}
impl VirtualSoundCardOptionTrait for VirtualHdAudioCardOption {
fn get_virtual_sound_card_option(&self) -> &super::structs::VirtualSoundCardOption { &self.virtual_sound_card_option_ }
fn get_virtual_sound_card_option_mut(&mut self) -> &mut super::structs::VirtualSoundCardOption { &mut self.virtual_sound_card_option_ }
}
impl VirtualSoundCardOptionTrait for VirtualSoundBlaster16Option {
fn get_virtual_sound_card_option(&self) -> &super::structs::VirtualSoundCardOption { &self.virtual_sound_card_option_ }
fn get_virtual_sound_card_option_mut(&mut self) -> &mut super::structs::VirtualSoundCardOption { &mut self.virtual_sound_card_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualSoundCardOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSoundCardOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Some(from.as_any_ref().downcast_ref::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Some(from.as_any_ref().downcast_ref::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Some(from.as_any_ref().downcast_ref::<VirtualSoundBlaster16Option>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualSoundCardOption => Ok(from.as_any_box().downcast::<VirtualSoundCardOption>()?),
StructType::VirtualEnsoniq1371Option => Ok(from.as_any_box().downcast::<VirtualEnsoniq1371Option>()?),
StructType::VirtualHdAudioCardOption => Ok(from.as_any_box().downcast::<VirtualHdAudioCardOption>()?),
StructType::VirtualSoundBlaster16Option => Ok(from.as_any_box().downcast::<VirtualSoundBlaster16Option>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VirtualDeviceBackingOption* data class
/// defines options for device-specific virtual backing objects.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]`
pub trait VirtualDeviceBackingOptionTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualDeviceBackingOption parent struct
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption;
/// Get a mutable reference to the VirtualDeviceBackingOption parent struct
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption;
}
impl std::ops::Deref for dyn VirtualDeviceBackingOptionTrait {
type Target = super::structs::VirtualDeviceBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceBackingOptionTrait for VirtualDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { self }
}
impl VirtualDeviceBackingOptionTrait for VirtualDeviceDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualCdromAtapiBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualCdromPassthroughBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualCdromRemoteAtapiBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskRawDiskMappingVer1BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskRawDiskVer2BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskPartitionedRawDiskVer2BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_disk_raw_disk_ver_2_backing_option_.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_disk_raw_disk_ver_2_backing_option_.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualEthernetCardLegacyNetworkBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualEthernetCardNetworkBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualFloppyDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPciPassthroughDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPciPassthroughDynamicBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualParallelPortDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPointingDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualScsiPassthroughDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSerialPortDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSoundCardDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualUsbRemoteHostBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualUsbusbBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDeviceFileBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualCdromIsoBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskFlatVer1BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskFlatVer2BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskLocalPMemBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskSeSparseBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskSparseVer1BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDiskSparseVer2BackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualFloppyImageBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualParallelPortFileBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSerialPortFileBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_file_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDevicePipeBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSerialPortPipeBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_pipe_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_pipe_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDeviceRemoteDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualCdromRemotePassthroughBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualFloppyRemoteDeviceBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualUsbRemoteClientBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualDeviceUriBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSerialPortUriBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_uri_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_uri_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualEthernetCardDvPortBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualEthernetCardOpaqueNetworkBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPciPassthroughDvxBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPciPassthroughPluginBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPciPassthroughVmiopBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_pci_passthrough_plugin_backing_option_.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_pci_passthrough_plugin_backing_option_.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualPrecisionClockSystemClockBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSerialPortThinPrintBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl VirtualDeviceBackingOptionTrait for VirtualSriovEthernetCardSriovBackingOption {
fn get_virtual_device_backing_option(&self) -> &super::structs::VirtualDeviceBackingOption { &self.virtual_device_backing_option_ }
fn get_virtual_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceBackingOption { &mut self.virtual_device_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceBackingOption>()?),
StructType::VirtualDeviceDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingOption>()?),
StructType::VirtualDeviceFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingOption>()?),
StructType::VirtualDevicePipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingOption>()?),
StructType::VirtualDeviceRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingOption>()?),
StructType::VirtualDeviceUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingOption>()?),
StructType::VirtualEthernetCardDvPortBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardDvPortBackingOption>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardOpaqueNetworkBackingOption>()?),
StructType::VirtualPciPassthroughDvxBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDvxBackingOption>()?),
StructType::VirtualPciPassthroughPluginBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingOption>()?),
StructType::VirtualPrecisionClockSystemClockBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPrecisionClockSystemClockBackingOption>()?),
StructType::VirtualSerialPortThinPrintBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortThinPrintBackingOption>()?),
StructType::VirtualSriovEthernetCardSriovBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSriovEthernetCardSriovBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceBackingOption>()?),
StructType::VirtualDeviceDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingOption>()?),
StructType::VirtualDeviceFileBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingOption>()?),
StructType::VirtualDevicePipeBackingOption => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingOption>()?),
StructType::VirtualDeviceRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingOption>()?),
StructType::VirtualDeviceUriBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingOption>()?),
StructType::VirtualEthernetCardDvPortBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardDvPortBackingOption>()?),
StructType::VirtualEthernetCardOpaqueNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardOpaqueNetworkBackingOption>()?),
StructType::VirtualPciPassthroughDvxBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDvxBackingOption>()?),
StructType::VirtualPciPassthroughPluginBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingOption>()?),
StructType::VirtualPrecisionClockSystemClockBackingOption => Ok(from.as_any_box().downcast::<VirtualPrecisionClockSystemClockBackingOption>()?),
StructType::VirtualSerialPortThinPrintBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortThinPrintBackingOption>()?),
StructType::VirtualSriovEthernetCardSriovBackingOption => Ok(from.as_any_box().downcast::<VirtualSriovEthernetCardSriovBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The DeviceBackingOption data class contains device-specific backing options.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceDeviceBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceDeviceBackingOptionTrait`
pub trait VirtualDeviceDeviceBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualDeviceDeviceBackingOption parent struct
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption;
/// Get a mutable reference to the VirtualDeviceDeviceBackingOption parent struct
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption;
}
impl std::ops::Deref for dyn VirtualDeviceDeviceBackingOptionTrait {
type Target = super::structs::VirtualDeviceDeviceBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_device_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceDeviceBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_device_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceDeviceBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceDeviceBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceDeviceBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceDeviceBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceDeviceBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceDeviceBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceDeviceBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceDeviceBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualDeviceDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { self }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualCdromAtapiBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualCdromPassthroughBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualCdromRemoteAtapiBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualDiskRawDiskMappingVer1BackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualDiskRawDiskVer2BackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualDiskPartitionedRawDiskVer2BackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_disk_raw_disk_ver_2_backing_option_.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_disk_raw_disk_ver_2_backing_option_.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualEthernetCardLegacyNetworkBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualEthernetCardNetworkBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualFloppyDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualPciPassthroughDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualPciPassthroughDynamicBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualParallelPortDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualPointingDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualScsiPassthroughDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualSerialPortDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualSoundCardDeviceBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualUsbRemoteHostBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl VirtualDeviceDeviceBackingOptionTrait for VirtualUsbusbBackingOption {
fn get_virtual_device_device_backing_option(&self) -> &super::structs::VirtualDeviceDeviceBackingOption { &self.virtual_device_device_backing_option_ }
fn get_virtual_device_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceDeviceBackingOption { &mut self.virtual_device_device_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceDeviceBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbusbBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceDeviceBackingOption>()?),
StructType::VirtualCdromAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromAtapiBackingOption>()?),
StructType::VirtualCdromPassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromPassthroughBackingOption>()?),
StructType::VirtualCdromRemoteAtapiBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemoteAtapiBackingOption>()?),
StructType::VirtualDiskRawDiskMappingVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskMappingVer1BackingOption>()?),
StructType::VirtualDiskRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
StructType::VirtualEthernetCardLegacyNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardLegacyNetworkBackingOption>()?),
StructType::VirtualEthernetCardNetworkBackingOption => Ok(from.as_any_box().downcast::<VirtualEthernetCardNetworkBackingOption>()?),
StructType::VirtualFloppyDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDeviceBackingOption>()?),
StructType::VirtualPciPassthroughDynamicBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughDynamicBackingOption>()?),
StructType::VirtualParallelPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortDeviceBackingOption>()?),
StructType::VirtualPointingDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualPointingDeviceBackingOption>()?),
StructType::VirtualScsiPassthroughDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualScsiPassthroughDeviceBackingOption>()?),
StructType::VirtualSerialPortDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortDeviceBackingOption>()?),
StructType::VirtualSoundCardDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualSoundCardDeviceBackingOption>()?),
StructType::VirtualUsbRemoteHostBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteHostBackingOption>()?),
StructType::VirtualUsbusbBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbusbBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualDiskOption.RawDiskVer2BackingOption object type
/// contains the available options when backing a virtual disk
/// using a host device on VMware Server.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDiskRawDiskVer2BackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDiskRawDiskVer2BackingOptionTrait`
pub trait VirtualDiskRawDiskVer2BackingOptionTrait : super::traits::VirtualDeviceDeviceBackingOptionTrait {
/// Get a reference to the VirtualDiskRawDiskVer2BackingOption parent struct
fn get_virtual_disk_raw_disk_ver_2_backing_option(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingOption;
/// Get a mutable reference to the VirtualDiskRawDiskVer2BackingOption parent struct
fn get_virtual_disk_raw_disk_ver_2_backing_option_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingOption;
}
impl std::ops::Deref for dyn VirtualDiskRawDiskVer2BackingOptionTrait {
type Target = super::structs::VirtualDiskRawDiskVer2BackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_disk_raw_disk_ver_2_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDiskRawDiskVer2BackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_disk_raw_disk_ver_2_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDiskRawDiskVer2BackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDiskRawDiskVer2BackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDiskRawDiskVer2BackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDiskRawDiskVer2BackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDiskRawDiskVer2BackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDiskRawDiskVer2BackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDiskRawDiskVer2BackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDiskRawDiskVer2BackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDiskRawDiskVer2BackingOptionTrait for VirtualDiskRawDiskVer2BackingOption {
fn get_virtual_disk_raw_disk_ver_2_backing_option(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingOption { &self }
fn get_virtual_disk_raw_disk_ver_2_backing_option_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingOption { self }
}
impl VirtualDiskRawDiskVer2BackingOptionTrait for VirtualDiskPartitionedRawDiskVer2BackingOption {
fn get_virtual_disk_raw_disk_ver_2_backing_option(&self) -> &super::structs::VirtualDiskRawDiskVer2BackingOption { &self.virtual_disk_raw_disk_ver_2_backing_option_ }
fn get_virtual_disk_raw_disk_ver_2_backing_option_mut(&mut self) -> &mut super::structs::VirtualDiskRawDiskVer2BackingOption { &mut self.virtual_disk_raw_disk_ver_2_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDiskRawDiskVer2BackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDiskRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskRawDiskVer2BackingOption>()?),
StructType::VirtualDiskPartitionedRawDiskVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskPartitionedRawDiskVer2BackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The FileBackingOption data class contains file-specific backing options.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceFileBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceFileBackingOptionTrait`
pub trait VirtualDeviceFileBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualDeviceFileBackingOption parent struct
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption;
/// Get a mutable reference to the VirtualDeviceFileBackingOption parent struct
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption;
}
impl std::ops::Deref for dyn VirtualDeviceFileBackingOptionTrait {
type Target = super::structs::VirtualDeviceFileBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_file_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceFileBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_file_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceFileBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceFileBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceFileBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceFileBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceFileBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceFileBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceFileBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceFileBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDeviceFileBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { self }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualCdromIsoBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskFlatVer1BackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskFlatVer2BackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskLocalPMemBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskSeSparseBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskSparseVer1BackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualDiskSparseVer2BackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualFloppyImageBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualParallelPortFileBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl VirtualDeviceFileBackingOptionTrait for VirtualSerialPortFileBackingOption {
fn get_virtual_device_file_backing_option(&self) -> &super::structs::VirtualDeviceFileBackingOption { &self.virtual_device_file_backing_option_ }
fn get_virtual_device_file_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceFileBackingOption { &mut self.virtual_device_file_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceFileBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortFileBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceFileBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceFileBackingOption>()?),
StructType::VirtualCdromIsoBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromIsoBackingOption>()?),
StructType::VirtualDiskFlatVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer1BackingOption>()?),
StructType::VirtualDiskFlatVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskFlatVer2BackingOption>()?),
StructType::VirtualDiskLocalPMemBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskLocalPMemBackingOption>()?),
StructType::VirtualDiskSeSparseBackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSeSparseBackingOption>()?),
StructType::VirtualDiskSparseVer1BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer1BackingOption>()?),
StructType::VirtualDiskSparseVer2BackingOption => Ok(from.as_any_box().downcast::<VirtualDiskSparseVer2BackingOption>()?),
StructType::VirtualFloppyImageBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyImageBackingOption>()?),
StructType::VirtualParallelPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualParallelPortFileBackingOption>()?),
StructType::VirtualSerialPortFileBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortFileBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The <code>*VirtualDevicePipeBackingOption*</code> data object type contains options
/// specific to pipe backings.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDevicePipeBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDevicePipeBackingOptionTrait`
pub trait VirtualDevicePipeBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualDevicePipeBackingOption parent struct
fn get_virtual_device_pipe_backing_option(&self) -> &super::structs::VirtualDevicePipeBackingOption;
/// Get a mutable reference to the VirtualDevicePipeBackingOption parent struct
fn get_virtual_device_pipe_backing_option_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingOption;
}
impl std::ops::Deref for dyn VirtualDevicePipeBackingOptionTrait {
type Target = super::structs::VirtualDevicePipeBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_pipe_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDevicePipeBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_pipe_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDevicePipeBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDevicePipeBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDevicePipeBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDevicePipeBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDevicePipeBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDevicePipeBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDevicePipeBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDevicePipeBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDevicePipeBackingOptionTrait for VirtualDevicePipeBackingOption {
fn get_virtual_device_pipe_backing_option(&self) -> &super::structs::VirtualDevicePipeBackingOption { &self }
fn get_virtual_device_pipe_backing_option_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingOption { self }
}
impl VirtualDevicePipeBackingOptionTrait for VirtualSerialPortPipeBackingOption {
fn get_virtual_device_pipe_backing_option(&self) -> &super::structs::VirtualDevicePipeBackingOption { &self.virtual_device_pipe_backing_option_ }
fn get_virtual_device_pipe_backing_option_mut(&mut self) -> &mut super::structs::VirtualDevicePipeBackingOption { &mut self.virtual_device_pipe_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDevicePipeBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortPipeBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDevicePipeBackingOption => Ok(from.as_any_box().downcast::<VirtualDevicePipeBackingOption>()?),
StructType::VirtualSerialPortPipeBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortPipeBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// VirtualDeviceOption.RemoteDeviceBackingOption describes the options
/// for a remote device backing.
///
/// The primary difference
/// between a remote device backing and a local device backing is that
/// the VirtualCenter server cannot provide a list of remote host devices
/// available for this virtual device backing.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceRemoteDeviceBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceRemoteDeviceBackingOptionTrait`
pub trait VirtualDeviceRemoteDeviceBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualDeviceRemoteDeviceBackingOption parent struct
fn get_virtual_device_remote_device_backing_option(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingOption;
/// Get a mutable reference to the VirtualDeviceRemoteDeviceBackingOption parent struct
fn get_virtual_device_remote_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingOption;
}
impl std::ops::Deref for dyn VirtualDeviceRemoteDeviceBackingOptionTrait {
type Target = super::structs::VirtualDeviceRemoteDeviceBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_remote_device_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceRemoteDeviceBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_remote_device_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceRemoteDeviceBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceRemoteDeviceBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceRemoteDeviceBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceRemoteDeviceBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceRemoteDeviceBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceRemoteDeviceBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceRemoteDeviceBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceRemoteDeviceBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceRemoteDeviceBackingOptionTrait for VirtualDeviceRemoteDeviceBackingOption {
fn get_virtual_device_remote_device_backing_option(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingOption { &self }
fn get_virtual_device_remote_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingOption { self }
}
impl VirtualDeviceRemoteDeviceBackingOptionTrait for VirtualCdromRemotePassthroughBackingOption {
fn get_virtual_device_remote_device_backing_option(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingOption { &self.virtual_device_remote_device_backing_option_ }
fn get_virtual_device_remote_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_ }
}
impl VirtualDeviceRemoteDeviceBackingOptionTrait for VirtualFloppyRemoteDeviceBackingOption {
fn get_virtual_device_remote_device_backing_option(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingOption { &self.virtual_device_remote_device_backing_option_ }
fn get_virtual_device_remote_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_ }
}
impl VirtualDeviceRemoteDeviceBackingOptionTrait for VirtualUsbRemoteClientBackingOption {
fn get_virtual_device_remote_device_backing_option(&self) -> &super::structs::VirtualDeviceRemoteDeviceBackingOption { &self.virtual_device_remote_device_backing_option_ }
fn get_virtual_device_remote_device_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceRemoteDeviceBackingOption { &mut self.virtual_device_remote_device_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceRemoteDeviceBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualUsbRemoteClientBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceRemoteDeviceBackingOption>()?),
StructType::VirtualCdromRemotePassthroughBackingOption => Ok(from.as_any_box().downcast::<VirtualCdromRemotePassthroughBackingOption>()?),
StructType::VirtualFloppyRemoteDeviceBackingOption => Ok(from.as_any_box().downcast::<VirtualFloppyRemoteDeviceBackingOption>()?),
StructType::VirtualUsbRemoteClientBackingOption => Ok(from.as_any_box().downcast::<VirtualUsbRemoteClientBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VirtualDeviceURIBackingOption* data object type describes network communication
/// options for virtual devices.
///
/// When establishing a connection with a remote system on the network,
/// the virtual machine can act as a server or a client.
/// When the virtual machine acts as a server, it accepts a connection.
/// When the virtual machine acts as a client, it initiates the connection.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceUriBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualDeviceUriBackingOptionTrait`
pub trait VirtualDeviceUriBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualDeviceUriBackingOption parent struct
fn get_virtual_device_uri_backing_option(&self) -> &super::structs::VirtualDeviceUriBackingOption;
/// Get a mutable reference to the VirtualDeviceUriBackingOption parent struct
fn get_virtual_device_uri_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingOption;
}
impl std::ops::Deref for dyn VirtualDeviceUriBackingOptionTrait {
type Target = super::structs::VirtualDeviceUriBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_uri_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceUriBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_uri_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceUriBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceUriBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceUriBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceUriBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceUriBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceUriBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualDeviceUriBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceUriBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceUriBackingOptionTrait for VirtualDeviceUriBackingOption {
fn get_virtual_device_uri_backing_option(&self) -> &super::structs::VirtualDeviceUriBackingOption { &self }
fn get_virtual_device_uri_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingOption { self }
}
impl VirtualDeviceUriBackingOptionTrait for VirtualSerialPortUriBackingOption {
fn get_virtual_device_uri_backing_option(&self) -> &super::structs::VirtualDeviceUriBackingOption { &self.virtual_device_uri_backing_option_ }
fn get_virtual_device_uri_backing_option_mut(&mut self) -> &mut super::structs::VirtualDeviceUriBackingOption { &mut self.virtual_device_uri_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceUriBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualSerialPortUriBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceUriBackingOption => Ok(from.as_any_box().downcast::<VirtualDeviceUriBackingOption>()?),
StructType::VirtualSerialPortUriBackingOption => Ok(from.as_any_box().downcast::<VirtualSerialPortUriBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type describes the options for the
/// *VirtualPCIPassthroughPluginBackingInfo* data object type.
///
/// ### How to access
/// - `EnvironmentBrowser::query_config_option().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualPciPassthroughPluginBackingOptionTrait`
/// - `EnvironmentBrowser::query_config_option_ex().hardware_options.virtual_device_option[*].backing_option?[*]⇒VirtualPciPassthroughPluginBackingOptionTrait`
pub trait VirtualPciPassthroughPluginBackingOptionTrait : super::traits::VirtualDeviceBackingOptionTrait {
/// Get a reference to the VirtualPciPassthroughPluginBackingOption parent struct
fn get_virtual_pci_passthrough_plugin_backing_option(&self) -> &super::structs::VirtualPciPassthroughPluginBackingOption;
/// Get a mutable reference to the VirtualPciPassthroughPluginBackingOption parent struct
fn get_virtual_pci_passthrough_plugin_backing_option_mut(&mut self) -> &mut super::structs::VirtualPciPassthroughPluginBackingOption;
}
impl std::ops::Deref for dyn VirtualPciPassthroughPluginBackingOptionTrait {
type Target = super::structs::VirtualPciPassthroughPluginBackingOption;
fn deref(&self) -> &Self::Target {
self.get_virtual_pci_passthrough_plugin_backing_option()
}
}
impl std::ops::DerefMut for dyn VirtualPciPassthroughPluginBackingOptionTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_pci_passthrough_plugin_backing_option_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualPciPassthroughPluginBackingOptionTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualPciPassthroughPluginBackingOptionTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualPciPassthroughPluginBackingOptionTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualPciPassthroughPluginBackingOption"),
__out: &mut self.out,
}))
}
}
struct VirtualPciPassthroughPluginBackingOptionTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualPciPassthroughPluginBackingOptionTrait>>,
}
impl miniserde::de::Map for VirtualPciPassthroughPluginBackingOptionTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualPciPassthroughPluginBackingOptionTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualPciPassthroughPluginBackingOptionTrait for VirtualPciPassthroughPluginBackingOption {
fn get_virtual_pci_passthrough_plugin_backing_option(&self) -> &super::structs::VirtualPciPassthroughPluginBackingOption { &self }
fn get_virtual_pci_passthrough_plugin_backing_option_mut(&mut self) -> &mut super::structs::VirtualPciPassthroughPluginBackingOption { self }
}
impl VirtualPciPassthroughPluginBackingOptionTrait for VirtualPciPassthroughVmiopBackingOption {
fn get_virtual_pci_passthrough_plugin_backing_option(&self) -> &super::structs::VirtualPciPassthroughPluginBackingOption { &self.virtual_pci_passthrough_plugin_backing_option_ }
fn get_virtual_pci_passthrough_plugin_backing_option_mut(&mut self) -> &mut super::structs::VirtualPciPassthroughPluginBackingOption { &mut self.virtual_pci_passthrough_plugin_backing_option_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualPciPassthroughPluginBackingOptionTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualPciPassthroughPluginBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Some(from.as_any_ref().downcast_ref::<VirtualPciPassthroughVmiopBackingOption>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualPciPassthroughPluginBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughPluginBackingOption>()?),
StructType::VirtualPciPassthroughVmiopBackingOption => Ok(from.as_any_box().downcast::<VirtualPciPassthroughVmiopBackingOption>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The VirtualDeviceSpec data object type encapsulates change
/// specifications for an individual virtual device.
///
/// The virtual
/// device being added or modified must be fully specified.
///
/// ### How to access
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StoragePlacementAction.relocate_spec.device_change?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→StorageMigrationAction.relocate_spec.device_change?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→PlacementAction.relocate_spec?.device_change?[*]`
/// - `StoragePod::pod_storage_drs_entry.recommendation?[*].action?[*]→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*]`
/// - `StoragePod::pod_storage_drs_entry.action_history?[*].action→StoragePlacementAction.relocate_spec.device_change?[*]`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.device_change?[*]`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.device_change?[*]`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.device_change?[*]`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.device_change?[*]`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.device_change?[*]`
///
/// *(10 of 57 paths)*
pub trait VirtualDeviceConfigSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VirtualDeviceConfigSpec parent struct
fn get_virtual_device_config_spec(&self) -> &super::structs::VirtualDeviceConfigSpec;
/// Get a mutable reference to the VirtualDeviceConfigSpec parent struct
fn get_virtual_device_config_spec_mut(&mut self) -> &mut super::structs::VirtualDeviceConfigSpec;
}
impl std::ops::Deref for dyn VirtualDeviceConfigSpecTrait {
type Target = super::structs::VirtualDeviceConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_virtual_device_config_spec()
}
}
impl std::ops::DerefMut for dyn VirtualDeviceConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_virtual_device_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VirtualDeviceConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VirtualDeviceConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VirtualDeviceConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VirtualDeviceConfigSpec"),
__out: &mut self.out,
}))
}
}
struct VirtualDeviceConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VirtualDeviceConfigSpecTrait>>,
}
impl miniserde::de::Map for VirtualDeviceConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VirtualDeviceConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VirtualDeviceConfigSpecTrait for VirtualDeviceConfigSpec {
fn get_virtual_device_config_spec(&self) -> &super::structs::VirtualDeviceConfigSpec { &self }
fn get_virtual_device_config_spec_mut(&mut self) -> &mut super::structs::VirtualDeviceConfigSpec { self }
}
impl VirtualDeviceConfigSpecTrait for VirtualDiskConfigSpec {
fn get_virtual_device_config_spec(&self) -> &super::structs::VirtualDeviceConfigSpec { &self.virtual_device_config_spec_ }
fn get_virtual_device_config_spec_mut(&mut self) -> &mut super::structs::VirtualDeviceConfigSpec { &mut self.virtual_device_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VirtualDeviceConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceConfigSpec => Some(from.as_any_ref().downcast_ref::<VirtualDeviceConfigSpec>()?),
StructType::VirtualDiskConfigSpec => Some(from.as_any_ref().downcast_ref::<VirtualDiskConfigSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VirtualDeviceConfigSpec => Ok(from.as_any_box().downcast::<VirtualDeviceConfigSpec>()?),
StructType::VirtualDiskConfigSpec => Ok(from.as_any_box().downcast::<VirtualDiskConfigSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A Subject.
///
/// ### How to access
/// - `GuestAliasManager::remove_guest_alias(subject)`
/// - `GuestAliasManager::add_guest_alias(alias_info).subject`
/// - `GuestAliasManager::list_guest_mapped_aliases().subjects[*]`
/// - `GuestAliasManager::list_guest_aliases().aliases[*].subject`
pub trait GuestAuthSubjectTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn GuestAuthSubjectTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GuestAuthSubjectTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GuestAuthSubjectTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GuestAuthSubject"),
__out: &mut self.out,
}))
}
}
struct GuestAuthSubjectTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GuestAuthSubjectTrait>>,
}
impl miniserde::de::Map for GuestAuthSubjectTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GuestAuthSubjectTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GuestAuthSubjectTrait for GuestAuthSubject {
}
impl GuestAuthSubjectTrait for GuestAuthAnySubject {
}
impl GuestAuthSubjectTrait for GuestAuthNamedSubject {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GuestAuthSubjectTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GuestAuthSubject => Some(from.as_any_ref().downcast_ref::<GuestAuthSubject>()?),
StructType::GuestAuthAnySubject => Some(from.as_any_ref().downcast_ref::<GuestAuthAnySubject>()?),
StructType::GuestAuthNamedSubject => Some(from.as_any_ref().downcast_ref::<GuestAuthNamedSubject>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GuestAuthSubject => Ok(from.as_any_box().downcast::<GuestAuthSubject>()?),
StructType::GuestAuthAnySubject => Ok(from.as_any_box().downcast::<GuestAuthAnySubject>()?),
StructType::GuestAuthNamedSubject => Ok(from.as_any_box().downcast::<GuestAuthNamedSubject>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Different attributes for a guest file.
/// - Check *GuestPosixFileAttributes*
/// for Posix guest files.
/// - Check *GuestWindowsFileAttributes*
/// for Windows guest files.
///
/// ### How to access
/// - `GuestFileManager::change_file_attributes_in_guest(file_attributes)`
/// - `GuestFileManager::initiate_file_transfer_to_guest(file_attributes)`
/// - `GuestFileManager::initiate_file_transfer_from_guest().attributes`
/// - `GuestFileManager::list_files_in_guest().files?[*].attributes`
pub trait GuestFileAttributesTrait : super::traits::DataObjectTrait {
/// Get a reference to the GuestFileAttributes parent struct
fn get_guest_file_attributes(&self) -> &super::structs::GuestFileAttributes;
/// Get a mutable reference to the GuestFileAttributes parent struct
fn get_guest_file_attributes_mut(&mut self) -> &mut super::structs::GuestFileAttributes;
}
impl std::ops::Deref for dyn GuestFileAttributesTrait {
type Target = super::structs::GuestFileAttributes;
fn deref(&self) -> &Self::Target {
self.get_guest_file_attributes()
}
}
impl std::ops::DerefMut for dyn GuestFileAttributesTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_guest_file_attributes_mut()
}
}
impl miniserde::Deserialize for Box<dyn GuestFileAttributesTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GuestFileAttributesTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GuestFileAttributesTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GuestFileAttributes"),
__out: &mut self.out,
}))
}
}
struct GuestFileAttributesTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GuestFileAttributesTrait>>,
}
impl miniserde::de::Map for GuestFileAttributesTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GuestFileAttributesTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GuestFileAttributesTrait for GuestFileAttributes {
fn get_guest_file_attributes(&self) -> &super::structs::GuestFileAttributes { &self }
fn get_guest_file_attributes_mut(&mut self) -> &mut super::structs::GuestFileAttributes { self }
}
impl GuestFileAttributesTrait for GuestPosixFileAttributes {
fn get_guest_file_attributes(&self) -> &super::structs::GuestFileAttributes { &self.guest_file_attributes_ }
fn get_guest_file_attributes_mut(&mut self) -> &mut super::structs::GuestFileAttributes { &mut self.guest_file_attributes_ }
}
impl GuestFileAttributesTrait for GuestWindowsFileAttributes {
fn get_guest_file_attributes(&self) -> &super::structs::GuestFileAttributes { &self.guest_file_attributes_ }
fn get_guest_file_attributes_mut(&mut self) -> &mut super::structs::GuestFileAttributes { &mut self.guest_file_attributes_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GuestFileAttributesTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GuestFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestFileAttributes>()?),
StructType::GuestPosixFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestPosixFileAttributes>()?),
StructType::GuestWindowsFileAttributes => Some(from.as_any_ref().downcast_ref::<GuestWindowsFileAttributes>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GuestFileAttributes => Ok(from.as_any_box().downcast::<GuestFileAttributes>()?),
StructType::GuestPosixFileAttributes => Ok(from.as_any_box().downcast::<GuestPosixFileAttributes>()?),
StructType::GuestWindowsFileAttributes => Ok(from.as_any_box().downcast::<GuestWindowsFileAttributes>()?),
_ => Err(from.as_any_box()),
}
}
}
/// GuestAuthentication is an abstract base class for authentication
/// in the guest.
///
/// ### How to access
/// - `GuestAliasManager::add_guest_alias(auth)`
/// - `GuestAliasManager::list_guest_aliases(auth)`
/// - `GuestAliasManager::list_guest_mapped_aliases(auth)`
/// - `GuestAliasManager::remove_guest_alias(auth)`
/// - `GuestAliasManager::remove_guest_alias_by_cert(auth)`
/// - `GuestAuthManager::acquire_credentials_in_guest()`
/// - `GuestAuthManager::acquire_credentials_in_guest(requested_auth)`
/// - `GuestAuthManager::release_credentials_in_guest(auth)`
/// - `GuestAuthManager::validate_credentials_in_guest(auth)`
/// - `GuestFileManager::change_file_attributes_in_guest(auth)`
///
/// *(10 of 33 paths)*
pub trait GuestAuthenticationTrait : super::traits::DataObjectTrait {
/// Get a reference to the GuestAuthentication parent struct
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication;
/// Get a mutable reference to the GuestAuthentication parent struct
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication;
}
impl std::ops::Deref for dyn GuestAuthenticationTrait {
type Target = super::structs::GuestAuthentication;
fn deref(&self) -> &Self::Target {
self.get_guest_authentication()
}
}
impl std::ops::DerefMut for dyn GuestAuthenticationTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_guest_authentication_mut()
}
}
impl miniserde::Deserialize for Box<dyn GuestAuthenticationTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GuestAuthenticationTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GuestAuthenticationTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GuestAuthentication"),
__out: &mut self.out,
}))
}
}
struct GuestAuthenticationTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GuestAuthenticationTrait>>,
}
impl miniserde::de::Map for GuestAuthenticationTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GuestAuthenticationTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GuestAuthenticationTrait for GuestAuthentication {
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication { &self }
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication { self }
}
impl GuestAuthenticationTrait for NamePasswordAuthentication {
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication { &self.guest_authentication_ }
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication { &mut self.guest_authentication_ }
}
impl GuestAuthenticationTrait for SamlTokenAuthentication {
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication { &self.guest_authentication_ }
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication { &mut self.guest_authentication_ }
}
impl GuestAuthenticationTrait for SspiAuthentication {
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication { &self.guest_authentication_ }
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication { &mut self.guest_authentication_ }
}
impl GuestAuthenticationTrait for TicketedSessionAuthentication {
fn get_guest_authentication(&self) -> &super::structs::GuestAuthentication { &self.guest_authentication_ }
fn get_guest_authentication_mut(&mut self) -> &mut super::structs::GuestAuthentication { &mut self.guest_authentication_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GuestAuthenticationTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GuestAuthentication => Some(from.as_any_ref().downcast_ref::<GuestAuthentication>()?),
StructType::NamePasswordAuthentication => Some(from.as_any_ref().downcast_ref::<NamePasswordAuthentication>()?),
StructType::SamlTokenAuthentication => Some(from.as_any_ref().downcast_ref::<SamlTokenAuthentication>()?),
StructType::SspiAuthentication => Some(from.as_any_ref().downcast_ref::<SspiAuthentication>()?),
StructType::TicketedSessionAuthentication => Some(from.as_any_ref().downcast_ref::<TicketedSessionAuthentication>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GuestAuthentication => Ok(from.as_any_box().downcast::<GuestAuthentication>()?),
StructType::NamePasswordAuthentication => Ok(from.as_any_box().downcast::<NamePasswordAuthentication>()?),
StructType::SamlTokenAuthentication => Ok(from.as_any_box().downcast::<SamlTokenAuthentication>()?),
StructType::SspiAuthentication => Ok(from.as_any_box().downcast::<SspiAuthentication>()?),
StructType::TicketedSessionAuthentication => Ok(from.as_any_box().downcast::<TicketedSessionAuthentication>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This describes the arguments to *GuestProcessManager.StartProgramInGuest*.
///
/// ### How to access
/// - `GuestProcessManager::start_program_in_guest(spec)`
pub trait GuestProgramSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the GuestProgramSpec parent struct
fn get_guest_program_spec(&self) -> &super::structs::GuestProgramSpec;
/// Get a mutable reference to the GuestProgramSpec parent struct
fn get_guest_program_spec_mut(&mut self) -> &mut super::structs::GuestProgramSpec;
}
impl std::ops::Deref for dyn GuestProgramSpecTrait {
type Target = super::structs::GuestProgramSpec;
fn deref(&self) -> &Self::Target {
self.get_guest_program_spec()
}
}
impl std::ops::DerefMut for dyn GuestProgramSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_guest_program_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn GuestProgramSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GuestProgramSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GuestProgramSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GuestProgramSpec"),
__out: &mut self.out,
}))
}
}
struct GuestProgramSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GuestProgramSpecTrait>>,
}
impl miniserde::de::Map for GuestProgramSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GuestProgramSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GuestProgramSpecTrait for GuestProgramSpec {
fn get_guest_program_spec(&self) -> &super::structs::GuestProgramSpec { &self }
fn get_guest_program_spec_mut(&mut self) -> &mut super::structs::GuestProgramSpec { self }
}
impl GuestProgramSpecTrait for GuestWindowsProgramSpec {
fn get_guest_program_spec(&self) -> &super::structs::GuestProgramSpec { &self.guest_program_spec_ }
fn get_guest_program_spec_mut(&mut self) -> &mut super::structs::GuestProgramSpec { &mut self.guest_program_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GuestProgramSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GuestProgramSpec => Some(from.as_any_ref().downcast_ref::<GuestProgramSpec>()?),
StructType::GuestWindowsProgramSpec => Some(from.as_any_ref().downcast_ref::<GuestWindowsProgramSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GuestProgramSpec => Ok(from.as_any_box().downcast::<GuestProgramSpec>()?),
StructType::GuestWindowsProgramSpec => Ok(from.as_any_box().downcast::<GuestWindowsProgramSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This describes the registry value data.
///
/// ### How to access
/// - `GuestWindowsRegistryManager::list_registry_values_in_guest().data`
/// - `GuestWindowsRegistryManager::set_registry_value_in_guest(value).data`
pub trait GuestRegValueDataSpecTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn GuestRegValueDataSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn GuestRegValueDataSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(GuestRegValueDataSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("GuestRegValueDataSpec"),
__out: &mut self.out,
}))
}
}
struct GuestRegValueDataSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn GuestRegValueDataSpecTrait>>,
}
impl miniserde::de::Map for GuestRegValueDataSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn GuestRegValueDataSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl GuestRegValueDataSpecTrait for GuestRegValueDataSpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueBinarySpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueDwordSpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueExpandStringSpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueMultiStringSpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueQwordSpec {
}
impl GuestRegValueDataSpecTrait for GuestRegValueStringSpec {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn GuestRegValueDataSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::GuestRegValueDataSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueDataSpec>()?),
StructType::GuestRegValueBinarySpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueBinarySpec>()?),
StructType::GuestRegValueDwordSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueDwordSpec>()?),
StructType::GuestRegValueExpandStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueExpandStringSpec>()?),
StructType::GuestRegValueMultiStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueMultiStringSpec>()?),
StructType::GuestRegValueQwordSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueQwordSpec>()?),
StructType::GuestRegValueStringSpec => Some(from.as_any_ref().downcast_ref::<GuestRegValueStringSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::GuestRegValueDataSpec => Ok(from.as_any_box().downcast::<GuestRegValueDataSpec>()?),
StructType::GuestRegValueBinarySpec => Ok(from.as_any_box().downcast::<GuestRegValueBinarySpec>()?),
StructType::GuestRegValueDwordSpec => Ok(from.as_any_box().downcast::<GuestRegValueDwordSpec>()?),
StructType::GuestRegValueExpandStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueExpandStringSpec>()?),
StructType::GuestRegValueMultiStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueMultiStringSpec>()?),
StructType::GuestRegValueQwordSpec => Ok(from.as_any_box().downcast::<GuestRegValueQwordSpec>()?),
StructType::GuestRegValueStringSpec => Ok(from.as_any_box().downcast::<GuestRegValueStringSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Represents the identity of a replication fault domain.
///
/// Fault domains IDs are globally
/// unique.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.perfsvc_config?.profile?→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?→VsanIscsiTargetServiceSpec.home_object_storage_policy?→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ClusterComputeResource::action_history.action→StoragePlacementAction.relocate_spec.profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ClusterComputeResource::action_history.action→StorageMigrationAction.relocate_spec.profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ClusterComputeResource::action_history.action→PlacementAction.relocate_spec?.profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ClusterComputeResource::action_history.action→ClusterClusterInitialPlacementAction.config_spec?.vm_profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `ClusterComputeResource::recommendation.action?[*]→StoragePlacementAction.relocate_spec.profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `Folder::create_vm_task(config).vm_profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `Folder::create_vm_task(config).device_change?[*].profile?[*]→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.perfsvc_config?.profile?→VirtualMachineDefinedProfileSpec.replication_spec?.replication_group_id.fault_domain_id`
///
/// *(10 of 100 paths)*
pub trait FaultDomainIdTrait : super::traits::DataObjectTrait {
/// Get a reference to the FaultDomainId parent struct
fn get_fault_domain_id(&self) -> &super::structs::FaultDomainId;
/// Get a mutable reference to the FaultDomainId parent struct
fn get_fault_domain_id_mut(&mut self) -> &mut super::structs::FaultDomainId;
}
impl std::ops::Deref for dyn FaultDomainIdTrait {
type Target = super::structs::FaultDomainId;
fn deref(&self) -> &Self::Target {
self.get_fault_domain_id()
}
}
impl std::ops::DerefMut for dyn FaultDomainIdTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_fault_domain_id_mut()
}
}
impl miniserde::Deserialize for Box<dyn FaultDomainIdTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn FaultDomainIdTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(FaultDomainIdTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("FaultDomainId"),
__out: &mut self.out,
}))
}
}
struct FaultDomainIdTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn FaultDomainIdTrait>>,
}
impl miniserde::de::Map for FaultDomainIdTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn FaultDomainIdTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl FaultDomainIdTrait for FaultDomainId {
fn get_fault_domain_id(&self) -> &super::structs::FaultDomainId { &self }
fn get_fault_domain_id_mut(&mut self) -> &mut super::structs::FaultDomainId { self }
}
impl FaultDomainIdTrait for FaultDomainInfo {
fn get_fault_domain_id(&self) -> &super::structs::FaultDomainId { &self.fault_domain_id_ }
fn get_fault_domain_id_mut(&mut self) -> &mut super::structs::FaultDomainId { &mut self.fault_domain_id_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn FaultDomainIdTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::FaultDomainId => Some(from.as_any_ref().downcast_ref::<FaultDomainId>()?),
StructType::FaultDomainInfo => Some(from.as_any_ref().downcast_ref::<FaultDomainInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::FaultDomainId => Ok(from.as_any_box().downcast::<FaultDomainId>()?),
StructType::FaultDomainInfo => Ok(from.as_any_box().downcast::<FaultDomainInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The data efficiency configuration of a vSAN cluster.
///
/// Data efficiency configurations work together as below.
/// <table cellspacing="0">
/// <tr>
/// <th>dedupEnabled</th>
/// <th>compressionEnabled</th>
/// <th>Details</th>
/// <th>State Transition</th>
/// </tr>
/// <tr>
/// <td>False</td>
/// <td>False</td>
/// <td>
/// - Disable deduplication and compression. Or
/// - Disable compression only
///
/// </td>
/// <td>
/// - Deduplication and compression -> No data efficiency
/// - Compression only -> No data efficiency
///
/// </td>
/// </tr>
/// <tr>
/// <td>None</td>
/// <td>0</td>
/// <td>
/// - Disable compression only if enabled
/// - Throw exception if deduplication and compression is enabled
///
/// </td>
/// <td>
/// - Compression only -> No data efficiency
///
/// </td>
/// </tr>
/// <tr>
/// <td>None</td>
/// <td>1</td>
/// <td>
/// - Enable compression only
/// - Throw exception if deduplication and compression is enabled.
///
/// </td>
/// <td>
/// - No data efficiency -> Compression only
///
/// </td>
/// </tr>
/// <tr>
/// <td>0</td>
/// <td>None</td>
/// <td>
/// - Disable deduplication and compression
/// - Throw exception if compression only is enabled
///
/// </td>
/// <td>
/// - Deduplication and compression -> No data efficiency
///
/// </td>
/// </tr>
/// <tr>
/// <td>1</td>
/// <td>1</td>
/// <td>
/// - Enable deduplcation and compression
/// - Disable compression only if already enabled
/// - Get *VsanClusterConfigInfo* will return compressionEnabled flag as true
///
/// </td>
/// <td>
/// - No data efficiency -> Deduplication and compression
/// - Compression only -> Deduplication and compression
///
/// </td>
/// </tr>
/// <tr>
/// <td>1</td>
/// <td>0</td>
/// <td>
/// - Enable deduplication and compression
/// - Disable compression only if already enabled
/// - Get *VsanClusterConfigInfo* will return compressionEnabled flag as True
///
/// </td>
/// <td>
/// - No data efficiency -> Deduplication and compression
/// - Compression only -> Deduplication and compression
///
/// </td>
/// </tr>
/// <tr>
/// <td>0</td>
/// <td>1</td>
/// <td>
/// - Enable compression only
/// - Disable deduplication and compression
///
/// </td>
/// <td>
/// - Deduplication and compression -> Compression only
/// - No data efficiency -> Compression only
///
/// </td>
/// </tr>
/// <tr>
/// <td>1</td>
/// <td>None</td>
/// <td>
/// - Enable deduplication and compression
/// - Disable compression only if already enabled
/// - Get *VsanClusterConfigInfo* will return compression only flag as True
///
/// </td>
/// <td>
/// - No data efficiency -> deduplication and compression
/// - Compression only -> deduplication and compression
///
/// </td>
/// </tr>
/// </table>
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?→VsanHostConfigInfoEx.data_efficiency_info?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.data_efficiency_config?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.data_efficiency_info?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.data_efficiency_config?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.data_efficiency_info?`
/// - `HostVsanSystem::config→VsanHostConfigInfoEx.data_efficiency_info?`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.data_efficiency_config?`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*]→VsanHostConfigInfoEx.data_efficiency_info?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.data_efficiency_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.data_efficiency_info?`
///
/// *(10 of 49 paths)*
pub trait VsanDataEfficiencyConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanDataEfficiencyConfig parent struct
fn get_vsan_data_efficiency_config(&self) -> &super::structs::VsanDataEfficiencyConfig;
/// Get a mutable reference to the VsanDataEfficiencyConfig parent struct
fn get_vsan_data_efficiency_config_mut(&mut self) -> &mut super::structs::VsanDataEfficiencyConfig;
}
impl std::ops::Deref for dyn VsanDataEfficiencyConfigTrait {
type Target = super::structs::VsanDataEfficiencyConfig;
fn deref(&self) -> &Self::Target {
self.get_vsan_data_efficiency_config()
}
}
impl std::ops::DerefMut for dyn VsanDataEfficiencyConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_data_efficiency_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanDataEfficiencyConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanDataEfficiencyConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanDataEfficiencyConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanDataEfficiencyConfig"),
__out: &mut self.out,
}))
}
}
struct VsanDataEfficiencyConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanDataEfficiencyConfigTrait>>,
}
impl miniserde::de::Map for VsanDataEfficiencyConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanDataEfficiencyConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanDataEfficiencyConfigTrait for VsanDataEfficiencyConfig {
fn get_vsan_data_efficiency_config(&self) -> &super::structs::VsanDataEfficiencyConfig { &self }
fn get_vsan_data_efficiency_config_mut(&mut self) -> &mut super::structs::VsanDataEfficiencyConfig { self }
}
impl VsanDataEfficiencyConfigTrait for VsanDataEfficiencyConfigEx {
fn get_vsan_data_efficiency_config(&self) -> &super::structs::VsanDataEfficiencyConfig { &self.vsan_data_efficiency_config_ }
fn get_vsan_data_efficiency_config_mut(&mut self) -> &mut super::structs::VsanDataEfficiencyConfig { &mut self.vsan_data_efficiency_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanDataEfficiencyConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanDataEfficiencyConfig => Some(from.as_any_ref().downcast_ref::<VsanDataEfficiencyConfig>()?),
StructType::VsanDataEfficiencyConfigEx => Some(from.as_any_ref().downcast_ref::<VsanDataEfficiencyConfigEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanDataEfficiencyConfig => Ok(from.as_any_box().downcast::<VsanDataEfficiencyConfig>()?),
StructType::VsanDataEfficiencyConfigEx => Ok(from.as_any_box().downcast::<VsanDataEfficiencyConfigEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The datastore configuration of a vSAN cluster.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?→VsanHostConfigInfoEx.datastore_info?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.datastore_config?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.datastore_info?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.datastore_config?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.datastore_info?`
/// - `HostVsanSystem::config→VsanHostConfigInfoEx.datastore_info?`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.datastore_config?`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*]→VsanHostConfigInfoEx.datastore_info?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.datastore_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.datastore_info?`
///
/// *(10 of 42 paths)*
pub trait VsanDatastoreConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanDatastoreConfig parent struct
fn get_vsan_datastore_config(&self) -> &super::structs::VsanDatastoreConfig;
/// Get a mutable reference to the VsanDatastoreConfig parent struct
fn get_vsan_datastore_config_mut(&mut self) -> &mut super::structs::VsanDatastoreConfig;
}
impl std::ops::Deref for dyn VsanDatastoreConfigTrait {
type Target = super::structs::VsanDatastoreConfig;
fn deref(&self) -> &Self::Target {
self.get_vsan_datastore_config()
}
}
impl std::ops::DerefMut for dyn VsanDatastoreConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_datastore_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanDatastoreConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanDatastoreConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanDatastoreConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanDatastoreConfig"),
__out: &mut self.out,
}))
}
}
struct VsanDatastoreConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanDatastoreConfigTrait>>,
}
impl miniserde::de::Map for VsanDatastoreConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanDatastoreConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanDatastoreConfigTrait for VsanDatastoreConfig {
fn get_vsan_datastore_config(&self) -> &super::structs::VsanDatastoreConfig { &self }
fn get_vsan_datastore_config_mut(&mut self) -> &mut super::structs::VsanDatastoreConfig { self }
}
impl VsanDatastoreConfigTrait for VsanAdvancedDatastoreConfig {
fn get_vsan_datastore_config(&self) -> &super::structs::VsanDatastoreConfig { &self.vsan_datastore_config_ }
fn get_vsan_datastore_config_mut(&mut self) -> &mut super::structs::VsanDatastoreConfig { &mut self.vsan_datastore_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanDatastoreConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanDatastoreConfig>()?),
StructType::VsanAdvancedDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanAdvancedDatastoreConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanDatastoreConfig => Ok(from.as_any_box().downcast::<VsanDatastoreConfig>()?),
StructType::VsanAdvancedDatastoreConfig => Ok(from.as_any_box().downcast::<VsanAdvancedDatastoreConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The configuration information of a vSAN datastore.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.datastore_config?.datastores?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.datastore_config?.datastores?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
/// - `HostVsanSystem::config→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.datastore_config?.datastores?[*]`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*]→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.datastore_config?.datastores?[*]`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]→VsanHostConfigInfoEx.datastore_info?.datastores?[*]`
///
/// *(10 of 42 paths)*
pub trait VsanDatastoreSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanDatastoreSpec parent struct
fn get_vsan_datastore_spec(&self) -> &super::structs::VsanDatastoreSpec;
/// Get a mutable reference to the VsanDatastoreSpec parent struct
fn get_vsan_datastore_spec_mut(&mut self) -> &mut super::structs::VsanDatastoreSpec;
}
impl std::ops::Deref for dyn VsanDatastoreSpecTrait {
type Target = super::structs::VsanDatastoreSpec;
fn deref(&self) -> &Self::Target {
self.get_vsan_datastore_spec()
}
}
impl std::ops::DerefMut for dyn VsanDatastoreSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_datastore_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanDatastoreSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanDatastoreSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanDatastoreSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanDatastoreSpec"),
__out: &mut self.out,
}))
}
}
struct VsanDatastoreSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanDatastoreSpecTrait>>,
}
impl miniserde::de::Map for VsanDatastoreSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanDatastoreSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanDatastoreSpecTrait for VsanDatastoreSpec {
fn get_vsan_datastore_spec(&self) -> &super::structs::VsanDatastoreSpec { &self }
fn get_vsan_datastore_spec_mut(&mut self) -> &mut super::structs::VsanDatastoreSpec { self }
}
impl VsanDatastoreSpecTrait for VsanClientDatastoreConfig {
fn get_vsan_datastore_spec(&self) -> &super::structs::VsanDatastoreSpec { &self.vsan_datastore_spec_ }
fn get_vsan_datastore_spec_mut(&mut self) -> &mut super::structs::VsanDatastoreSpec { &mut self.vsan_datastore_spec_ }
}
impl VsanDatastoreSpecTrait for VsanXvcClientConfig {
fn get_vsan_datastore_spec(&self) -> &super::structs::VsanDatastoreSpec { &self.vsan_datastore_spec_ }
fn get_vsan_datastore_spec_mut(&mut self) -> &mut super::structs::VsanDatastoreSpec { &mut self.vsan_datastore_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanDatastoreSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanDatastoreSpec => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSpec>()?),
StructType::VsanClientDatastoreConfig => Some(from.as_any_ref().downcast_ref::<VsanClientDatastoreConfig>()?),
StructType::VsanXvcClientConfig => Some(from.as_any_ref().downcast_ref::<VsanXvcClientConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanDatastoreSpec => Ok(from.as_any_box().downcast::<VsanDatastoreSpec>()?),
StructType::VsanClientDatastoreConfig => Ok(from.as_any_box().downcast::<VsanClientDatastoreConfig>()?),
StructType::VsanXvcClientConfig => Ok(from.as_any_box().downcast::<VsanXvcClientConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The directory server configuration which can be used to communicate and
/// authenticate with a directory server.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `StoragePod::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.file_service_config?.domains?[*].directory_server_config?`
///
/// *(10 of 29 paths)*
pub trait VsanDirectoryServerConfigTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VsanDirectoryServerConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanDirectoryServerConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanDirectoryServerConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanDirectoryServerConfig"),
__out: &mut self.out,
}))
}
}
struct VsanDirectoryServerConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanDirectoryServerConfigTrait>>,
}
impl miniserde::de::Map for VsanDirectoryServerConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanDirectoryServerConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanDirectoryServerConfigTrait for VsanDirectoryServerConfig {
}
impl VsanDirectoryServerConfigTrait for ActiveVsanDirectoryServerConfig {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanDirectoryServerConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanDirectoryServerConfig => Some(from.as_any_ref().downcast_ref::<VsanDirectoryServerConfig>()?),
StructType::ActiveVsanDirectoryServerConfig => Some(from.as_any_ref().downcast_ref::<ActiveVsanDirectoryServerConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanDirectoryServerConfig => Ok(from.as_any_box().downcast::<VsanDirectoryServerConfig>()?),
StructType::ActiveVsanDirectoryServerConfig => Ok(from.as_any_box().downcast::<ActiveVsanDirectoryServerConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Details about the resource check result for a given entity.
///
/// The result
/// contains information of current and predicted usage the various
/// resources, like capacity, for the entity. For example, for a host result
/// contains current and predicted capacity usage and component counts.
///
/// This structure may be used only with operations rendered under `/vsan`.
pub trait EntityResourceCheckDetailsTrait : super::traits::DataObjectTrait {
/// Get a reference to the EntityResourceCheckDetails parent struct
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails;
/// Get a mutable reference to the EntityResourceCheckDetails parent struct
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails;
}
impl std::ops::Deref for dyn EntityResourceCheckDetailsTrait {
type Target = super::structs::EntityResourceCheckDetails;
fn deref(&self) -> &Self::Target {
self.get_entity_resource_check_details()
}
}
impl std::ops::DerefMut for dyn EntityResourceCheckDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_entity_resource_check_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn EntityResourceCheckDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn EntityResourceCheckDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(EntityResourceCheckDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("EntityResourceCheckDetails"),
__out: &mut self.out,
}))
}
}
struct EntityResourceCheckDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn EntityResourceCheckDetailsTrait>>,
}
impl miniserde::de::Map for EntityResourceCheckDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn EntityResourceCheckDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl EntityResourceCheckDetailsTrait for EntityResourceCheckDetails {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { self }
}
impl EntityResourceCheckDetailsTrait for VsanDiskGroupResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanDiskResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanStoragePoolDiskResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.vsan_disk_resource_check_result_.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.vsan_disk_resource_check_result_.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanFaultDomainResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanHostResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanResourceCheckComponentResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.vsan_resource_check_result_.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.vsan_resource_check_result_.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanResourceCheckDataPersistenceResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.vsan_resource_check_component_result_.vsan_resource_check_result_.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.vsan_resource_check_component_result_.vsan_resource_check_result_.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanResourceCheckVsanResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.vsan_resource_check_component_result_.vsan_resource_check_result_.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.vsan_resource_check_component_result_.vsan_resource_check_result_.entity_resource_check_details_ }
}
impl EntityResourceCheckDetailsTrait for VsanStoragePoolResourceCheckResult {
fn get_entity_resource_check_details(&self) -> &super::structs::EntityResourceCheckDetails { &self.entity_resource_check_details_ }
fn get_entity_resource_check_details_mut(&mut self) -> &mut super::structs::EntityResourceCheckDetails { &mut self.entity_resource_check_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn EntityResourceCheckDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::EntityResourceCheckDetails => Some(from.as_any_ref().downcast_ref::<EntityResourceCheckDetails>()?),
StructType::VsanDiskGroupResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskGroupResourceCheckResult>()?),
StructType::VsanDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolDiskResourceCheckResult>()?),
StructType::VsanFaultDomainResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanFaultDomainResourceCheckResult>()?),
StructType::VsanHostResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanHostResourceCheckResult>()?),
StructType::VsanResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckVsanResult>()?),
StructType::VsanStoragePoolResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolResourceCheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::EntityResourceCheckDetails => Ok(from.as_any_box().downcast::<EntityResourceCheckDetails>()?),
StructType::VsanDiskGroupResourceCheckResult => Ok(from.as_any_box().downcast::<VsanDiskGroupResourceCheckResult>()?),
StructType::VsanDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanStoragePoolDiskResourceCheckResult>()?),
StructType::VsanFaultDomainResourceCheckResult => Ok(from.as_any_box().downcast::<VsanFaultDomainResourceCheckResult>()?),
StructType::VsanHostResourceCheckResult => Ok(from.as_any_box().downcast::<VsanHostResourceCheckResult>()?),
StructType::VsanResourceCheckResult => Ok(from.as_any_box().downcast::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Ok(from.as_any_box().downcast::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Ok(from.as_any_box().downcast::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Ok(from.as_any_box().downcast::<VsanResourceCheckVsanResult>()?),
StructType::VsanStoragePoolResourceCheckResult => Ok(from.as_any_box().downcast::<VsanStoragePoolResourceCheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The vSAN disk level resource check report.
///
/// It includes basic disk info,
/// current disk usage and the predicted disk usage after the queried
/// operation is performed *EntityResourceCheckDetails*.
/// For example, if the queried resource check is for host enter maintenance
/// mode operation, vSAN will simulate the disk usage after the queried host
/// enters maintenance mode. This will provide user a sense of what the disk
/// usage will look like if the queried operation is carried out.
/// If *EntityResourceCheckDetails.isNew* is true, this is a new
/// disk suggested to be added by vSAN simulation for more resources to make the
/// operation succeed. In this case, currentUsage will be 0 and
/// postOperationUsage will show how the new disk will be used assuming the
/// queried operation is done from vSAN simulation.
/// If *EntityResourceCheckDetails.isNew* is false, this is an
/// existing disk in the current cluster. postOperationUsage will give the
/// usage of the disk assuming the queried operation is done from vSAN
/// simulation.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?.fault_domains?[*].hosts?[*].disk_groups?[*].cache_tier_disk?`
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?.fault_domains?[*].hosts?[*].disk_groups?[*].capacity_tier_disks?[*]`
pub trait VsanDiskResourceCheckResultTrait : super::traits::EntityResourceCheckDetailsTrait {
/// Get a reference to the VsanDiskResourceCheckResult parent struct
fn get_vsan_disk_resource_check_result(&self) -> &super::structs::VsanDiskResourceCheckResult;
/// Get a mutable reference to the VsanDiskResourceCheckResult parent struct
fn get_vsan_disk_resource_check_result_mut(&mut self) -> &mut super::structs::VsanDiskResourceCheckResult;
}
impl std::ops::Deref for dyn VsanDiskResourceCheckResultTrait {
type Target = super::structs::VsanDiskResourceCheckResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_disk_resource_check_result()
}
}
impl std::ops::DerefMut for dyn VsanDiskResourceCheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_disk_resource_check_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanDiskResourceCheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanDiskResourceCheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanDiskResourceCheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanDiskResourceCheckResult"),
__out: &mut self.out,
}))
}
}
struct VsanDiskResourceCheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanDiskResourceCheckResultTrait>>,
}
impl miniserde::de::Map for VsanDiskResourceCheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanDiskResourceCheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanDiskResourceCheckResultTrait for VsanDiskResourceCheckResult {
fn get_vsan_disk_resource_check_result(&self) -> &super::structs::VsanDiskResourceCheckResult { &self }
fn get_vsan_disk_resource_check_result_mut(&mut self) -> &mut super::structs::VsanDiskResourceCheckResult { self }
}
impl VsanDiskResourceCheckResultTrait for VsanStoragePoolDiskResourceCheckResult {
fn get_vsan_disk_resource_check_result(&self) -> &super::structs::VsanDiskResourceCheckResult { &self.vsan_disk_resource_check_result_ }
fn get_vsan_disk_resource_check_result_mut(&mut self) -> &mut super::structs::VsanDiskResourceCheckResult { &mut self.vsan_disk_resource_check_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanDiskResourceCheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanStoragePoolDiskResourceCheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanDiskResourceCheckResult>()?),
StructType::VsanStoragePoolDiskResourceCheckResult => Ok(from.as_any_box().downcast::<VsanStoragePoolDiskResourceCheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The resource check result for the queried spec
/// *VsanResourceCheckSpec*.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?`
pub trait VsanResourceCheckResultTrait : super::traits::EntityResourceCheckDetailsTrait {
/// Get a reference to the VsanResourceCheckResult parent struct
fn get_vsan_resource_check_result(&self) -> &super::structs::VsanResourceCheckResult;
/// Get a mutable reference to the VsanResourceCheckResult parent struct
fn get_vsan_resource_check_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckResult;
}
impl std::ops::Deref for dyn VsanResourceCheckResultTrait {
type Target = super::structs::VsanResourceCheckResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_resource_check_result()
}
}
impl std::ops::DerefMut for dyn VsanResourceCheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_resource_check_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanResourceCheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanResourceCheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanResourceCheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanResourceCheckResult"),
__out: &mut self.out,
}))
}
}
struct VsanResourceCheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanResourceCheckResultTrait>>,
}
impl miniserde::de::Map for VsanResourceCheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanResourceCheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanResourceCheckResultTrait for VsanResourceCheckResult {
fn get_vsan_resource_check_result(&self) -> &super::structs::VsanResourceCheckResult { &self }
fn get_vsan_resource_check_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckResult { self }
}
impl VsanResourceCheckResultTrait for VsanResourceCheckComponentResult {
fn get_vsan_resource_check_result(&self) -> &super::structs::VsanResourceCheckResult { &self.vsan_resource_check_result_ }
fn get_vsan_resource_check_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckResult { &mut self.vsan_resource_check_result_ }
}
impl VsanResourceCheckResultTrait for VsanResourceCheckDataPersistenceResult {
fn get_vsan_resource_check_result(&self) -> &super::structs::VsanResourceCheckResult { &self.vsan_resource_check_component_result_.vsan_resource_check_result_ }
fn get_vsan_resource_check_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckResult { &mut self.vsan_resource_check_component_result_.vsan_resource_check_result_ }
}
impl VsanResourceCheckResultTrait for VsanResourceCheckVsanResult {
fn get_vsan_resource_check_result(&self) -> &super::structs::VsanResourceCheckResult { &self.vsan_resource_check_component_result_.vsan_resource_check_result_ }
fn get_vsan_resource_check_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckResult { &mut self.vsan_resource_check_component_result_.vsan_resource_check_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanResourceCheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckVsanResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckResult => Ok(from.as_any_box().downcast::<VsanResourceCheckResult>()?),
StructType::VsanResourceCheckComponentResult => Ok(from.as_any_box().downcast::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Ok(from.as_any_box().downcast::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Ok(from.as_any_box().downcast::<VsanResourceCheckVsanResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The resource check result for different components,
/// e.g., regular vSAN or vSphere data persistence platform.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().component_results?[*]`
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?⇒VsanResourceCheckComponentResultTrait`
pub trait VsanResourceCheckComponentResultTrait : super::traits::VsanResourceCheckResultTrait {
/// Get a reference to the VsanResourceCheckComponentResult parent struct
fn get_vsan_resource_check_component_result(&self) -> &super::structs::VsanResourceCheckComponentResult;
/// Get a mutable reference to the VsanResourceCheckComponentResult parent struct
fn get_vsan_resource_check_component_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckComponentResult;
}
impl std::ops::Deref for dyn VsanResourceCheckComponentResultTrait {
type Target = super::structs::VsanResourceCheckComponentResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_resource_check_component_result()
}
}
impl std::ops::DerefMut for dyn VsanResourceCheckComponentResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_resource_check_component_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanResourceCheckComponentResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanResourceCheckComponentResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanResourceCheckComponentResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanResourceCheckComponentResult"),
__out: &mut self.out,
}))
}
}
struct VsanResourceCheckComponentResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanResourceCheckComponentResultTrait>>,
}
impl miniserde::de::Map for VsanResourceCheckComponentResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanResourceCheckComponentResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanResourceCheckComponentResultTrait for VsanResourceCheckComponentResult {
fn get_vsan_resource_check_component_result(&self) -> &super::structs::VsanResourceCheckComponentResult { &self }
fn get_vsan_resource_check_component_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckComponentResult { self }
}
impl VsanResourceCheckComponentResultTrait for VsanResourceCheckDataPersistenceResult {
fn get_vsan_resource_check_component_result(&self) -> &super::structs::VsanResourceCheckComponentResult { &self.vsan_resource_check_component_result_ }
fn get_vsan_resource_check_component_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckComponentResult { &mut self.vsan_resource_check_component_result_ }
}
impl VsanResourceCheckComponentResultTrait for VsanResourceCheckVsanResult {
fn get_vsan_resource_check_component_result(&self) -> &super::structs::VsanResourceCheckComponentResult { &self.vsan_resource_check_component_result_ }
fn get_vsan_resource_check_component_result_mut(&mut self) -> &mut super::structs::VsanResourceCheckComponentResult { &mut self.vsan_resource_check_component_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanResourceCheckComponentResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckComponentResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckVsanResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckComponentResult => Ok(from.as_any_box().downcast::<VsanResourceCheckComponentResult>()?),
StructType::VsanResourceCheckDataPersistenceResult => Ok(from.as_any_box().downcast::<VsanResourceCheckDataPersistenceResult>()?),
StructType::VsanResourceCheckVsanResult => Ok(from.as_any_box().downcast::<VsanResourceCheckVsanResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Precheck result for mounting a remote vSAN datastore.
///
/// It represents the
/// precheck status and reason for a specific type of precheck.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanRemoteDatastoreSystem::mount_precheck().result?[*]`
/// - `VsanRemoteDatastoreSystem::remote_vc_mount_precheck().result?[*]`
pub trait VsanMountPrecheckItemTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanMountPrecheckItem parent struct
fn get_vsan_mount_precheck_item(&self) -> &super::structs::VsanMountPrecheckItem;
/// Get a mutable reference to the VsanMountPrecheckItem parent struct
fn get_vsan_mount_precheck_item_mut(&mut self) -> &mut super::structs::VsanMountPrecheckItem;
}
impl std::ops::Deref for dyn VsanMountPrecheckItemTrait {
type Target = super::structs::VsanMountPrecheckItem;
fn deref(&self) -> &Self::Target {
self.get_vsan_mount_precheck_item()
}
}
impl std::ops::DerefMut for dyn VsanMountPrecheckItemTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_mount_precheck_item_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanMountPrecheckItemTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanMountPrecheckItemTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanMountPrecheckItemTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanMountPrecheckItem"),
__out: &mut self.out,
}))
}
}
struct VsanMountPrecheckItemTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanMountPrecheckItemTrait>>,
}
impl miniserde::de::Map for VsanMountPrecheckItemTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanMountPrecheckItemTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanMountPrecheckItemTrait for VsanMountPrecheckItem {
fn get_vsan_mount_precheck_item(&self) -> &super::structs::VsanMountPrecheckItem { &self }
fn get_vsan_mount_precheck_item_mut(&mut self) -> &mut super::structs::VsanMountPrecheckItem { self }
}
impl VsanMountPrecheckItemTrait for VsanDatastoreSourcePrecheckItem {
fn get_vsan_mount_precheck_item(&self) -> &super::structs::VsanMountPrecheckItem { &self.vsan_mount_precheck_item_ }
fn get_vsan_mount_precheck_item_mut(&mut self) -> &mut super::structs::VsanMountPrecheckItem { &mut self.vsan_mount_precheck_item_ }
}
impl VsanMountPrecheckItemTrait for VsanMountPrecheckNetworkConnectivityResult {
fn get_vsan_mount_precheck_item(&self) -> &super::structs::VsanMountPrecheckItem { &self.vsan_mount_precheck_item_ }
fn get_vsan_mount_precheck_item_mut(&mut self) -> &mut super::structs::VsanMountPrecheckItem { &mut self.vsan_mount_precheck_item_ }
}
impl VsanMountPrecheckItemTrait for VsanMountPrecheckNetworkLatencyResult {
fn get_vsan_mount_precheck_item(&self) -> &super::structs::VsanMountPrecheckItem { &self.vsan_mount_precheck_item_ }
fn get_vsan_mount_precheck_item_mut(&mut self) -> &mut super::structs::VsanMountPrecheckItem { &mut self.vsan_mount_precheck_item_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanMountPrecheckItemTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanMountPrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckItem>()?),
StructType::VsanDatastoreSourcePrecheckItem => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSourcePrecheckItem>()?),
StructType::VsanMountPrecheckNetworkConnectivityResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkConnectivityResult>()?),
StructType::VsanMountPrecheckNetworkLatencyResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckNetworkLatencyResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanMountPrecheckItem => Ok(from.as_any_box().downcast::<VsanMountPrecheckItem>()?),
StructType::VsanDatastoreSourcePrecheckItem => Ok(from.as_any_box().downcast::<VsanDatastoreSourcePrecheckItem>()?),
StructType::VsanMountPrecheckNetworkConnectivityResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkConnectivityResult>()?),
StructType::VsanMountPrecheckNetworkLatencyResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckNetworkLatencyResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Result for all types of remote vSAN mounting prechecks.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanRemoteDatastoreSystem::mount_precheck()`
/// - `VsanRemoteDatastoreSystem::remote_vc_mount_precheck()`
pub trait VsanMountPrecheckResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanMountPrecheckResult parent struct
fn get_vsan_mount_precheck_result(&self) -> &super::structs::VsanMountPrecheckResult;
/// Get a mutable reference to the VsanMountPrecheckResult parent struct
fn get_vsan_mount_precheck_result_mut(&mut self) -> &mut super::structs::VsanMountPrecheckResult;
}
impl std::ops::Deref for dyn VsanMountPrecheckResultTrait {
type Target = super::structs::VsanMountPrecheckResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_mount_precheck_result()
}
}
impl std::ops::DerefMut for dyn VsanMountPrecheckResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_mount_precheck_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanMountPrecheckResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanMountPrecheckResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanMountPrecheckResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanMountPrecheckResult"),
__out: &mut self.out,
}))
}
}
struct VsanMountPrecheckResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanMountPrecheckResultTrait>>,
}
impl miniserde::de::Map for VsanMountPrecheckResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanMountPrecheckResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanMountPrecheckResultTrait for VsanMountPrecheckResult {
fn get_vsan_mount_precheck_result(&self) -> &super::structs::VsanMountPrecheckResult { &self }
fn get_vsan_mount_precheck_result_mut(&mut self) -> &mut super::structs::VsanMountPrecheckResult { self }
}
impl VsanMountPrecheckResultTrait for VsanDatastoreSourcePrecheckResult {
fn get_vsan_mount_precheck_result(&self) -> &super::structs::VsanMountPrecheckResult { &self.vsan_mount_precheck_result_ }
fn get_vsan_mount_precheck_result_mut(&mut self) -> &mut super::structs::VsanMountPrecheckResult { &mut self.vsan_mount_precheck_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanMountPrecheckResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanMountPrecheckResult => Some(from.as_any_ref().downcast_ref::<VsanMountPrecheckResult>()?),
StructType::VsanDatastoreSourcePrecheckResult => Some(from.as_any_ref().downcast_ref::<VsanDatastoreSourcePrecheckResult>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanMountPrecheckResult => Ok(from.as_any_box().downcast::<VsanMountPrecheckResult>()?),
StructType::VsanDatastoreSourcePrecheckResult => Ok(from.as_any_box().downcast::<VsanDatastoreSourcePrecheckResult>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The basic information for communicating with a remote vCenter.
///
/// It is used to connect to the remote vCenter from the local.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanRemoteDatastoreSystem::vsan_query_hci_mesh_datastores(extra_vc_infos)`
/// - `VsanRemoteDatastoreSystem::vsan_create_datastore_source(datastore_source).vc_info`
/// - `VsanRemoteDatastoreSystem::vsan_destroy_datastore_source(datastore_source).vc_info`
/// - `VsanRemoteDatastoreSystem::vsan_precheck_datastore_source(datastore_source).vc_info`
/// - `VsanRemoteDatastoreSystem::vsan_query_datastore_source().vc_info`
///
/// *(5 of 6 paths)*
pub trait VsanRemoteVcInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanRemoteVcInfo parent struct
fn get_vsan_remote_vc_info(&self) -> &super::structs::VsanRemoteVcInfo;
/// Get a mutable reference to the VsanRemoteVcInfo parent struct
fn get_vsan_remote_vc_info_mut(&mut self) -> &mut super::structs::VsanRemoteVcInfo;
}
impl std::ops::Deref for dyn VsanRemoteVcInfoTrait {
type Target = super::structs::VsanRemoteVcInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_remote_vc_info()
}
}
impl std::ops::DerefMut for dyn VsanRemoteVcInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_remote_vc_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanRemoteVcInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanRemoteVcInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanRemoteVcInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanRemoteVcInfo"),
__out: &mut self.out,
}))
}
}
struct VsanRemoteVcInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanRemoteVcInfoTrait>>,
}
impl miniserde::de::Map for VsanRemoteVcInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanRemoteVcInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanRemoteVcInfoTrait for VsanRemoteVcInfo {
fn get_vsan_remote_vc_info(&self) -> &super::structs::VsanRemoteVcInfo { &self }
fn get_vsan_remote_vc_info_mut(&mut self) -> &mut super::structs::VsanRemoteVcInfo { self }
}
impl VsanRemoteVcInfoTrait for VsanRemoteVcInfoStandalone {
fn get_vsan_remote_vc_info(&self) -> &super::structs::VsanRemoteVcInfo { &self.vsan_remote_vc_info_ }
fn get_vsan_remote_vc_info_mut(&mut self) -> &mut super::structs::VsanRemoteVcInfo { &mut self.vsan_remote_vc_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanRemoteVcInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanRemoteVcInfo => Some(from.as_any_ref().downcast_ref::<VsanRemoteVcInfo>()?),
StructType::VsanRemoteVcInfoStandalone => Some(from.as_any_ref().downcast_ref::<VsanRemoteVcInfoStandalone>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanRemoteVcInfo => Ok(from.as_any_box().downcast::<VsanRemoteVcInfo>()?),
StructType::VsanRemoteVcInfoStandalone => Ok(from.as_any_box().downcast::<VsanRemoteVcInfoStandalone>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The detailed information of a running task that is related to resource check.
///
/// The task could be the resource check task itself, or the parent task if
/// the resource check is launched by a parent task.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().task?`
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().parent_task?`
pub trait VsanResourceCheckTaskDetailsTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanResourceCheckTaskDetails parent struct
fn get_vsan_resource_check_task_details(&self) -> &super::structs::VsanResourceCheckTaskDetails;
/// Get a mutable reference to the VsanResourceCheckTaskDetails parent struct
fn get_vsan_resource_check_task_details_mut(&mut self) -> &mut super::structs::VsanResourceCheckTaskDetails;
}
impl std::ops::Deref for dyn VsanResourceCheckTaskDetailsTrait {
type Target = super::structs::VsanResourceCheckTaskDetails;
fn deref(&self) -> &Self::Target {
self.get_vsan_resource_check_task_details()
}
}
impl std::ops::DerefMut for dyn VsanResourceCheckTaskDetailsTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_resource_check_task_details_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanResourceCheckTaskDetailsTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanResourceCheckTaskDetailsTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanResourceCheckTaskDetailsTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanResourceCheckTaskDetails"),
__out: &mut self.out,
}))
}
}
struct VsanResourceCheckTaskDetailsTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanResourceCheckTaskDetailsTrait>>,
}
impl miniserde::de::Map for VsanResourceCheckTaskDetailsTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanResourceCheckTaskDetailsTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanResourceCheckTaskDetailsTrait for VsanResourceCheckTaskDetails {
fn get_vsan_resource_check_task_details(&self) -> &super::structs::VsanResourceCheckTaskDetails { &self }
fn get_vsan_resource_check_task_details_mut(&mut self) -> &mut super::structs::VsanResourceCheckTaskDetails { self }
}
impl VsanResourceCheckTaskDetailsTrait for VsanDiskDataEvacuationResourceCheckTaskDetails {
fn get_vsan_resource_check_task_details(&self) -> &super::structs::VsanResourceCheckTaskDetails { &self.vsan_resource_check_task_details_ }
fn get_vsan_resource_check_task_details_mut(&mut self) -> &mut super::structs::VsanResourceCheckTaskDetails { &mut self.vsan_resource_check_task_details_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanResourceCheckTaskDetailsTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckTaskDetails => Some(from.as_any_ref().downcast_ref::<VsanResourceCheckTaskDetails>()?),
StructType::VsanDiskDataEvacuationResourceCheckTaskDetails => Some(from.as_any_ref().downcast_ref::<VsanDiskDataEvacuationResourceCheckTaskDetails>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanResourceCheckTaskDetails => Ok(from.as_any_box().downcast::<VsanResourceCheckTaskDetails>()?),
StructType::VsanDiskDataEvacuationResourceCheckTaskDetails => Ok(from.as_any_box().downcast::<VsanDiskDataEvacuationResourceCheckTaskDetails>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Define virtual IP (VIP) specification.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `Folder::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `StoragePod::create_cluster_ex(spec).vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?→VsanConfigInfoEx.iscsi_config?.vip_configs?[*]`
///
/// *(10 of 20 paths)*
pub trait VsanIscsiVipConfigSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanIscsiVipConfigSpec parent struct
fn get_vsan_iscsi_vip_config_spec(&self) -> &super::structs::VsanIscsiVipConfigSpec;
/// Get a mutable reference to the VsanIscsiVipConfigSpec parent struct
fn get_vsan_iscsi_vip_config_spec_mut(&mut self) -> &mut super::structs::VsanIscsiVipConfigSpec;
}
impl std::ops::Deref for dyn VsanIscsiVipConfigSpecTrait {
type Target = super::structs::VsanIscsiVipConfigSpec;
fn deref(&self) -> &Self::Target {
self.get_vsan_iscsi_vip_config_spec()
}
}
impl std::ops::DerefMut for dyn VsanIscsiVipConfigSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_iscsi_vip_config_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanIscsiVipConfigSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanIscsiVipConfigSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanIscsiVipConfigSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanIscsiVipConfigSpec"),
__out: &mut self.out,
}))
}
}
struct VsanIscsiVipConfigSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanIscsiVipConfigSpecTrait>>,
}
impl miniserde::de::Map for VsanIscsiVipConfigSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanIscsiVipConfigSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanIscsiVipConfigSpecTrait for VsanIscsiVipConfigSpec {
fn get_vsan_iscsi_vip_config_spec(&self) -> &super::structs::VsanIscsiVipConfigSpec { &self }
fn get_vsan_iscsi_vip_config_spec_mut(&mut self) -> &mut super::structs::VsanIscsiVipConfigSpec { self }
}
impl VsanIscsiVipConfigSpecTrait for VsanIscsiVipConfig {
fn get_vsan_iscsi_vip_config_spec(&self) -> &super::structs::VsanIscsiVipConfigSpec { &self.vsan_iscsi_vip_config_spec_ }
fn get_vsan_iscsi_vip_config_spec_mut(&mut self) -> &mut super::structs::VsanIscsiVipConfigSpec { &mut self.vsan_iscsi_vip_config_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanIscsiVipConfigSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiVipConfigSpec => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipConfigSpec>()?),
StructType::VsanIscsiVipConfig => Some(from.as_any_ref().downcast_ref::<VsanIscsiVipConfig>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanIscsiVipConfigSpec => Ok(from.as_any_box().downcast::<VsanIscsiVipConfigSpec>()?),
StructType::VsanIscsiVipConfig => Ok(from.as_any_box().downcast::<VsanIscsiVipConfig>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all vSAN configuration issues.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().vsan_config?.issues?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_cluster_historical_health().vsan_config?.issues?[*]`
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?.health?.vsan_config?.issues?[*]`
pub trait VsanConfigBaseIssueTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VsanConfigBaseIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanConfigBaseIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanConfigBaseIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanConfigBaseIssue"),
__out: &mut self.out,
}))
}
}
struct VsanConfigBaseIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanConfigBaseIssueTrait>>,
}
impl miniserde::de::Map for VsanConfigBaseIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanConfigBaseIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanConfigBaseIssueTrait for VsanConfigBaseIssue {
}
impl VsanConfigBaseIssueTrait for VsanConfigNotAllDisksClaimedIssue {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanConfigBaseIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanConfigBaseIssue => Some(from.as_any_ref().downcast_ref::<VsanConfigBaseIssue>()?),
StructType::VsanConfigNotAllDisksClaimedIssue => Some(from.as_any_ref().downcast_ref::<VsanConfigNotAllDisksClaimedIssue>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanConfigBaseIssue => Ok(from.as_any_box().downcast::<VsanConfigBaseIssue>()?),
StructType::VsanConfigNotAllDisksClaimedIssue => Ok(from.as_any_box().downcast::<VsanConfigNotAllDisksClaimedIssue>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base class for all vSAN network configuration issues.
///
/// This structure may be used only with operations rendered under `/vsan`.
///
/// ### How to access
/// - `VsanVcClusterHealthSystem::vsan_query_vc_cluster_health_summary().network_config?.issues?[*]`
/// - `VsanVcClusterHealthSystem::vsan_query_cluster_historical_health().network_config?.issues?[*]`
/// - `VsanResourceCheckSystem::vsan_get_resource_check_status().result?.health?.network_config?.issues?[*]`
pub trait VsanNetworkConfigBaseIssueTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VsanNetworkConfigBaseIssueTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanNetworkConfigBaseIssueTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanNetworkConfigBaseIssueTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanNetworkConfigBaseIssue"),
__out: &mut self.out,
}))
}
}
struct VsanNetworkConfigBaseIssueTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanNetworkConfigBaseIssueTrait>>,
}
impl miniserde::de::Map for VsanNetworkConfigBaseIssueTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanNetworkConfigBaseIssueTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigBaseIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigPnicSpeedInconsistencyIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigPortgroupWithNoRedundancyIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigVdsScopeIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigVsanNotOnVdsIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkConfigVswitchWithNoRedundancyIssue {
}
impl VsanNetworkConfigBaseIssueTrait for VsanNetworkVMotionVmknicNotFountIssue {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanNetworkConfigBaseIssueTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanNetworkConfigBaseIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigBaseIssue>()?),
StructType::VsanNetworkConfigPnicSpeedInconsistencyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigPnicSpeedInconsistencyIssue>()?),
StructType::VsanNetworkConfigPortgroupWithNoRedundancyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigPortgroupWithNoRedundancyIssue>()?),
StructType::VsanNetworkConfigVdsScopeIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVdsScopeIssue>()?),
StructType::VsanNetworkConfigVsanNotOnVdsIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVsanNotOnVdsIssue>()?),
StructType::VsanNetworkConfigVswitchWithNoRedundancyIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkConfigVswitchWithNoRedundancyIssue>()?),
StructType::VsanNetworkVMotionVmknicNotFountIssue => Some(from.as_any_ref().downcast_ref::<VsanNetworkVMotionVmknicNotFountIssue>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanNetworkConfigBaseIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigBaseIssue>()?),
StructType::VsanNetworkConfigPnicSpeedInconsistencyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigPnicSpeedInconsistencyIssue>()?),
StructType::VsanNetworkConfigPortgroupWithNoRedundancyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigPortgroupWithNoRedundancyIssue>()?),
StructType::VsanNetworkConfigVdsScopeIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVdsScopeIssue>()?),
StructType::VsanNetworkConfigVsanNotOnVdsIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVsanNotOnVdsIssue>()?),
StructType::VsanNetworkConfigVswitchWithNoRedundancyIssue => Ok(from.as_any_box().downcast::<VsanNetworkConfigVswitchWithNoRedundancyIssue>()?),
StructType::VsanNetworkVMotionVmknicNotFountIssue => Ok(from.as_any_box().downcast::<VsanNetworkVMotionVmknicNotFountIssue>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VsanClusterConfigInfo* data object contains configuration
/// data for the VSAN service in a cluster.
///
/// This data object is used both for
/// specifying cluster-wide settings when updating the VSAN service, and as an
/// output datatype when retrieving current cluster-wide VSAN service settings.
///
/// See also *ComputeResource.ReconfigureComputeResource_Task*.
///
/// ### How to access
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_config_info?`
/// - `Folder::create_cluster_ex(spec).vsan_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
/// - `StoragePod::create_cluster_ex(spec).vsan_config?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
/// - `StoragePod::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
/// - `StoragePod::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_config?`
///
/// *(10 of 19 paths)*
pub trait VsanClusterConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanClusterConfigInfo parent struct
fn get_vsan_cluster_config_info(&self) -> &super::structs::VsanClusterConfigInfo;
/// Get a mutable reference to the VsanClusterConfigInfo parent struct
fn get_vsan_cluster_config_info_mut(&mut self) -> &mut super::structs::VsanClusterConfigInfo;
}
impl std::ops::Deref for dyn VsanClusterConfigInfoTrait {
type Target = super::structs::VsanClusterConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_cluster_config_info()
}
}
impl std::ops::DerefMut for dyn VsanClusterConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_cluster_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanClusterConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanClusterConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanClusterConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanClusterConfigInfo"),
__out: &mut self.out,
}))
}
}
struct VsanClusterConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanClusterConfigInfoTrait>>,
}
impl miniserde::de::Map for VsanClusterConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanClusterConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanClusterConfigInfoTrait for VsanClusterConfigInfo {
fn get_vsan_cluster_config_info(&self) -> &super::structs::VsanClusterConfigInfo { &self }
fn get_vsan_cluster_config_info_mut(&mut self) -> &mut super::structs::VsanClusterConfigInfo { self }
}
impl VsanClusterConfigInfoTrait for VsanConfigInfoEx {
fn get_vsan_cluster_config_info(&self) -> &super::structs::VsanClusterConfigInfo { &self.vsan_cluster_config_info_ }
fn get_vsan_cluster_config_info_mut(&mut self) -> &mut super::structs::VsanClusterConfigInfo { &mut self.vsan_cluster_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanClusterConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterConfigInfo => Some(from.as_any_ref().downcast_ref::<VsanClusterConfigInfo>()?),
StructType::VsanConfigInfoEx => Some(from.as_any_ref().downcast_ref::<VsanConfigInfoEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanClusterConfigInfo => Ok(from.as_any_box().downcast::<VsanClusterConfigInfo>()?),
StructType::VsanConfigInfoEx => Ok(from.as_any_box().downcast::<VsanConfigInfoEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *VsanHostConfigInfo* data object contains host-specific settings
/// for the VSAN service.
///
/// This data object is used both for specifying
/// settings for updating the VSAN service, and as an output datatype
/// when retrieving current VSAN service settings.
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*]`
/// - `HostVsanSystem::config`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*]`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]`
/// - `StoragePod::create_cluster_ex(spec).vsan_host_config_spec?[*]`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*]`
///
/// *(10 of 17 paths)*
pub trait VsanHostConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHostConfigInfo parent struct
fn get_vsan_host_config_info(&self) -> &super::structs::VsanHostConfigInfo;
/// Get a mutable reference to the VsanHostConfigInfo parent struct
fn get_vsan_host_config_info_mut(&mut self) -> &mut super::structs::VsanHostConfigInfo;
}
impl std::ops::Deref for dyn VsanHostConfigInfoTrait {
type Target = super::structs::VsanHostConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_vsan_host_config_info()
}
}
impl std::ops::DerefMut for dyn VsanHostConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_host_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHostConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHostConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHostConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHostConfigInfo"),
__out: &mut self.out,
}))
}
}
struct VsanHostConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHostConfigInfoTrait>>,
}
impl miniserde::de::Map for VsanHostConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHostConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHostConfigInfoTrait for VsanHostConfigInfo {
fn get_vsan_host_config_info(&self) -> &super::structs::VsanHostConfigInfo { &self }
fn get_vsan_host_config_info_mut(&mut self) -> &mut super::structs::VsanHostConfigInfo { self }
}
impl VsanHostConfigInfoTrait for VsanHostConfigInfoEx {
fn get_vsan_host_config_info(&self) -> &super::structs::VsanHostConfigInfo { &self.vsan_host_config_info_ }
fn get_vsan_host_config_info_mut(&mut self) -> &mut super::structs::VsanHostConfigInfo { &mut self.vsan_host_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHostConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostConfigInfo => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfo>()?),
StructType::VsanHostConfigInfoEx => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostConfigInfo => Ok(from.as_any_box().downcast::<VsanHostConfigInfo>()?),
StructType::VsanHostConfigInfoEx => Ok(from.as_any_box().downcast::<VsanHostConfigInfoEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A PortConfig represents a virtual network adapter and its
/// configuration for use by the VSAN service.
///
/// See also *HostVirtualNic*.
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?.network_info?.port?[*]`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*].network_info?.port?[*]`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*].network_info?.port?[*]`
/// - `HostVsanSystem::config.network_info?.port?[*]`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*].network_info?.port?[*]`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*]`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*]`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*]`
/// - `StoragePod::create_cluster_ex(spec).vsan_host_config_spec?[*].network_info?.port?[*]`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*]`
///
/// *(10 of 17 paths)*
pub trait VsanHostConfigInfoNetworkInfoPortConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHostConfigInfoNetworkInfoPortConfig parent struct
fn get_vsan_host_config_info_network_info_port_config(&self) -> &super::structs::VsanHostConfigInfoNetworkInfoPortConfig;
/// Get a mutable reference to the VsanHostConfigInfoNetworkInfoPortConfig parent struct
fn get_vsan_host_config_info_network_info_port_config_mut(&mut self) -> &mut super::structs::VsanHostConfigInfoNetworkInfoPortConfig;
}
impl std::ops::Deref for dyn VsanHostConfigInfoNetworkInfoPortConfigTrait {
type Target = super::structs::VsanHostConfigInfoNetworkInfoPortConfig;
fn deref(&self) -> &Self::Target {
self.get_vsan_host_config_info_network_info_port_config()
}
}
impl std::ops::DerefMut for dyn VsanHostConfigInfoNetworkInfoPortConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_host_config_info_network_info_port_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHostConfigInfoNetworkInfoPortConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHostConfigInfoNetworkInfoPortConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHostConfigInfoNetworkInfoPortConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHostConfigInfoNetworkInfoPortConfig"),
__out: &mut self.out,
}))
}
}
struct VsanHostConfigInfoNetworkInfoPortConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHostConfigInfoNetworkInfoPortConfigTrait>>,
}
impl miniserde::de::Map for VsanHostConfigInfoNetworkInfoPortConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHostConfigInfoNetworkInfoPortConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHostConfigInfoNetworkInfoPortConfigTrait for VsanHostConfigInfoNetworkInfoPortConfig {
fn get_vsan_host_config_info_network_info_port_config(&self) -> &super::structs::VsanHostConfigInfoNetworkInfoPortConfig { &self }
fn get_vsan_host_config_info_network_info_port_config_mut(&mut self) -> &mut super::structs::VsanHostConfigInfoNetworkInfoPortConfig { self }
}
impl VsanHostConfigInfoNetworkInfoPortConfigTrait for VsanHostPortConfigEx {
fn get_vsan_host_config_info_network_info_port_config(&self) -> &super::structs::VsanHostConfigInfoNetworkInfoPortConfig { &self.vsan_host_config_info_network_info_port_config_ }
fn get_vsan_host_config_info_network_info_port_config_mut(&mut self) -> &mut super::structs::VsanHostConfigInfoNetworkInfoPortConfig { &mut self.vsan_host_config_info_network_info_port_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHostConfigInfoNetworkInfoPortConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostConfigInfoNetworkInfoPortConfig => Some(from.as_any_ref().downcast_ref::<VsanHostConfigInfoNetworkInfoPortConfig>()?),
StructType::VsanHostPortConfigEx => Some(from.as_any_ref().downcast_ref::<VsanHostPortConfigEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostConfigInfoNetworkInfoPortConfig => Ok(from.as_any_box().downcast::<VsanHostConfigInfoNetworkInfoPortConfig>()?),
StructType::VsanHostPortConfigEx => Ok(from.as_any_box().downcast::<VsanHostPortConfigEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// A DiskResult represents the result of VSAN configuration operation
/// on a *HostScsiDisk*, and its current eligibility state for use by
/// the VSAN service.
///
/// See also *HostVsanSystem.QueryDisksForVsan*, *HostVsanSystem.UpdateVsan_Task*, *VsanHostDiskResultState_enum*.
///
/// ### How to access
/// - `HostVsanSystem::query_disks_for_vsan()`
pub trait VsanHostDiskResultTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHostDiskResult parent struct
fn get_vsan_host_disk_result(&self) -> &super::structs::VsanHostDiskResult;
/// Get a mutable reference to the VsanHostDiskResult parent struct
fn get_vsan_host_disk_result_mut(&mut self) -> &mut super::structs::VsanHostDiskResult;
}
impl std::ops::Deref for dyn VsanHostDiskResultTrait {
type Target = super::structs::VsanHostDiskResult;
fn deref(&self) -> &Self::Target {
self.get_vsan_host_disk_result()
}
}
impl std::ops::DerefMut for dyn VsanHostDiskResultTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_host_disk_result_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHostDiskResultTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHostDiskResultTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHostDiskResultTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHostDiskResult"),
__out: &mut self.out,
}))
}
}
struct VsanHostDiskResultTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHostDiskResultTrait>>,
}
impl miniserde::de::Map for VsanHostDiskResultTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHostDiskResultTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHostDiskResultTrait for VsanHostDiskResult {
fn get_vsan_host_disk_result(&self) -> &super::structs::VsanHostDiskResult { &self }
fn get_vsan_host_disk_result_mut(&mut self) -> &mut super::structs::VsanHostDiskResult { self }
}
impl VsanHostDiskResultTrait for VimVsanHostDiskResultEx {
fn get_vsan_host_disk_result(&self) -> &super::structs::VsanHostDiskResult { &self.vsan_host_disk_result_ }
fn get_vsan_host_disk_result_mut(&mut self) -> &mut super::structs::VsanHostDiskResult { &mut self.vsan_host_disk_result_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHostDiskResultTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostDiskResult => Some(from.as_any_ref().downcast_ref::<VsanHostDiskResult>()?),
StructType::VimVsanHostDiskResultEx => Some(from.as_any_ref().downcast_ref::<VimVsanHostDiskResultEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostDiskResult => Ok(from.as_any_box().downcast::<VsanHostDiskResult>()?),
StructType::VimVsanHostDiskResultEx => Ok(from.as_any_box().downcast::<VimVsanHostDiskResultEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// An *VsanHostIpConfig* is a pair of multicast IP addresses for use by the VSAN
/// service.
///
/// For VSAN there is one such IpConfig pair per "virtual network" as
/// represented by *VsanHostConfigInfoNetworkInfoPortConfig*.
///
/// See also *VsanHostConfigInfoNetworkInfo*, *VsanHostConfigInfoNetworkInfo.port*, *VsanHostConfigInfoNetworkInfoPortConfig*, *HostVsanSystem.UpdateVsan_Task*.
///
/// ### How to access
/// - `HostSystem::config.vsan_host_config?.network_info?.port?[*].ip_config?`
/// - `ComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*].network_info?.port?[*].ip_config?`
/// - `ClusterComputeResource::configuration_ex→ClusterConfigInfoEx.vsan_host_config?[*].network_info?.port?[*].ip_config?`
/// - `HostVsanSystem::config.network_info?.port?[*].ip_config?`
/// - `Folder::create_cluster_ex(spec).vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
/// - `Folder::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
/// - `Folder::batch_add_hosts_to_cluster_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
/// - `Folder::batch_add_standalone_hosts_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
/// - `StoragePod::create_cluster_ex(spec).vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
/// - `StoragePod::add_standalone_host_task(comp_res_spec)→ClusterConfigSpecEx.vsan_host_config_spec?[*].network_info?.port?[*].ip_config?`
///
/// *(10 of 17 paths)*
pub trait VsanHostIpConfigTrait : super::traits::DataObjectTrait {
/// Get a reference to the VsanHostIpConfig parent struct
fn get_vsan_host_ip_config(&self) -> &super::structs::VsanHostIpConfig;
/// Get a mutable reference to the VsanHostIpConfig parent struct
fn get_vsan_host_ip_config_mut(&mut self) -> &mut super::structs::VsanHostIpConfig;
}
impl std::ops::Deref for dyn VsanHostIpConfigTrait {
type Target = super::structs::VsanHostIpConfig;
fn deref(&self) -> &Self::Target {
self.get_vsan_host_ip_config()
}
}
impl std::ops::DerefMut for dyn VsanHostIpConfigTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vsan_host_ip_config_mut()
}
}
impl miniserde::Deserialize for Box<dyn VsanHostIpConfigTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VsanHostIpConfigTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VsanHostIpConfigTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VsanHostIpConfig"),
__out: &mut self.out,
}))
}
}
struct VsanHostIpConfigTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VsanHostIpConfigTrait>>,
}
impl miniserde::de::Map for VsanHostIpConfigTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VsanHostIpConfigTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VsanHostIpConfigTrait for VsanHostIpConfig {
fn get_vsan_host_ip_config(&self) -> &super::structs::VsanHostIpConfig { &self }
fn get_vsan_host_ip_config_mut(&mut self) -> &mut super::structs::VsanHostIpConfig { self }
}
impl VsanHostIpConfigTrait for VsanHostIpConfigEx {
fn get_vsan_host_ip_config(&self) -> &super::structs::VsanHostIpConfig { &self.vsan_host_ip_config_ }
fn get_vsan_host_ip_config_mut(&mut self) -> &mut super::structs::VsanHostIpConfig { &mut self.vsan_host_ip_config_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VsanHostIpConfigTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostIpConfig => Some(from.as_any_ref().downcast_ref::<VsanHostIpConfig>()?),
StructType::VsanHostIpConfigEx => Some(from.as_any_ref().downcast_ref::<VsanHostIpConfigEx>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VsanHostIpConfig => Ok(from.as_any_box().downcast::<VsanHostIpConfig>()?),
StructType::VsanHostIpConfigEx => Ok(from.as_any_box().downcast::<VsanHostIpConfigEx>()?),
_ => Err(from.as_any_box()),
}
}
}
/// This data object type contains the basic configuration for
/// a virtual storage object or a virtual storage object snapshot.
pub trait BaseConfigInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the BaseConfigInfo parent struct
fn get_base_config_info(&self) -> &super::structs::BaseConfigInfo;
/// Get a mutable reference to the BaseConfigInfo parent struct
fn get_base_config_info_mut(&mut self) -> &mut super::structs::BaseConfigInfo;
}
impl std::ops::Deref for dyn BaseConfigInfoTrait {
type Target = super::structs::BaseConfigInfo;
fn deref(&self) -> &Self::Target {
self.get_base_config_info()
}
}
impl std::ops::DerefMut for dyn BaseConfigInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_base_config_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn BaseConfigInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn BaseConfigInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(BaseConfigInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("BaseConfigInfo"),
__out: &mut self.out,
}))
}
}
struct BaseConfigInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn BaseConfigInfoTrait>>,
}
impl miniserde::de::Map for BaseConfigInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn BaseConfigInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl BaseConfigInfoTrait for BaseConfigInfo {
fn get_base_config_info(&self) -> &super::structs::BaseConfigInfo { &self }
fn get_base_config_info_mut(&mut self) -> &mut super::structs::BaseConfigInfo { self }
}
impl BaseConfigInfoTrait for VStorageObjectConfigInfo {
fn get_base_config_info(&self) -> &super::structs::BaseConfigInfo { &self.base_config_info_ }
fn get_base_config_info_mut(&mut self) -> &mut super::structs::BaseConfigInfo { &mut self.base_config_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn BaseConfigInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfo>()?),
StructType::VStorageObjectConfigInfo => Some(from.as_any_ref().downcast_ref::<VStorageObjectConfigInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfo => Ok(from.as_any_box().downcast::<BaseConfigInfo>()?),
StructType::VStorageObjectConfigInfo => Ok(from.as_any_box().downcast::<VStorageObjectConfigInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The data object type is a base type of backing of a virtual
/// storage object.
pub trait BaseConfigInfoBackingInfoTrait : super::traits::DataObjectTrait {
/// Get a reference to the BaseConfigInfoBackingInfo parent struct
fn get_base_config_info_backing_info(&self) -> &super::structs::BaseConfigInfoBackingInfo;
/// Get a mutable reference to the BaseConfigInfoBackingInfo parent struct
fn get_base_config_info_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoBackingInfo;
}
impl std::ops::Deref for dyn BaseConfigInfoBackingInfoTrait {
type Target = super::structs::BaseConfigInfoBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_base_config_info_backing_info()
}
}
impl std::ops::DerefMut for dyn BaseConfigInfoBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_base_config_info_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn BaseConfigInfoBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn BaseConfigInfoBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(BaseConfigInfoBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("BaseConfigInfoBackingInfo"),
__out: &mut self.out,
}))
}
}
struct BaseConfigInfoBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn BaseConfigInfoBackingInfoTrait>>,
}
impl miniserde::de::Map for BaseConfigInfoBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn BaseConfigInfoBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl BaseConfigInfoBackingInfoTrait for BaseConfigInfoBackingInfo {
fn get_base_config_info_backing_info(&self) -> &super::structs::BaseConfigInfoBackingInfo { &self }
fn get_base_config_info_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoBackingInfo { self }
}
impl BaseConfigInfoBackingInfoTrait for BaseConfigInfoFileBackingInfo {
fn get_base_config_info_backing_info(&self) -> &super::structs::BaseConfigInfoBackingInfo { &self.base_config_info_backing_info_ }
fn get_base_config_info_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoBackingInfo { &mut self.base_config_info_backing_info_ }
}
impl BaseConfigInfoBackingInfoTrait for BaseConfigInfoDiskFileBackingInfo {
fn get_base_config_info_backing_info(&self) -> &super::structs::BaseConfigInfoBackingInfo { &self.base_config_info_file_backing_info_.base_config_info_backing_info_ }
fn get_base_config_info_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoBackingInfo { &mut self.base_config_info_file_backing_info_.base_config_info_backing_info_ }
}
impl BaseConfigInfoBackingInfoTrait for BaseConfigInfoRawDiskMappingBackingInfo {
fn get_base_config_info_backing_info(&self) -> &super::structs::BaseConfigInfoBackingInfo { &self.base_config_info_file_backing_info_.base_config_info_backing_info_ }
fn get_base_config_info_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoBackingInfo { &mut self.base_config_info_file_backing_info_.base_config_info_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn BaseConfigInfoBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfoBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoBackingInfo>()?),
StructType::BaseConfigInfoFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfoBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoBackingInfo>()?),
StructType::BaseConfigInfoFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Information for file backing of a virtual storage
/// object.
///
/// File backing is mainly used for virtual disks.
pub trait BaseConfigInfoFileBackingInfoTrait : super::traits::BaseConfigInfoBackingInfoTrait {
/// Get a reference to the BaseConfigInfoFileBackingInfo parent struct
fn get_base_config_info_file_backing_info(&self) -> &super::structs::BaseConfigInfoFileBackingInfo;
/// Get a mutable reference to the BaseConfigInfoFileBackingInfo parent struct
fn get_base_config_info_file_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoFileBackingInfo;
}
impl std::ops::Deref for dyn BaseConfigInfoFileBackingInfoTrait {
type Target = super::structs::BaseConfigInfoFileBackingInfo;
fn deref(&self) -> &Self::Target {
self.get_base_config_info_file_backing_info()
}
}
impl std::ops::DerefMut for dyn BaseConfigInfoFileBackingInfoTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_base_config_info_file_backing_info_mut()
}
}
impl miniserde::Deserialize for Box<dyn BaseConfigInfoFileBackingInfoTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn BaseConfigInfoFileBackingInfoTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(BaseConfigInfoFileBackingInfoTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("BaseConfigInfoFileBackingInfo"),
__out: &mut self.out,
}))
}
}
struct BaseConfigInfoFileBackingInfoTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn BaseConfigInfoFileBackingInfoTrait>>,
}
impl miniserde::de::Map for BaseConfigInfoFileBackingInfoTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn BaseConfigInfoFileBackingInfoTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl BaseConfigInfoFileBackingInfoTrait for BaseConfigInfoFileBackingInfo {
fn get_base_config_info_file_backing_info(&self) -> &super::structs::BaseConfigInfoFileBackingInfo { &self }
fn get_base_config_info_file_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoFileBackingInfo { self }
}
impl BaseConfigInfoFileBackingInfoTrait for BaseConfigInfoDiskFileBackingInfo {
fn get_base_config_info_file_backing_info(&self) -> &super::structs::BaseConfigInfoFileBackingInfo { &self.base_config_info_file_backing_info_ }
fn get_base_config_info_file_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoFileBackingInfo { &mut self.base_config_info_file_backing_info_ }
}
impl BaseConfigInfoFileBackingInfoTrait for BaseConfigInfoRawDiskMappingBackingInfo {
fn get_base_config_info_file_backing_info(&self) -> &super::structs::BaseConfigInfoFileBackingInfo { &self.base_config_info_file_backing_info_ }
fn get_base_config_info_file_backing_info_mut(&mut self) -> &mut super::structs::BaseConfigInfoFileBackingInfo { &mut self.base_config_info_file_backing_info_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn BaseConfigInfoFileBackingInfoTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfoFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Some(from.as_any_ref().downcast_ref::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::BaseConfigInfoFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoFileBackingInfo>()?),
StructType::BaseConfigInfoDiskFileBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoDiskFileBackingInfo>()?),
StructType::BaseConfigInfoRawDiskMappingBackingInfo => Ok(from.as_any_box().downcast::<BaseConfigInfoRawDiskMappingBackingInfo>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Specification of the backing of a virtual
/// storage object.
///
/// ### How to access
/// - `HostVStorageObjectManager::host_create_disk_task(spec).backing_spec`
/// - `VcenterVStorageObjectManager::create_disk_task(spec).backing_spec`
/// - `VslmVStorageObjectManager::vslm_create_disk_task(spec).backing_spec`
pub trait VslmCreateSpecBackingSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VslmCreateSpecBackingSpec parent struct
fn get_vslm_create_spec_backing_spec(&self) -> &super::structs::VslmCreateSpecBackingSpec;
/// Get a mutable reference to the VslmCreateSpecBackingSpec parent struct
fn get_vslm_create_spec_backing_spec_mut(&mut self) -> &mut super::structs::VslmCreateSpecBackingSpec;
}
impl std::ops::Deref for dyn VslmCreateSpecBackingSpecTrait {
type Target = super::structs::VslmCreateSpecBackingSpec;
fn deref(&self) -> &Self::Target {
self.get_vslm_create_spec_backing_spec()
}
}
impl std::ops::DerefMut for dyn VslmCreateSpecBackingSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vslm_create_spec_backing_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VslmCreateSpecBackingSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VslmCreateSpecBackingSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VslmCreateSpecBackingSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VslmCreateSpecBackingSpec"),
__out: &mut self.out,
}))
}
}
struct VslmCreateSpecBackingSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VslmCreateSpecBackingSpecTrait>>,
}
impl miniserde::de::Map for VslmCreateSpecBackingSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VslmCreateSpecBackingSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VslmCreateSpecBackingSpecTrait for VslmCreateSpecBackingSpec {
fn get_vslm_create_spec_backing_spec(&self) -> &super::structs::VslmCreateSpecBackingSpec { &self }
fn get_vslm_create_spec_backing_spec_mut(&mut self) -> &mut super::structs::VslmCreateSpecBackingSpec { self }
}
impl VslmCreateSpecBackingSpecTrait for VslmCreateSpecDiskFileBackingSpec {
fn get_vslm_create_spec_backing_spec(&self) -> &super::structs::VslmCreateSpecBackingSpec { &self.vslm_create_spec_backing_spec_ }
fn get_vslm_create_spec_backing_spec_mut(&mut self) -> &mut super::structs::VslmCreateSpecBackingSpec { &mut self.vslm_create_spec_backing_spec_ }
}
impl VslmCreateSpecBackingSpecTrait for VslmCreateSpecRawDiskMappingBackingSpec {
fn get_vslm_create_spec_backing_spec(&self) -> &super::structs::VslmCreateSpecBackingSpec { &self.vslm_create_spec_backing_spec_ }
fn get_vslm_create_spec_backing_spec_mut(&mut self) -> &mut super::structs::VslmCreateSpecBackingSpec { &mut self.vslm_create_spec_backing_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VslmCreateSpecBackingSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VslmCreateSpecBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecBackingSpec>()?),
StructType::VslmCreateSpecDiskFileBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecDiskFileBackingSpec>()?),
StructType::VslmCreateSpecRawDiskMappingBackingSpec => Some(from.as_any_ref().downcast_ref::<VslmCreateSpecRawDiskMappingBackingSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VslmCreateSpecBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecBackingSpec>()?),
StructType::VslmCreateSpecDiskFileBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecDiskFileBackingSpec>()?),
StructType::VslmCreateSpecRawDiskMappingBackingSpec => Ok(from.as_any_box().downcast::<VslmCreateSpecRawDiskMappingBackingSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base specification of moving or copying a virtual storage object.
pub trait VslmMigrateSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the VslmMigrateSpec parent struct
fn get_vslm_migrate_spec(&self) -> &super::structs::VslmMigrateSpec;
/// Get a mutable reference to the VslmMigrateSpec parent struct
fn get_vslm_migrate_spec_mut(&mut self) -> &mut super::structs::VslmMigrateSpec;
}
impl std::ops::Deref for dyn VslmMigrateSpecTrait {
type Target = super::structs::VslmMigrateSpec;
fn deref(&self) -> &Self::Target {
self.get_vslm_migrate_spec()
}
}
impl std::ops::DerefMut for dyn VslmMigrateSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_vslm_migrate_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn VslmMigrateSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VslmMigrateSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VslmMigrateSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VslmMigrateSpec"),
__out: &mut self.out,
}))
}
}
struct VslmMigrateSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VslmMigrateSpecTrait>>,
}
impl miniserde::de::Map for VslmMigrateSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VslmMigrateSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VslmMigrateSpecTrait for VslmMigrateSpec {
fn get_vslm_migrate_spec(&self) -> &super::structs::VslmMigrateSpec { &self }
fn get_vslm_migrate_spec_mut(&mut self) -> &mut super::structs::VslmMigrateSpec { self }
}
impl VslmMigrateSpecTrait for VslmCloneSpec {
fn get_vslm_migrate_spec(&self) -> &super::structs::VslmMigrateSpec { &self.vslm_migrate_spec_ }
fn get_vslm_migrate_spec_mut(&mut self) -> &mut super::structs::VslmMigrateSpec { &mut self.vslm_migrate_spec_ }
}
impl VslmMigrateSpecTrait for VslmRelocateSpec {
fn get_vslm_migrate_spec(&self) -> &super::structs::VslmMigrateSpec { &self.vslm_migrate_spec_ }
fn get_vslm_migrate_spec_mut(&mut self) -> &mut super::structs::VslmMigrateSpec { &mut self.vslm_migrate_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VslmMigrateSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VslmMigrateSpec => Some(from.as_any_ref().downcast_ref::<VslmMigrateSpec>()?),
StructType::VslmCloneSpec => Some(from.as_any_ref().downcast_ref::<VslmCloneSpec>()?),
StructType::VslmRelocateSpec => Some(from.as_any_ref().downcast_ref::<VslmRelocateSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VslmMigrateSpec => Ok(from.as_any_box().downcast::<VslmMigrateSpec>()?),
StructType::VslmCloneSpec => Ok(from.as_any_box().downcast::<VslmCloneSpec>()?),
StructType::VslmRelocateSpec => Ok(from.as_any_box().downcast::<VslmRelocateSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// The *SelectionSpec* is the base type for data
/// object types that specify what additional objects to filter.
///
/// The base
/// type contains only an optional "name" field, which allows a selection to
/// be named for future reference. More information is available in the
/// subtype.
///
/// Named selections support recursive specifications on an object
/// hierarchy. When used by a derived object, the "name" field allows other
/// *SelectionSpec* objects to refer to the object by
/// name. When used as the base type only, the "name" field indicates
/// recursion to the derived object by name.
///
/// Names are meaningful only within the same FilterSpec.
///
/// ### How to access
/// - `PropertyFilter::spec.object_set[*].select_set?[*]`
/// - `PropertyCollector::create_filter(spec).object_set[*].select_set?[*]`
/// - `PropertyCollector::retrieve_properties(spec_set).object_set[*].select_set?[*]`
/// - `PropertyCollector::retrieve_properties_ex(spec_set).object_set[*].select_set?[*]`
pub trait SelectionSpecTrait : super::traits::DataObjectTrait {
/// Get a reference to the SelectionSpec parent struct
fn get_selection_spec(&self) -> &super::structs::SelectionSpec;
/// Get a mutable reference to the SelectionSpec parent struct
fn get_selection_spec_mut(&mut self) -> &mut super::structs::SelectionSpec;
}
impl std::ops::Deref for dyn SelectionSpecTrait {
type Target = super::structs::SelectionSpec;
fn deref(&self) -> &Self::Target {
self.get_selection_spec()
}
}
impl std::ops::DerefMut for dyn SelectionSpecTrait {
fn deref_mut(&mut self) -> &mut Self::Target {
self.get_selection_spec_mut()
}
}
impl miniserde::Deserialize for Box<dyn SelectionSpecTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn SelectionSpecTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(SelectionSpecTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("SelectionSpec"),
__out: &mut self.out,
}))
}
}
struct SelectionSpecTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn SelectionSpecTrait>>,
}
impl miniserde::de::Map for SelectionSpecTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn SelectionSpecTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl SelectionSpecTrait for SelectionSpec {
fn get_selection_spec(&self) -> &super::structs::SelectionSpec { &self }
fn get_selection_spec_mut(&mut self) -> &mut super::structs::SelectionSpec { self }
}
impl SelectionSpecTrait for TraversalSpec {
fn get_selection_spec(&self) -> &super::structs::SelectionSpec { &self.selection_spec_ }
fn get_selection_spec_mut(&mut self) -> &mut super::structs::SelectionSpec { &mut self.selection_spec_ }
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn SelectionSpecTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::SelectionSpec => Some(from.as_any_ref().downcast_ref::<SelectionSpec>()?),
StructType::TraversalSpec => Some(from.as_any_ref().downcast_ref::<TraversalSpec>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::SelectionSpec => Ok(from.as_any_box().downcast::<SelectionSpec>()?),
StructType::TraversalSpec => Ok(from.as_any_box().downcast::<TraversalSpec>()?),
_ => Err(from.as_any_box()),
}
}
}
/// Base type for all task reasons.
///
/// Task reasons represent the kind of entity responsible for a task's creation.
///
/// This structure may be used only with operations rendered under `/vslm`.
///
/// ### How to access
/// - `VslmTask::vslm_query_info().reason`
pub trait VslmTaskReasonTrait : super::traits::DataObjectTrait {
}
impl miniserde::Deserialize for Box<dyn VslmTaskReasonTrait> {
fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
Place::new(out)
}
}
impl miniserde::de::Visitor for Place<Box<dyn VslmTaskReasonTrait>> {
fn map(&mut self) -> miniserde::Result<Box<dyn miniserde::de::Map + '_>> {
Ok(Box::new(VslmTaskReasonTraitBoxBuilder {
core: super::mini_de_static::PolyCore::with_default("VslmTaskReason"),
__out: &mut self.out,
}))
}
}
struct VslmTaskReasonTraitBoxBuilder<'a> {
core: super::mini_de_static::PolyCore,
__out: &'a mut Option<Box<dyn VslmTaskReasonTrait>>,
}
impl miniserde::de::Map for VslmTaskReasonTraitBoxBuilder<'_> {
fn key(&mut self, key: &str) -> miniserde::Result<&mut dyn miniserde::de::Visitor> {
self.core.key(key, super::deserialize::lookup_type)
}
fn finish(&mut self) -> miniserde::Result<()> {
match self.core.finish(super::deserialize::lookup_type)? {
super::vim_any::VimAny::Object(obj) => {
*self.__out = Some(<dyn VslmTaskReasonTrait>::from_box(obj).map_err(|_| miniserde::Error)?);
Ok(())
}
_ => Err(miniserde::Error),
}
}
}
impl VslmTaskReasonTrait for VslmTaskReason {
}
impl VslmTaskReasonTrait for VslmTaskReasonAlarm {
}
impl VslmTaskReasonTrait for VslmTaskReasonSchedule {
}
impl VslmTaskReasonTrait for VslmTaskReasonSystem {
}
impl VslmTaskReasonTrait for VslmTaskReasonUser {
}
impl<From: VimObjectTrait + ?Sized + 'static> CastFrom<From> for dyn VslmTaskReasonTrait {
fn from_ref<'a>(from: &'a From) -> Option<&'a Self> {
let data_type = from.data_type();
match data_type {
StructType::VslmTaskReason => Some(from.as_any_ref().downcast_ref::<VslmTaskReason>()?),
StructType::VslmTaskReasonAlarm => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonAlarm>()?),
StructType::VslmTaskReasonSchedule => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonSchedule>()?),
StructType::VslmTaskReasonSystem => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonSystem>()?),
StructType::VslmTaskReasonUser => Some(from.as_any_ref().downcast_ref::<VslmTaskReasonUser>()?),
_ => None,
}
}
fn from_box(from: Box<From>) -> Result<Box<Self>, Box<dyn std::any::Any + 'static>> {
let data_type = from.data_type();
match data_type {
StructType::VslmTaskReason => Ok(from.as_any_box().downcast::<VslmTaskReason>()?),
StructType::VslmTaskReasonAlarm => Ok(from.as_any_box().downcast::<VslmTaskReasonAlarm>()?),
StructType::VslmTaskReasonSchedule => Ok(from.as_any_box().downcast::<VslmTaskReasonSchedule>()?),
StructType::VslmTaskReasonSystem => Ok(from.as_any_box().downcast::<VslmTaskReasonSystem>()?),
StructType::VslmTaskReasonUser => Ok(from.as_any_box().downcast::<VslmTaskReasonUser>()?),
_ => Err(from.as_any_box()),
}
}
}