package com.bocloud.cmp.model.horizon;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * VMware.Hv.AutomatedDesktopSpec
 * 
 * @author HP
 *
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VmwareHorizonDesktopAutomatedDesktopSpec {

	/**
	 * The Source or the Provisioning Type of machines. This property cannot be
	 * updated. This property will be one of: "VIRTUAL_CENTER" Virtual center
	 * virtual machines managed as view machines. This option is valid for Automated
	 * and Manual Desktop. In case of Automated Desktop, these refer to Full Virtual
	 * Machines that are created from a vCenter Server template. "VIEW_COMPOSER"
	 * View composer linked clones managed as view machines. They share the same
	 * base image and use less storage space than full virtual machines. The user
	 * profile for linked clones can be redirected to persistent disks that will be
	 * unaffected by OS updates and refreshes. This option is only valid for
	 * Automated Desktop. "INSTANT_CLONE_ENGINE" Instant clone engine created
	 * 'instant clones' managed as view machines. Instant clone engine uses vmfork
	 * technology to create the instant clones, these clones take very less time for
	 * provisioning. Instant clones have many similarities to linked clones like :-
	 * Both instant and linked clones share the same base image and use less storage
	 * space than full virtual machines. The user profile for both types clones can
	 * be redirected to persistent disks that will be unaffected by OS updates and
	 * refreshes. This option is only valid for Automated Desktop.
	 */
	private String provisioningType;
	/**
	 * Virtual Center server. For instant clone engine desktops the Virtual Center
	 * server version should be at least 6.0 or above.
	 */
	private VmwareHorizonVirtualCenterId virtualCenter;
	/**
	 * User assignment scheme.
	 * 
	 */
	private VmwareHorizonDesktopUserAssignment userAssignment;
	/**
	 * Specifies the naming scheme for the VMs in the desktop.
	 * 
	 */
//	private VmwareHorizonDesktopVirtualMachineNamingSpec vmNamingSpec;
	/**
	 * Virtual Center provisioning settings for the automated desktop.
	 * 
	 */
	private VmwareHorizonDesktopVirtualCenterProvisioningSettings virtualCenterProvisioningSettings;
	/**
	 * Common settings for Desktops managed by Virtual Center sources. Since Horizon
	 * View 6.1
	 */
	private VmwareHorizonDesktopVirtualCenterManagedCommonSettings virtualCenterManagedCommonSettings;
	/**
	 * Customization settings.
	 * 
	 */
	private VmwareHorizonDesktopCustomizationSettings customizationSettings;
}
