package com.bocloud.cmp.model.horizon;

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

import java.util.List;

/**
 * VMware.Hv.ManualDesktopSpec
 * 
 * @author HP
 *
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VmwareHorizonDesktopManualDesktopSpec {

	/**
	 * User assignment scheme.
	 * 
	 */
	private VmwareHorizonDesktopUserAssignment userAssignment;
	/**
	 * The Source of machines. 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. "UNMANAGED" Non-vCenter Server virtual machines managed as view
	 * machines. These can include physical computers, non-vCenter Server virtual
	 * machines, and blade PCs. This option is only valid for Manual Desktops.
	 */
	private String source;
	/**
	 * List of machines to add to this desktop during creation. MachineIds of this
	 * type must originate from the VirtualMachine or RegisteredPhysicalMachine
	 * services, but not the Machine service.
	 */
	private List<VmwareHorizonMachineId> machines;
	/**
	 * Virtual Center server. This property need not be set. This property is
	 * required if source is set to "VIRTUAL_CENTER".
	 */
	private VmwareHorizonVirtualCenterId virtualCenter;
	/**
	 * View Storage Accelerator settings. Sets default values if unset. This
	 * property need not be set.
	 */
	private VmwareHorizonDesktopViewStorageAcceleratorSettings viewStorageAcceleratorSettings;
	/**
	 * Common settings for Desktops managed by Virtual Center sources. Since Horizon
	 * View 6.1 This property need not be set. This property is required if source
	 * is set to "VIRTUAL_CENTER".
	 */
	private VmwareHorizonDesktopVirtualCenterManagedCommonSettings virtualCenterManagedCommonSettings;
}
