func (in *OSProfile) DeepCopy() *OSProfile {
	if in == nil {
		return nil
	}
	out := new(OSProfile)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSProfile.
package v1
import (
	corev1 "github.com/Azure/k8s-infra/apis/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AdditionalCapabilities) DeepCopyInto(out *AdditionalCapabilities) {
	*out = *in
	if in.UltraSSDEnabled != nil {
		in, out := &in.UltraSSDEnabled, &out.UltraSSDEnabled
		*out = new(bool)
		**out = **in
	}
}
func (in *AdditionalCapabilities) DeepCopy() *AdditionalCapabilities {
	if in == nil {
		return nil
	}
	out := new(AdditionalCapabilities)
	in.DeepCopyInto(out)
	return out
}
func (in *AutomaticOSUpgradePolicy) DeepCopyInto(out *AutomaticOSUpgradePolicy) {
	*out = *in
	if in.EnableAutomaticOSUpgrade != nil {
		in, out := &in.EnableAutomaticOSUpgrade, &out.EnableAutomaticOSUpgrade
		*out = new(bool)
		**out = **in
	}
	if in.DisableAutomaticRollback != nil {
		in, out := &in.DisableAutomaticRollback, &out.DisableAutomaticRollback
		*out = new(bool)
		**out = **in
	}
}
func (in *AutomaticOSUpgradePolicy) DeepCopy() *AutomaticOSUpgradePolicy {
	if in == nil {
		return nil
	}
	out := new(AutomaticOSUpgradePolicy)
	in.DeepCopyInto(out)
	return out
}
func (in *AutomaticRepairsPolicy) DeepCopyInto(out *AutomaticRepairsPolicy) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.GracePeriod != nil {
		in, out := &in.GracePeriod, &out.GracePeriod
		*out = new(string)
		**out = **in
	}
}
func (in *AutomaticRepairsPolicy) DeepCopy() *AutomaticRepairsPolicy {
	if in == nil {
		return nil
	}
	out := new(AutomaticRepairsPolicy)
	in.DeepCopyInto(out)
	return out
}
func (in *BillingProfile) DeepCopyInto(out *BillingProfile) {
	*out = *in
	if in.MaxPrice != nil {
		in, out := &in.MaxPrice, &out.MaxPrice
		*out = new(string)
		**out = **in
	}
}
func (in *BillingProfile) DeepCopy() *BillingProfile {
	if in == nil {
		return nil
	}
	out := new(BillingProfile)
	in.DeepCopyInto(out)
	return out
}
func (in *BootDiagnostics) DeepCopyInto(out *BootDiagnostics) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.StorageURI != nil {
		in, out := &in.StorageURI, &out.StorageURI
		*out = new(string)
		**out = **in
	}
}
func (in *BootDiagnostics) DeepCopy() *BootDiagnostics {
	if in == nil {
		return nil
	}
	out := new(BootDiagnostics)
	in.DeepCopyInto(out)
	return out
}
func (in *DataDisk) DeepCopyInto(out *DataDisk) {
	*out = *in
	if in.Lun != nil {
		in, out := &in.Lun, &out.Lun
		*out = new(int32)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Vhd != nil {
		in, out := &in.Vhd, &out.Vhd
		*out = new(VirtualHardDisk)
		(*in).DeepCopyInto(*out)
	}
	if in.Image != nil {
		in, out := &in.Image, &out.Image
		*out = new(VirtualHardDisk)
		(*in).DeepCopyInto(*out)
	}
	if in.WriteAcceleratorEnabled != nil {
		in, out := &in.WriteAcceleratorEnabled, &out.WriteAcceleratorEnabled
		*out = new(bool)
		**out = **in
	}
	if in.DiskSizeGB != nil {
		in, out := &in.DiskSizeGB, &out.DiskSizeGB
		*out = new(int32)
		**out = **in
	}
	if in.ManagedDisk != nil {
		in, out := &in.ManagedDisk, &out.ManagedDisk
		*out = new(ManagedDiskParameters)
		(*in).DeepCopyInto(*out)
	}
	if in.ToBeDetached != nil {
		in, out := &in.ToBeDetached, &out.ToBeDetached
		*out = new(bool)
		**out = **in
	}
}
func (in *DataDisk) DeepCopy() *DataDisk {
	if in == nil {
		return nil
	}
	out := new(DataDisk)
	in.DeepCopyInto(out)
	return out
}
func (in *DiagnosticsProfile) DeepCopyInto(out *DiagnosticsProfile) {
	*out = *in
	if in.BootDiagnostics != nil {
		in, out := &in.BootDiagnostics, &out.BootDiagnostics
		*out = new(BootDiagnostics)
		(*in).DeepCopyInto(*out)
	}
}
func (in *DiagnosticsProfile) DeepCopy() *DiagnosticsProfile {
	if in == nil {
		return nil
	}
	out := new(DiagnosticsProfile)
	in.DeepCopyInto(out)
	return out
}
func (in *HardwareProfile) DeepCopyInto(out *HardwareProfile) {
	*out = *in
}
func (in *HardwareProfile) DeepCopy() *HardwareProfile {
	if in == nil {
		return nil
	}
	out := new(HardwareProfile)
	in.DeepCopyInto(out)
	return out
}
func (in *ImageReference) DeepCopyInto(out *ImageReference) {
	*out = *in
	if in.Publisher != nil {
		in, out := &in.Publisher, &out.Publisher
		*out = new(string)
		**out = **in
	}
	if in.Offer != nil {
		in, out := &in.Offer, &out.Offer
		*out = new(string)
		**out = **in
	}
	if in.Sku != nil {
		in, out := &in.Sku, &out.Sku
		*out = new(string)
		**out = **in
	}
	if in.Version != nil {
		in, out := &in.Version, &out.Version
		*out = new(string)
		**out = **in
	}
	if in.ID != nil {
		in, out := &in.ID, &out.ID
		*out = new(string)
		**out = **in
	}
}
func (in *ImageReference) DeepCopy() *ImageReference {
	if in == nil {
		return nil
	}
	out := new(ImageReference)
	in.DeepCopyInto(out)
	return out
}
func (in *LinuxConfiguration) DeepCopyInto(out *LinuxConfiguration) {
	*out = *in
	if in.DisablePasswordAuthentication != nil {
		in, out := &in.DisablePasswordAuthentication, &out.DisablePasswordAuthentication
		*out = new(bool)
		**out = **in
	}
	if in.SSH != nil {
		in, out := &in.SSH, &out.SSH
		*out = new(SSHConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.ProvisionVMAgent != nil {
		in, out := &in.ProvisionVMAgent, &out.ProvisionVMAgent
		*out = new(bool)
		**out = **in
	}
}
func (in *LinuxConfiguration) DeepCopy() *LinuxConfiguration {
	if in == nil {
		return nil
	}
	out := new(LinuxConfiguration)
	in.DeepCopyInto(out)
	return out
}
func (in *ManagedDiskParameters) DeepCopyInto(out *ManagedDiskParameters) {
	*out = *in
	if in.StorageAccountType != nil {
		in, out := &in.StorageAccountType, &out.StorageAccountType
		*out = new(string)
		**out = **in
	}
	if in.ID != nil {
		in, out := &in.ID, &out.ID
		*out = new(string)
		**out = **in
	}
}
func (in *ManagedDiskParameters) DeepCopy() *ManagedDiskParameters {
	if in == nil {
		return nil
	}
	out := new(ManagedDiskParameters)
	in.DeepCopyInto(out)
	return out
}
func (in *NetworkInterfaceReference) DeepCopyInto(out *NetworkInterfaceReference) {
	*out = *in
	if in.NetworkInterfaceReferenceProperties != nil {
		in, out := &in.NetworkInterfaceReferenceProperties, &out.NetworkInterfaceReferenceProperties
		*out = new(NetworkInterfaceReferenceProperties)
		(*in).DeepCopyInto(*out)
	}
	out.KnownTypeReference = in.KnownTypeReference
}
func (in *NetworkInterfaceReference) DeepCopy() *NetworkInterfaceReference {
	if in == nil {
		return nil
	}
	out := new(NetworkInterfaceReference)
	in.DeepCopyInto(out)
	return out
}
func (in *NetworkInterfaceReferenceProperties) DeepCopyInto(out *NetworkInterfaceReferenceProperties) {
	*out = *in
	if in.Primary != nil {
		in, out := &in.Primary, &out.Primary
		*out = new(bool)
		**out = **in
	}
}
func (in *NetworkInterfaceReferenceProperties) DeepCopy() *NetworkInterfaceReferenceProperties {
	if in == nil {
		return nil
	}
	out := new(NetworkInterfaceReferenceProperties)
	in.DeepCopyInto(out)
	return out
}
func (in *NetworkProfile) DeepCopyInto(out *NetworkProfile) {
	*out = *in
	if in.NetworkInterfaceRefs != nil {
		in, out := &in.NetworkInterfaceRefs, &out.NetworkInterfaceRefs
		*out = new([]NetworkInterfaceReference)
		if **in != nil {
			in, out := *in, *out
			*out = make([]NetworkInterfaceReference, len(*in))
			for i := range *in {
				(*in)[i].DeepCopyInto(&(*out)[i])
			}
		}
	}
}
func (in *NetworkProfile) DeepCopy() *NetworkProfile {
	if in == nil {
		return nil
	}
	out := new(NetworkProfile)
	in.DeepCopyInto(out)
	return out
}
func (in *OSDisk) DeepCopyInto(out *OSDisk) {
	*out = *in
	if in.OsType != nil {
		in, out := &in.OsType, &out.OsType
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Vhd != nil {
		in, out := &in.Vhd, &out.Vhd
		*out = new(VirtualHardDisk)
		(*in).DeepCopyInto(*out)
	}
	if in.Image != nil {
		in, out := &in.Image, &out.Image
		*out = new(VirtualHardDisk)
		(*in).DeepCopyInto(*out)
	}
	if in.WriteAcceleratorEnabled != nil {
		in, out := &in.WriteAcceleratorEnabled, &out.WriteAcceleratorEnabled
		*out = new(bool)
		**out = **in
	}
	if in.DiskSizeGB != nil {
		in, out := &in.DiskSizeGB, &out.DiskSizeGB
		*out = new(int32)
		**out = **in
	}
	if in.ManagedDisk != nil {
		in, out := &in.ManagedDisk, &out.ManagedDisk
		*out = new(ManagedDiskParameters)
		(*in).DeepCopyInto(*out)
	}
}
func (in *OSDisk) DeepCopy() *OSDisk {
	if in == nil {
		return nil
	}
	out := new(OSDisk)
	in.DeepCopyInto(out)
	return out
}
func (in *OSProfile) DeepCopyInto(out *OSProfile) {
	*out = *in
	if in.ComputerName != nil {
		in, out := &in.ComputerName, &out.ComputerName
		*out = new(string)
		**out = **in
	}
	if in.AdminUsername != nil {
		in, out := &in.AdminUsername, &out.AdminUsername
		*out = new(string)
		**out = **in
	}
	if in.AdminPassword != nil {
		in, out := &in.AdminPassword, &out.AdminPassword
		*out = new(string)
		**out = **in
	}
	if in.CustomData != nil {
		in, out := &in.CustomData, &out.CustomData
		*out = new(string)
		**out = **in
	}
	if in.LinuxConfiguration != nil {
		in, out := &in.LinuxConfiguration, &out.LinuxConfiguration
		*out = new(LinuxConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.AllowExtensionOperations != nil {
		in, out := &in.AllowExtensionOperations, &out.AllowExtensionOperations
		*out = new(bool)
		**out = **in
	}
	if in.RequireGuestProvisionSignal != nil {
		in, out := &in.RequireGuestProvisionSignal, &out.RequireGuestProvisionSignal
		*out = new(bool)
		**out = **in
	}
}