code: 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)
  }
docs: // flattenBaseClusterDasAdmissionControlPolicy saves a
  // BaseClusterDasAdmissionControlPolicy into the supplied ResourceData.