func (in *GCPChaosSpec) DeepCopy() *GCPChaosSpec {
	if in == nil {
		return nil
	}
	out := new(GCPChaosSpec)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPChaosSpec.
package v1alpha1
import (
	"k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/runtime"
)
func (in *AWSChaos) DeepCopyInto(out *AWSChaos) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *AWSChaos) DeepCopy() *AWSChaos {
	if in == nil {
		return nil
	}
	out := new(AWSChaos)
	in.DeepCopyInto(out)
	return out
}
func (in *AWSChaos) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *AWSChaosList) DeepCopyInto(out *AWSChaosList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]AWSChaos, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *AWSChaosList) DeepCopy() *AWSChaosList {
	if in == nil {
		return nil
	}
	out := new(AWSChaosList)
	in.DeepCopyInto(out)
	return out
}
func (in *AWSChaosList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *AWSChaosSpec) DeepCopyInto(out *AWSChaosSpec) {
	*out = *in
	if in.Duration != nil {
		in, out := &in.Duration, &out.Duration
		*out = new(string)
		**out = **in
	}
	if in.SecretName != nil {
		in, out := &in.SecretName, &out.SecretName
		*out = new(string)
		**out = **in
	}
	in.AWSSelector.DeepCopyInto(&out.AWSSelector)
}
func (in *AWSChaosSpec) DeepCopy() *AWSChaosSpec {
	if in == nil {
		return nil
	}
	out := new(AWSChaosSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *AWSChaosStatus) DeepCopyInto(out *AWSChaosStatus) {
	*out = *in
	in.ChaosStatus.DeepCopyInto(&out.ChaosStatus)
}
func (in *AWSChaosStatus) DeepCopy() *AWSChaosStatus {
	if in == nil {
		return nil
	}
	out := new(AWSChaosStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *AWSSelector) DeepCopyInto(out *AWSSelector) {
	*out = *in
	if in.Endpoint != nil {
		in, out := &in.Endpoint, &out.Endpoint
		*out = new(string)
		**out = **in
	}
	if in.EbsVolume != nil {
		in, out := &in.EbsVolume, &out.EbsVolume
		*out = new(string)
		**out = **in
	}
	if in.DeviceName != nil {
		in, out := &in.DeviceName, &out.DeviceName
		*out = new(string)
		**out = **in
	}
}
func (in *AWSSelector) DeepCopy() *AWSSelector {
	if in == nil {
		return nil
	}
	out := new(AWSSelector)
	in.DeepCopyInto(out)
	return out
}
func (in *ActionParameterRules) DeepCopyInto(out *ActionParameterRules) {
	*out = *in
	if in.Flags != nil {
		in, out := &in.Flags, &out.Flags
		*out = make([]ParameterRules, len(*in))
		copy(*out, *in)
	}
	if in.Matchers != nil {
		in, out := &in.Matchers, &out.Matchers
		*out = make([]ParameterRules, len(*in))
		copy(*out, *in)
	}
}
func (in *ActionParameterRules) DeepCopy() *ActionParameterRules {
	if in == nil {
		return nil
	}
	out := new(ActionParameterRules)
	in.DeepCopyInto(out)
	return out
}
func (in *AttrOverrideSpec) DeepCopyInto(out *AttrOverrideSpec) {
	*out = *in
	if in.Ino != nil {
		in, out := &in.Ino, &out.Ino
		*out = new(uint64)
		**out = **in
	}
	if in.Size != nil {
		in, out := &in.Size, &out.Size
		*out = new(uint64)
		**out = **in
	}
	if in.Blocks != nil {
		in, out := &in.Blocks, &out.Blocks
		*out = new(uint64)
		**out = **in
	}
	if in.Atime != nil {
		in, out := &in.Atime, &out.Atime
		*out = new(Timespec)
		**out = **in
	}
	if in.Mtime != nil {
		in, out := &in.Mtime, &out.Mtime
		*out = new(Timespec)
		**out = **in
	}
	if in.Ctime != nil {
		in, out := &in.Ctime, &out.Ctime
		*out = new(Timespec)
		**out = **in
	}
	if in.Kind != nil {
		in, out := &in.Kind, &out.Kind
		*out = new(FileType)
		**out = **in
	}
	if in.Perm != nil {
		in, out := &in.Perm, &out.Perm
		*out = new(uint16)
		**out = **in
	}
	if in.Nlink != nil {
		in, out := &in.Nlink, &out.Nlink
		*out = new(uint32)
		**out = **in
	}
	if in.UID != nil {
		in, out := &in.UID, &out.UID
		*out = new(uint32)
		**out = **in
	}
	if in.GID != nil {
		in, out := &in.GID, &out.GID
		*out = new(uint32)
		**out = **in
	}
	if in.Rdev != nil {
		in, out := &in.Rdev, &out.Rdev
		*out = new(uint32)
		**out = **in
	}
}
func (in *AttrOverrideSpec) DeepCopy() *AttrOverrideSpec {
	if in == nil {
		return nil
	}
	out := new(AttrOverrideSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *BandwidthSpec) DeepCopyInto(out *BandwidthSpec) {
	*out = *in
	if in.Peakrate != nil {
		in, out := &in.Peakrate, &out.Peakrate
		*out = new(uint64)
		**out = **in
	}
	if in.Minburst != nil {
		in, out := &in.Minburst, &out.Minburst
		*out = new(uint32)
		**out = **in
	}
}
func (in *BandwidthSpec) DeepCopy() *BandwidthSpec {
	if in == nil {
		return nil
	}
	out := new(BandwidthSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *CPUStressor) DeepCopyInto(out *CPUStressor) {
	*out = *in
	out.Stressor = in.Stressor
	if in.Load != nil {
		in, out := &in.Load, &out.Load
		*out = new(int)
		**out = **in
	}
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *CPUStressor) DeepCopy() *CPUStressor {
	if in == nil {
		return nil
	}
	out := new(CPUStressor)
	in.DeepCopyInto(out)
	return out
}
func (in *ChaosCondition) DeepCopyInto(out *ChaosCondition) {
	*out = *in
}
func (in *ChaosCondition) DeepCopy() *ChaosCondition {
	if in == nil {
		return nil
	}
	out := new(ChaosCondition)
	in.DeepCopyInto(out)
	return out
}
func (in *ChaosOnlyScheduleSpec) DeepCopyInto(out *ChaosOnlyScheduleSpec) {
	*out = *in
	if in.StartingDeadlineSeconds != nil {
		in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds
		*out = new(int64)
		**out = **in
	}
	in.EmbedChaos.DeepCopyInto(&out.EmbedChaos)
}
func (in *ChaosOnlyScheduleSpec) DeepCopy() *ChaosOnlyScheduleSpec {
	if in == nil {
		return nil
	}
	out := new(ChaosOnlyScheduleSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *ChaosStatus) DeepCopyInto(out *ChaosStatus) {
	*out = *in
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]ChaosCondition, len(*in))
		copy(*out, *in)
	}
	in.Experiment.DeepCopyInto(&out.Experiment)
}
func (in *ChaosStatus) DeepCopy() *ChaosStatus {
	if in == nil {
		return nil
	}
	out := new(ChaosStatus)
	in.DeepCopyInto(out)
	return out
}
func (in ClockIds) DeepCopyInto(out *ClockIds) {
	{
		in := &in
		*out = make(ClockIds, len(*in))
		copy(*out, *in)
	}
}
func (in ClockIds) DeepCopy() ClockIds {
	if in == nil {
		return nil
	}
	out := new(ClockIds)
	in.DeepCopyInto(out)
	return *out
}
func (in *ConditionalBranch) DeepCopyInto(out *ConditionalBranch) {
	*out = *in
}
func (in *ConditionalBranch) DeepCopy() *ConditionalBranch {
	if in == nil {
		return nil
	}
	out := new(ConditionalBranch)
	in.DeepCopyInto(out)
	return out
}
func (in *ConditionalBranchStatus) DeepCopyInto(out *ConditionalBranchStatus) {
	*out = *in
}
func (in *ConditionalBranchStatus) DeepCopy() *ConditionalBranchStatus {
	if in == nil {
		return nil
	}
	out := new(ConditionalBranchStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *ConditionalBranchesStatus) DeepCopyInto(out *ConditionalBranchesStatus) {
	*out = *in
	if in.Branches != nil {
		in, out := &in.Branches, &out.Branches
		*out = make([]ConditionalBranchStatus, len(*in))
		copy(*out, *in)
	}
	if in.Context != nil {
		in, out := &in.Context, &out.Context
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *ConditionalBranchesStatus) DeepCopy() *ConditionalBranchesStatus {
	if in == nil {
		return nil
	}
	out := new(ConditionalBranchesStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *ContainerSelector) DeepCopyInto(out *ContainerSelector) {
	*out = *in
	in.PodSelector.DeepCopyInto(&out.PodSelector)
	if in.ContainerNames != nil {
		in, out := &in.ContainerNames, &out.ContainerNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *ContainerSelector) DeepCopy() *ContainerSelector {
	if in == nil {
		return nil
	}
	out := new(ContainerSelector)
	in.DeepCopyInto(out)
	return out
}
func (in *CorruptSpec) DeepCopyInto(out *CorruptSpec) {
	*out = *in
}
func (in *CorruptSpec) DeepCopy() *CorruptSpec {
	if in == nil {
		return nil
	}
	out := new(CorruptSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DNSChaos) DeepCopyInto(out *DNSChaos) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *DNSChaos) DeepCopy() *DNSChaos {
	if in == nil {
		return nil
	}
	out := new(DNSChaos)
	in.DeepCopyInto(out)
	return out
}
func (in *DNSChaos) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DNSChaosList) DeepCopyInto(out *DNSChaosList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]DNSChaos, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *DNSChaosList) DeepCopy() *DNSChaosList {
	if in == nil {
		return nil
	}
	out := new(DNSChaosList)
	in.DeepCopyInto(out)
	return out
}
func (in *DNSChaosList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DNSChaosSpec) DeepCopyInto(out *DNSChaosSpec) {
	*out = *in
	in.ContainerSelector.DeepCopyInto(&out.ContainerSelector)
	if in.Duration != nil {
		in, out := &in.Duration, &out.Duration
		*out = new(string)
		**out = **in
	}
	if in.DomainNamePatterns != nil {
		in, out := &in.DomainNamePatterns, &out.DomainNamePatterns
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *DNSChaosSpec) DeepCopy() *DNSChaosSpec {
	if in == nil {
		return nil
	}
	out := new(DNSChaosSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DNSChaosStatus) DeepCopyInto(out *DNSChaosStatus) {
	*out = *in
	in.ChaosStatus.DeepCopyInto(&out.ChaosStatus)
}
func (in *DNSChaosStatus) DeepCopy() *DNSChaosStatus {
	if in == nil {
		return nil
	}
	out := new(DNSChaosStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *DelaySpec) DeepCopyInto(out *DelaySpec) {
	*out = *in
	if in.Reorder != nil {
		in, out := &in.Reorder, &out.Reorder
		*out = new(ReorderSpec)
		**out = **in
	}
}
func (in *DelaySpec) DeepCopy() *DelaySpec {
	if in == nil {
		return nil
	}
	out := new(DelaySpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DiskFileSpec) DeepCopyInto(out *DiskFileSpec) {
	*out = *in
}
func (in *DiskFileSpec) DeepCopy() *DiskFileSpec {
	if in == nil {
		return nil
	}
	out := new(DiskFileSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DiskFillSpec) DeepCopyInto(out *DiskFillSpec) {
	*out = *in
	out.DiskFileSpec = in.DiskFileSpec
}
func (in *DiskFillSpec) DeepCopy() *DiskFillSpec {
	if in == nil {
		return nil
	}
	out := new(DiskFillSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DiskPayloadSpec) DeepCopyInto(out *DiskPayloadSpec) {
	*out = *in
	out.DiskFileSpec = in.DiskFileSpec
}
func (in *DiskPayloadSpec) DeepCopy() *DiskPayloadSpec {
	if in == nil {
		return nil
	}
	out := new(DiskPayloadSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DuplicateSpec) DeepCopyInto(out *DuplicateSpec) {
	*out = *in
}
func (in *DuplicateSpec) DeepCopy() *DuplicateSpec {
	if in == nil {
		return nil
	}
	out := new(DuplicateSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *EmbedChaos) DeepCopyInto(out *EmbedChaos) {
	*out = *in
	if in.AWSChaos != nil {
		in, out := &in.AWSChaos, &out.AWSChaos
		*out = new(AWSChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.DNSChaos != nil {
		in, out := &in.DNSChaos, &out.DNSChaos
		*out = new(DNSChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.GCPChaos != nil {
		in, out := &in.GCPChaos, &out.GCPChaos
		*out = new(GCPChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTPChaos != nil {
		in, out := &in.HTTPChaos, &out.HTTPChaos
		*out = new(HTTPChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.IOChaos != nil {
		in, out := &in.IOChaos, &out.IOChaos
		*out = new(IOChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.JVMChaos != nil {
		in, out := &in.JVMChaos, &out.JVMChaos
		*out = new(JVMChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.KernelChaos != nil {
		in, out := &in.KernelChaos, &out.KernelChaos
		*out = new(KernelChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.NetworkChaos != nil {
		in, out := &in.NetworkChaos, &out.NetworkChaos
		*out = new(NetworkChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.PhysicalMachineChaos != nil {
		in, out := &in.PhysicalMachineChaos, &out.PhysicalMachineChaos
		*out = new(PhysicalMachineChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.PodChaos != nil {
		in, out := &in.PodChaos, &out.PodChaos
		*out = new(PodChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.StressChaos != nil {
		in, out := &in.StressChaos, &out.StressChaos
		*out = new(StressChaosSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.TimeChaos != nil {
		in, out := &in.TimeChaos, &out.TimeChaos
		*out = new(TimeChaosSpec)
		(*in).DeepCopyInto(*out)
	}
}
func (in *EmbedChaos) DeepCopy() *EmbedChaos {
	if in == nil {
		return nil
	}
	out := new(EmbedChaos)
	in.DeepCopyInto(out)
	return out
}
func (in *ExpInfo) DeepCopyInto(out *ExpInfo) {
	*out = *in
	if in.StressCPU != nil {
		in, out := &in.StressCPU, &out.StressCPU
		*out = new(StressCPUSpec)
		**out = **in
	}
	if in.StressMemory != nil {
		in, out := &in.StressMemory, &out.StressMemory
		*out = new(StressMemorySpec)
		**out = **in
	}
	if in.DiskReadPayload != nil {
		in, out := &in.DiskReadPayload, &out.DiskReadPayload
		*out = new(DiskPayloadSpec)
		**out = **in
	}
	if in.DiskWritePayload != nil {
		in, out := &in.DiskWritePayload, &out.DiskWritePayload
		*out = new(DiskPayloadSpec)
		**out = **in
	}
	if in.DiskFill != nil {
		in, out := &in.DiskFill, &out.DiskFill
		*out = new(DiskFillSpec)
		**out = **in
	}
	if in.NetworkCorrupt != nil {
		in, out := &in.NetworkCorrupt, &out.NetworkCorrupt
		*out = new(NetworkCorruptSpec)
		**out = **in
	}
	if in.NetworkDuplicate != nil {
		in, out := &in.NetworkDuplicate, &out.NetworkDuplicate
		*out = new(NetworkDuplicateSpec)
		**out = **in
	}
	if in.NetworkLoss != nil {
		in, out := &in.NetworkLoss, &out.NetworkLoss
		*out = new(NetworkLossSpec)
		**out = **in
	}
	if in.NetworkDelay != nil {
		in, out := &in.NetworkDelay, &out.NetworkDelay
		*out = new(NetworkDelaySpec)
		**out = **in
	}
	if in.Process != nil {
		in, out := &in.Process, &out.Process
		*out = new(ProcessSpec)
		**out = **in
	}
	if in.JVMException != nil {
		in, out := &in.JVMException, &out.JVMException
		*out = new(JVMExceptionSpec)
		**out = **in
	}
	if in.JVMGC != nil {
		in, out := &in.JVMGC, &out.JVMGC
		*out = new(JVMGCSpec)
		**out = **in
	}
	if in.JVMLatency != nil {
		in, out := &in.JVMLatency, &out.JVMLatency
		*out = new(JVMLatencySpec)
		**out = **in
	}
	if in.JVMReturn != nil {
		in, out := &in.JVMReturn, &out.JVMReturn
		*out = new(JVMReturnSpec)
		**out = **in
	}
	if in.JVMStress != nil {
		in, out := &in.JVMStress, &out.JVMStress
		*out = new(JVMStressSpec)
		**out = **in
	}
	if in.JVMRuleData != nil {
		in, out := &in.JVMRuleData, &out.JVMRuleData
		*out = new(JVMRuleDataSpec)
		**out = **in
	}
}
func (in *ExpInfo) DeepCopy() *ExpInfo {
	if in == nil {
		return nil
	}
	out := new(ExpInfo)
	in.DeepCopyInto(out)
	return out
}
func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus) {
	*out = *in
	if in.Records != nil {
		in, out := &in.Records, &out.Records
		*out = make([]*Record, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Record)
				**out = **in
			}
		}
	}
}
func (in *ExperimentStatus) DeepCopy() *ExperimentStatus {
	if in == nil {
		return nil
	}
	out := new(ExperimentStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *FailKernRequest) DeepCopyInto(out *FailKernRequest) {
	*out = *in
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Callchain != nil {
		in, out := &in.Callchain, &out.Callchain
		*out = make([]Frame, len(*in))
		copy(*out, *in)
	}
}
func (in *FailKernRequest) DeepCopy() *FailKernRequest {
	if in == nil {
		return nil
	}
	out := new(FailKernRequest)
	in.DeepCopyInto(out)
	return out
}
func (in *Filter) DeepCopyInto(out *Filter) {
	*out = *in
	if in.Methods != nil {
		in, out := &in.Methods, &out.Methods
		*out = make([]IoMethod, len(*in))
		copy(*out, *in)
	}
}
func (in *Filter) DeepCopy() *Filter {
	if in == nil {
		return nil
	}
	out := new(Filter)
	in.DeepCopyInto(out)
	return out
}
func (in *Frame) DeepCopyInto(out *Frame) {
	*out = *in
}
func (in *Frame) DeepCopy() *Frame {
	if in == nil {
		return nil
	}
	out := new(Frame)
	in.DeepCopyInto(out)
	return out
}
func (in *GCPChaos) DeepCopyInto(out *GCPChaos) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *GCPChaos) DeepCopy() *GCPChaos {
	if in == nil {
		return nil
	}
	out := new(GCPChaos)
	in.DeepCopyInto(out)
	return out
}
func (in *GCPChaos) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *GCPChaosList) DeepCopyInto(out *GCPChaosList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]GCPChaos, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *GCPChaosList) DeepCopy() *GCPChaosList {
	if in == nil {
		return nil
	}
	out := new(GCPChaosList)
	in.DeepCopyInto(out)
	return out
}
func (in *GCPChaosList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *GCPChaosSpec) DeepCopyInto(out *GCPChaosSpec) {
	*out = *in
	if in.Duration != nil {
		in, out := &in.Duration, &out.Duration
		*out = new(string)
		**out = **in
	}
	if in.SecretName != nil {
		in, out := &in.SecretName, &out.SecretName
		*out = new(string)
		**out = **in
	}
	in.GCPSelector.DeepCopyInto(&out.GCPSelector)
}