func flattenBaseClusterDasAdmissionControlPolicy(
	d *schema.ResourceData,
	obj types.BaseClusterDasAdmissionControlPolicy,
	version viapi.VSphereVersion,
) error {
	var policy string

	switch t := obj.(type) {
	case *types.ClusterFailoverResourcesAdmissionControlPolicy:
		if err := flattenClusterFailoverResourcesAdmissionControlPolicy(d, t, version); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeResourcePercentage
	case *types.ClusterFailoverLevelAdmissionControlPolicy:
		if err := flattenClusterFailoverLevelAdmissionControlPolicy(d, t); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeSlotPolicy
	case *types.ClusterFailoverHostAdmissionControlPolicy:
		if err := flattenClusterFailoverHostAdmissionControlPolicy(d, t, version); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeFailoverHosts
	default:
		policy = clusterAdmissionControlTypeDisabled
	}

	return d.Set("ha_admission_control_policy", policy)
}
func flattenBaseClusterDasAdmissionControlPolicy(
	d *schema.ResourceData,
	obj types.BaseClusterDasAdmissionControlPolicy,
	version viapi.VSphereVersion,
) error {
	var policy string

	switch t := obj.(type) {
	case *types.ClusterFailoverResourcesAdmissionControlPolicy:
		if err := flattenClusterFailoverResourcesAdmissionControlPolicy(d, t, version); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeResourcePercentage
	case *types.ClusterFailoverLevelAdmissionControlPolicy:
		if err := flattenClusterFailoverLevelAdmissionControlPolicy(d, t); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeSlotPolicy
	case *types.ClusterFailoverHostAdmissionControlPolicy:
		if err := flattenClusterFailoverHostAdmissionControlPolicy(d, t, version); err != nil {
			return err
		}
		policy = clusterAdmissionControlTypeFailoverHosts
	default:
		policy = clusterAdmissionControlTypeDisabled
	}

	return d.Set("ha_admission_control_policy", policy)
}
func flattenBaseClusterDasAdmissionControlPolicy ( d * schema . ResourceData , obj types . BaseClusterDasAdmissionControlPolicy , version viapi . VSphereVersion , ) error { var policy string switch t := obj . ( type ) { case * types . ClusterFailoverResourcesAdmissionControlPolicy : if err := flattenClusterFailoverResourcesAdmissionControlPolicy ( d , t , version ) ; err != nil { return err } policy = clusterAdmissionControlTypeResourcePercentage case * types . ClusterFailoverLevelAdmissionControlPolicy : if err := flattenClusterFailoverLevelAdmissionControlPolicy ( d , t ) ; err != nil { return err } policy = clusterAdmissionControlTypeSlotPolicy case * types . ClusterFailoverHostAdmissionControlPolicy : if err := flattenClusterFailoverHostAdmissionControlPolicy ( d , t , version ) ; err != nil { return err } policy = clusterAdmissionControlTypeFailoverHosts default : policy = clusterAdmissionControlTypeDisabled } return d . Set ( " " , policy ) }
// flattenBaseClusterDasAdmissionControlPolicy saves a
// BaseClusterDasAdmissionControlPolicy into the supplied ResourceData.
flattenBaseClusterDasAdmissionControlPolicy saves a BaseClusterDasAdmissionControlPolicy into the supplied ResourceData .