func expandClusterVMComponentProtectionSettings(d *schema.ResourceData) *types.ClusterVmComponentProtectionSettings {
	obj := &types.ClusterVmComponentProtectionSettings{
		VmReactionOnAPDCleared:    d.Get("ha_datastore_apd_recovery_action").(string),
		VmStorageProtectionForAPD: d.Get("ha_datastore_apd_response").(string),
		VmStorageProtectionForPDL: d.Get("ha_datastore_pdl_response").(string),
		VmTerminateDelayForAPDSec: int32(d.Get("ha_datastore_apd_response_delay").(int)),
	}

	if d.Get("ha_datastore_apd_response").(string) != string(types.ClusterVmComponentProtectionSettingsStorageVmReactionDisabled) {
		// Flag EnableAPDTimeoutForHosts to ensure that APD is enabled for all
		// hosts in the cluster and our other settings here will be effective. Note
		// that this setting is not persisted to state or the vSphere backend and
		// is actually a host operation, not a cluster operation. It's here to
		// ensure that the settings specified here are otherwise effective. We may
		// need to revisit this if we introduce more robust host management
		// capabilities in the provider.
		obj.EnableAPDTimeoutForHosts = structure.BoolPtr(true)
	}

	return obj
}
func expandClusterVMComponentProtectionSettings(d *schema.ResourceData) *types.ClusterVmComponentProtectionSettings {
	obj := &types.ClusterVmComponentProtectionSettings{
		VmReactionOnAPDCleared:    d.Get("ha_datastore_apd_recovery_action").(string),
		VmStorageProtectionForAPD: d.Get("ha_datastore_apd_response").(string),
		VmStorageProtectionForPDL: d.Get("ha_datastore_pdl_response").(string),
		VmTerminateDelayForAPDSec: int32(d.Get("ha_datastore_apd_response_delay").(int)),
	}

	if d.Get("ha_datastore_apd_response").(string) != string(types.ClusterVmComponentProtectionSettingsStorageVmReactionDisabled) {
		
		
		
		
		
		
		
		obj.EnableAPDTimeoutForHosts = structure.BoolPtr(true)
	}

	return obj
}
func expandClusterVMComponentProtectionSettings ( d * schema . ResourceData ) * types . ClusterVmComponentProtectionSettings { obj := & types . ClusterVmComponentProtectionSettings { VmReactionOnAPDCleared : d . Get ( " " ) . ( string ) , VmStorageProtectionForAPD : d . Get ( " " ) . ( string ) , VmStorageProtectionForPDL : d . Get ( " " ) . ( string ) , VmTerminateDelayForAPDSec : int32 ( d . Get ( " " ) . ( int ) ) , } if d . Get ( " " ) . ( string ) != string ( types . ClusterVmComponentProtectionSettingsStorageVmReactionDisabled ) { // Flag EnableAPDTimeoutForHosts to ensure that APD is enabled for all // hosts in the cluster and our other settings here will be effective. Note // that this setting is not persisted to state or the vSphere backend and // is actually a host operation, not a cluster operation. It's here to // ensure that the settings specified here are otherwise effective. We may // need to revisit this if we introduce more robust host management // capabilities in the provider. obj . EnableAPDTimeoutForHosts = structure . BoolPtr ( true ) } return obj }
// expandClusterVMComponentProtectionSettings reads certain ResourceData keys and returns a
// ClusterVmComponentProtectionSettings.
expandClusterVMComponentProtectionSettings reads certain ResourceData keys and returns a ClusterVmComponentProtectionSettings .