//go:build !ignore_autogenerated
// +build !ignore_autogenerated

// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by controller-gen. DO NOT EDIT.

package v1beta1

import (
	"k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/runtime"
	"sigs.k8s.io/cluster-api/errors"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BootOptions) DeepCopyInto(out *BootOptions) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootOptions.
func (in *BootOptions) DeepCopy() *BootOptions {
	if in == nil {
		return nil
	}
	out := new(BootOptions)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HardwareAffinity) DeepCopyInto(out *HardwareAffinity) {
	*out = *in
	if in.Required != nil {
		in, out := &in.Required, &out.Required
		*out = make([]HardwareAffinityTerm, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Preferred != nil {
		in, out := &in.Preferred, &out.Preferred
		*out = make([]WeightedHardwareAffinityTerm, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareAffinity.
func (in *HardwareAffinity) DeepCopy() *HardwareAffinity {
	if in == nil {
		return nil
	}
	out := new(HardwareAffinity)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HardwareAffinityTerm) DeepCopyInto(out *HardwareAffinityTerm) {
	*out = *in
	in.LabelSelector.DeepCopyInto(&out.LabelSelector)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareAffinityTerm.
func (in *HardwareAffinityTerm) DeepCopy() *HardwareAffinityTerm {
	if in == nil {
		return nil
	}
	out := new(HardwareAffinityTerm)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellCluster) DeepCopyInto(out *TinkerbellCluster) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	out.Spec = in.Spec
	out.Status = in.Status
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellCluster.
func (in *TinkerbellCluster) DeepCopy() *TinkerbellCluster {
	if in == nil {
		return nil
	}
	out := new(TinkerbellCluster)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellCluster) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellClusterList) DeepCopyInto(out *TinkerbellClusterList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]TinkerbellCluster, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellClusterList.
func (in *TinkerbellClusterList) DeepCopy() *TinkerbellClusterList {
	if in == nil {
		return nil
	}
	out := new(TinkerbellClusterList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellClusterList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellClusterSpec) DeepCopyInto(out *TinkerbellClusterSpec) {
	*out = *in
	out.ControlPlaneEndpoint = in.ControlPlaneEndpoint
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellClusterSpec.
func (in *TinkerbellClusterSpec) DeepCopy() *TinkerbellClusterSpec {
	if in == nil {
		return nil
	}
	out := new(TinkerbellClusterSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellClusterStatus) DeepCopyInto(out *TinkerbellClusterStatus) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellClusterStatus.
func (in *TinkerbellClusterStatus) DeepCopy() *TinkerbellClusterStatus {
	if in == nil {
		return nil
	}
	out := new(TinkerbellClusterStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachine) DeepCopyInto(out *TinkerbellMachine) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachine.
func (in *TinkerbellMachine) DeepCopy() *TinkerbellMachine {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachine)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellMachine) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineList) DeepCopyInto(out *TinkerbellMachineList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]TinkerbellMachine, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineList.
func (in *TinkerbellMachineList) DeepCopy() *TinkerbellMachineList {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellMachineList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineSpec) DeepCopyInto(out *TinkerbellMachineSpec) {
	*out = *in
	if in.HardwareAffinity != nil {
		in, out := &in.HardwareAffinity, &out.HardwareAffinity
		*out = new(HardwareAffinity)
		(*in).DeepCopyInto(*out)
	}
	out.BootOptions = in.BootOptions
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineSpec.
func (in *TinkerbellMachineSpec) DeepCopy() *TinkerbellMachineSpec {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineStatus) DeepCopyInto(out *TinkerbellMachineStatus) {
	*out = *in
	if in.Addresses != nil {
		in, out := &in.Addresses, &out.Addresses
		*out = make([]v1.NodeAddress, len(*in))
		copy(*out, *in)
	}
	if in.InstanceStatus != nil {
		in, out := &in.InstanceStatus, &out.InstanceStatus
		*out = new(TinkerbellResourceStatus)
		**out = **in
	}
	if in.ErrorReason != nil {
		in, out := &in.ErrorReason, &out.ErrorReason
		*out = new(errors.MachineStatusError)
		**out = **in
	}
	if in.ErrorMessage != nil {
		in, out := &in.ErrorMessage, &out.ErrorMessage
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineStatus.
func (in *TinkerbellMachineStatus) DeepCopy() *TinkerbellMachineStatus {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineTemplate) DeepCopyInto(out *TinkerbellMachineTemplate) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineTemplate.
func (in *TinkerbellMachineTemplate) DeepCopy() *TinkerbellMachineTemplate {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineTemplate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellMachineTemplate) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineTemplateList) DeepCopyInto(out *TinkerbellMachineTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]TinkerbellMachineTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineTemplateList.
func (in *TinkerbellMachineTemplateList) DeepCopy() *TinkerbellMachineTemplateList {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineTemplateList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TinkerbellMachineTemplateList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineTemplateResource) DeepCopyInto(out *TinkerbellMachineTemplateResource) {
	*out = *in
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineTemplateResource.
func (in *TinkerbellMachineTemplateResource) DeepCopy() *TinkerbellMachineTemplateResource {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineTemplateResource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TinkerbellMachineTemplateSpec) DeepCopyInto(out *TinkerbellMachineTemplateSpec) {
	*out = *in
	in.Template.DeepCopyInto(&out.Template)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TinkerbellMachineTemplateSpec.
func (in *TinkerbellMachineTemplateSpec) DeepCopy() *TinkerbellMachineTemplateSpec {
	if in == nil {
		return nil
	}
	out := new(TinkerbellMachineTemplateSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WeightedHardwareAffinityTerm) DeepCopyInto(out *WeightedHardwareAffinityTerm) {
	*out = *in
	in.HardwareAffinityTerm.DeepCopyInto(&out.HardwareAffinityTerm)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedHardwareAffinityTerm.
func (in *WeightedHardwareAffinityTerm) DeepCopy() *WeightedHardwareAffinityTerm {
	if in == nil {
		return nil
	}
	out := new(WeightedHardwareAffinityTerm)
	in.DeepCopyInto(out)
	return out
}
