func (in *OperationMetric) DeepCopyInto(out *OperationMetric) {
	*out = *in
	in.Start.DeepCopyInto(&out.Start)
	in.End.DeepCopyInto(&out.End)
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha1
import (
	"k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"
)
func (in *BIOS) DeepCopyInto(out *BIOS) {
	*out = *in
}
func (in *BIOS) DeepCopy() *BIOS {
	if in == nil {
		return nil
	}
	out := new(BIOS)
	in.DeepCopyInto(out)
	return out
}
func (in *BMCDetails) DeepCopyInto(out *BMCDetails) {
	*out = *in
}
func (in *BMCDetails) DeepCopy() *BMCDetails {
	if in == nil {
		return nil
	}
	out := new(BMCDetails)
	in.DeepCopyInto(out)
	return out
}
func (in *BareMetalHost) DeepCopyInto(out *BareMetalHost) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *BareMetalHost) DeepCopy() *BareMetalHost {
	if in == nil {
		return nil
	}
	out := new(BareMetalHost)
	in.DeepCopyInto(out)
	return out
}
func (in *BareMetalHost) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BareMetalHostList) DeepCopyInto(out *BareMetalHostList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]BareMetalHost, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *BareMetalHostList) DeepCopy() *BareMetalHostList {
	if in == nil {
		return nil
	}
	out := new(BareMetalHostList)
	in.DeepCopyInto(out)
	return out
}
func (in *BareMetalHostList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BareMetalHostSpec) DeepCopyInto(out *BareMetalHostSpec) {
	*out = *in
	if in.Taints != nil {
		in, out := &in.Taints, &out.Taints
		*out = make([]v1.Taint, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	out.BMC = in.BMC
	if in.RAID != nil {
		in, out := &in.RAID, &out.RAID
		*out = new(RAIDConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Firmware != nil {
		in, out := &in.Firmware, &out.Firmware
		*out = new(FirmwareConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.RootDeviceHints != nil {
		in, out := &in.RootDeviceHints, &out.RootDeviceHints
		*out = new(RootDeviceHints)
		(*in).DeepCopyInto(*out)
	}
	if in.ConsumerRef != nil {
		in, out := &in.ConsumerRef, &out.ConsumerRef
		*out = new(v1.ObjectReference)
		**out = **in
	}
	if in.Image != nil {
		in, out := &in.Image, &out.Image
		*out = new(Image)
		(*in).DeepCopyInto(*out)
	}
	if in.UserData != nil {
		in, out := &in.UserData, &out.UserData
		*out = new(v1.SecretReference)
		**out = **in
	}
	if in.NetworkData != nil {
		in, out := &in.NetworkData, &out.NetworkData
		*out = new(v1.SecretReference)
		**out = **in
	}
	if in.MetaData != nil {
		in, out := &in.MetaData, &out.MetaData
		*out = new(v1.SecretReference)
		**out = **in
	}
	if in.CustomDeploy != nil {
		in, out := &in.CustomDeploy, &out.CustomDeploy
		*out = new(CustomDeploy)
		**out = **in
	}
}
func (in *BareMetalHostSpec) DeepCopy() *BareMetalHostSpec {
	if in == nil {
		return nil
	}
	out := new(BareMetalHostSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *BareMetalHostStatus) DeepCopyInto(out *BareMetalHostStatus) {
	*out = *in
	if in.LastUpdated != nil {
		in, out := &in.LastUpdated, &out.LastUpdated
		*out = (*in).DeepCopy()
	}
	if in.HardwareDetails != nil {
		in, out := &in.HardwareDetails, &out.HardwareDetails
		*out = new(HardwareDetails)
		(*in).DeepCopyInto(*out)
	}
	in.Provisioning.DeepCopyInto(&out.Provisioning)
	in.GoodCredentials.DeepCopyInto(&out.GoodCredentials)
	in.TriedCredentials.DeepCopyInto(&out.TriedCredentials)
	in.OperationHistory.DeepCopyInto(&out.OperationHistory)
}
func (in *BareMetalHostStatus) DeepCopy() *BareMetalHostStatus {
	if in == nil {
		return nil
	}
	out := new(BareMetalHostStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *CPU) DeepCopyInto(out *CPU) {
	*out = *in
	if in.Flags != nil {
		in, out := &in.Flags, &out.Flags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *CPU) DeepCopy() *CPU {
	if in == nil {
		return nil
	}
	out := new(CPU)
	in.DeepCopyInto(out)
	return out
}
func (in *CredentialsStatus) DeepCopyInto(out *CredentialsStatus) {
	*out = *in
	if in.Reference != nil {
		in, out := &in.Reference, &out.Reference
		*out = new(v1.SecretReference)
		**out = **in
	}
}
func (in *CredentialsStatus) DeepCopy() *CredentialsStatus {
	if in == nil {
		return nil
	}
	out := new(CredentialsStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *CustomDeploy) DeepCopyInto(out *CustomDeploy) {
	*out = *in
}
func (in *CustomDeploy) DeepCopy() *CustomDeploy {
	if in == nil {
		return nil
	}
	out := new(CustomDeploy)
	in.DeepCopyInto(out)
	return out
}
func (in DesiredSettingsMap) DeepCopyInto(out *DesiredSettingsMap) {
	{
		in := &in
		*out = make(DesiredSettingsMap, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}
func (in DesiredSettingsMap) DeepCopy() DesiredSettingsMap {
	if in == nil {
		return nil
	}
	out := new(DesiredSettingsMap)
	in.DeepCopyInto(out)
	return *out
}
func (in *Firmware) DeepCopyInto(out *Firmware) {
	*out = *in
	out.BIOS = in.BIOS
}
func (in *Firmware) DeepCopy() *Firmware {
	if in == nil {
		return nil
	}
	out := new(Firmware)
	in.DeepCopyInto(out)
	return out
}
func (in *FirmwareConfig) DeepCopyInto(out *FirmwareConfig) {
	*out = *in
	if in.VirtualizationEnabled != nil {
		in, out := &in.VirtualizationEnabled, &out.VirtualizationEnabled
		*out = new(bool)
		**out = **in
	}
	if in.SimultaneousMultithreadingEnabled != nil {
		in, out := &in.SimultaneousMultithreadingEnabled, &out.SimultaneousMultithreadingEnabled
		*out = new(bool)
		**out = **in
	}
	if in.SriovEnabled != nil {
		in, out := &in.SriovEnabled, &out.SriovEnabled
		*out = new(bool)
		**out = **in
	}
}
func (in *FirmwareConfig) DeepCopy() *FirmwareConfig {
	if in == nil {
		return nil
	}
	out := new(FirmwareConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *FirmwareSchema) DeepCopyInto(out *FirmwareSchema) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}
func (in *FirmwareSchema) DeepCopy() *FirmwareSchema {
	if in == nil {
		return nil
	}
	out := new(FirmwareSchema)
	in.DeepCopyInto(out)
	return out
}
func (in *FirmwareSchema) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *FirmwareSchemaList) DeepCopyInto(out *FirmwareSchemaList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]FirmwareSchema, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *FirmwareSchemaList) DeepCopy() *FirmwareSchemaList {
	if in == nil {
		return nil
	}
	out := new(FirmwareSchemaList)
	in.DeepCopyInto(out)
	return out
}
func (in *FirmwareSchemaList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *FirmwareSchemaSpec) DeepCopyInto(out *FirmwareSchemaSpec) {
	*out = *in
	if in.Schema != nil {
		in, out := &in.Schema, &out.Schema
		*out = make(map[string]SettingSchema, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
}
func (in *FirmwareSchemaSpec) DeepCopy() *FirmwareSchemaSpec {
	if in == nil {
		return nil
	}
	out := new(FirmwareSchemaSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *HardwareDetails) DeepCopyInto(out *HardwareDetails) {
	*out = *in
	out.SystemVendor = in.SystemVendor
	out.Firmware = in.Firmware
	if in.NIC != nil {
		in, out := &in.NIC, &out.NIC
		*out = make([]NIC, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Storage != nil {
		in, out := &in.Storage, &out.Storage
		*out = make([]Storage, len(*in))
		copy(*out, *in)
	}
	in.CPU.DeepCopyInto(&out.CPU)
}
func (in *HardwareDetails) DeepCopy() *HardwareDetails {
	if in == nil {
		return nil
	}
	out := new(HardwareDetails)
	in.DeepCopyInto(out)
	return out
}
func (in *HardwareRAIDVolume) DeepCopyInto(out *HardwareRAIDVolume) {
	*out = *in
	if in.SizeGibibytes != nil {
		in, out := &in.SizeGibibytes, &out.SizeGibibytes
		*out = new(int)
		**out = **in
	}
	if in.Rotational != nil {
		in, out := &in.Rotational, &out.Rotational
		*out = new(bool)
		**out = **in
	}
	if in.NumberOfPhysicalDisks != nil {
		in, out := &in.NumberOfPhysicalDisks, &out.NumberOfPhysicalDisks
		*out = new(int)
		**out = **in
	}
}
func (in *HardwareRAIDVolume) DeepCopy() *HardwareRAIDVolume {
	if in == nil {
		return nil
	}
	out := new(HardwareRAIDVolume)
	in.DeepCopyInto(out)
	return out
}
func (in *HardwareSystemVendor) DeepCopyInto(out *HardwareSystemVendor) {
	*out = *in
}
func (in *HardwareSystemVendor) DeepCopy() *HardwareSystemVendor {
	if in == nil {
		return nil
	}
	out := new(HardwareSystemVendor)
	in.DeepCopyInto(out)
	return out
}
func (in *HostFirmwareSettings) DeepCopyInto(out *HostFirmwareSettings) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *HostFirmwareSettings) DeepCopy() *HostFirmwareSettings {
	if in == nil {
		return nil
	}
	out := new(HostFirmwareSettings)
	in.DeepCopyInto(out)
	return out
}
func (in *HostFirmwareSettings) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *HostFirmwareSettingsList) DeepCopyInto(out *HostFirmwareSettingsList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]HostFirmwareSettings, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *HostFirmwareSettingsList) DeepCopy() *HostFirmwareSettingsList {
	if in == nil {
		return nil
	}
	out := new(HostFirmwareSettingsList)
	in.DeepCopyInto(out)
	return out
}
func (in *HostFirmwareSettingsList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *HostFirmwareSettingsSpec) DeepCopyInto(out *HostFirmwareSettingsSpec) {
	*out = *in
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = make(DesiredSettingsMap, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}
func (in *HostFirmwareSettingsSpec) DeepCopy() *HostFirmwareSettingsSpec {
	if in == nil {
		return nil
	}
	out := new(HostFirmwareSettingsSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *HostFirmwareSettingsStatus) DeepCopyInto(out *HostFirmwareSettingsStatus) {
	*out = *in
	if in.FirmwareSchema != nil {
		in, out := &in.FirmwareSchema, &out.FirmwareSchema
		*out = new(SchemaReference)
		**out = **in
	}
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = make(SettingsMap, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]metav1.Condition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *HostFirmwareSettingsStatus) DeepCopy() *HostFirmwareSettingsStatus {
	if in == nil {
		return nil
	}
	out := new(HostFirmwareSettingsStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *Image) DeepCopyInto(out *Image) {
	*out = *in
	if in.DiskFormat != nil {
		in, out := &in.DiskFormat, &out.DiskFormat
		*out = new(string)
		**out = **in
	}
}
func (in *Image) DeepCopy() *Image {
	if in == nil {
		return nil
	}
	out := new(Image)
	in.DeepCopyInto(out)
	return out
}
func (in *NIC) DeepCopyInto(out *NIC) {
	*out = *in
	if in.VLANs != nil {
		in, out := &in.VLANs, &out.VLANs
		*out = make([]VLAN, len(*in))
		copy(*out, *in)
	}
}
func (in *NIC) DeepCopy() *NIC {
	if in == nil {
		return nil
	}
	out := new(NIC)
	in.DeepCopyInto(out)
	return out
}
func (in *OperationHistory) DeepCopyInto(out *OperationHistory) {
	*out = *in
	in.Register.DeepCopyInto(&out.Register)
	in.Inspect.DeepCopyInto(&out.Inspect)
	in.Provision.DeepCopyInto(&out.Provision)
	in.Deprovision.DeepCopyInto(&out.Deprovision)
}
func (in *OperationHistory) DeepCopy() *OperationHistory {
	if in == nil {
		return nil
	}
	out := new(OperationHistory)
	in.DeepCopyInto(out)
	return out
}