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

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

package v1alpha1

import (
	json "encoding/json"

	v1 "k8s.io/api/core/v1"
	policyv1 "k8s.io/api/policy/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArchiveStrategy) DeepCopyInto(out *ArchiveStrategy) {
	*out = *in
	if in.Tar != nil {
		in, out := &in.Tar, &out.Tar
		*out = new(TarStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.None != nil {
		in, out := &in.None, &out.None
		*out = new(NoneStrategy)
		**out = **in
	}
	if in.Zip != nil {
		in, out := &in.Zip, &out.Zip
		*out = new(ZipStrategy)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Arguments) DeepCopyInto(out *Arguments) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make([]Parameter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Artifacts != nil {
		in, out := &in.Artifacts, &out.Artifacts
		*out = make(Artifacts, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtGCStatus) DeepCopyInto(out *ArtGCStatus) {
	*out = *in
	if in.StrategiesProcessed != nil {
		in, out := &in.StrategiesProcessed, &out.StrategiesProcessed
		*out = make(map[ArtifactGCStrategy]bool, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.PodsRecouped != nil {
		in, out := &in.PodsRecouped, &out.PodsRecouped
		*out = make(map[string]bool, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Artifact) DeepCopyInto(out *Artifact) {
	*out = *in
	if in.Mode != nil {
		in, out := &in.Mode, &out.Mode
		*out = new(int32)
		**out = **in
	}
	in.ArtifactLocation.DeepCopyInto(&out.ArtifactLocation)
	if in.Archive != nil {
		in, out := &in.Archive, &out.Archive
		*out = new(ArchiveStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.ArtifactGC != nil {
		in, out := &in.ArtifactGC, &out.ArtifactGC
		*out = new(ArtifactGC)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactGCSpec) DeepCopyInto(out *ArtifactGCSpec) {
	*out = *in
	if in.ArtifactsByNode != nil {
		in, out := &in.ArtifactsByNode, &out.ArtifactsByNode
		*out = make(map[string]ArtifactNodeSpec, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactGCStatus) DeepCopyInto(out *ArtifactGCStatus) {
	*out = *in
	if in.ArtifactResultsByNode != nil {
		in, out := &in.ArtifactResultsByNode, &out.ArtifactResultsByNode
		*out = make(map[string]ArtifactResultNodeStatus, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactLocation) DeepCopyInto(out *ArtifactLocation) {
	*out = *in
	if in.ArchiveLogs != nil {
		in, out := &in.ArchiveLogs, &out.ArchiveLogs
		*out = new(bool)
		**out = **in
	}
	if in.S3 != nil {
		in, out := &in.S3, &out.S3
		*out = new(S3Artifact)
		(*in).DeepCopyInto(*out)
	}
	if in.Git != nil {
		in, out := &in.Git, &out.Git
		*out = new(GitArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP != nil {
		in, out := &in.HTTP, &out.HTTP
		*out = new(HTTPArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.Artifactory != nil {
		in, out := &in.Artifactory, &out.Artifactory
		*out = new(ArtifactoryArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.HDFS != nil {
		in, out := &in.HDFS, &out.HDFS
		*out = new(HDFSArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.Raw != nil {
		in, out := &in.Raw, &out.Raw
		*out = new(RawArtifact)
		**out = **in
	}
	if in.OSS != nil {
		in, out := &in.OSS, &out.OSS
		*out = new(OSSArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.GCS != nil {
		in, out := &in.GCS, &out.GCS
		*out = new(GCSArtifact)
		(*in).DeepCopyInto(*out)
	}
	if in.Azure != nil {
		in, out := &in.Azure, &out.Azure
		*out = new(AzureArtifact)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactNodeSpec) DeepCopyInto(out *ArtifactNodeSpec) {
	*out = *in
	if in.ArchiveLocation != nil {
		in, out := &in.ArchiveLocation, &out.ArchiveLocation
		*out = new(ArtifactLocation)
		(*in).DeepCopyInto(*out)
	}
	if in.Artifacts != nil {
		in, out := &in.Artifacts, &out.Artifacts
		*out = make(map[string]Artifact, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactRepository) DeepCopyInto(out *ArtifactRepository) {
	*out = *in
	if in.ArchiveLogs != nil {
		in, out := &in.ArchiveLogs, &out.ArchiveLogs
		*out = new(bool)
		**out = **in
	}
	if in.S3 != nil {
		in, out := &in.S3, &out.S3
		*out = new(S3ArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	if in.Artifactory != nil {
		in, out := &in.Artifactory, &out.Artifactory
		*out = new(ArtifactoryArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	if in.HDFS != nil {
		in, out := &in.HDFS, &out.HDFS
		*out = new(HDFSArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	if in.OSS != nil {
		in, out := &in.OSS, &out.OSS
		*out = new(OSSArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	if in.GCS != nil {
		in, out := &in.GCS, &out.GCS
		*out = new(GCSArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	if in.Azure != nil {
		in, out := &in.Azure, &out.Azure
		*out = new(AzureArtifactRepository)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactResultNodeStatus) DeepCopyInto(out *ArtifactResultNodeStatus) {
	*out = *in
	if in.ArtifactResults != nil {
		in, out := &in.ArtifactResults, &out.ArtifactResults
		*out = make(map[string]ArtifactResult, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactSearchQuery) DeepCopyInto(out *ArtifactSearchQuery) {
	*out = *in
	if in.ArtifactGCStrategies != nil {
		in, out := &in.ArtifactGCStrategies, &out.ArtifactGCStrategies
		*out = make(map[ArtifactGCStrategy]bool, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Deleted != nil {
		in, out := &in.Deleted, &out.Deleted
		*out = new(bool)
		**out = **in
	}
	if in.NodeTypes != nil {
		in, out := &in.NodeTypes, &out.NodeTypes
		*out = make(map[NodeType]bool, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ArtifactoryAuth) DeepCopyInto(out *ArtifactoryAuth) {
	*out = *in
	if in.UsernameSecret != nil {
		in, out := &in.UsernameSecret, &out.UsernameSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.PasswordSecret != nil {
		in, out := &in.PasswordSecret, &out.PasswordSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BasicAuth) DeepCopyInto(out *BasicAuth) {
	*out = *in
	if in.UsernameSecret != nil {
		in, out := &in.UsernameSecret, &out.UsernameSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.PasswordSecret != nil {
		in, out := &in.PasswordSecret, &out.PasswordSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClientCertAuth) DeepCopyInto(out *ClientCertAuth) {
	*out = *in
	if in.ClientCertSecret != nil {
		in, out := &in.ClientCertSecret, &out.ClientCertSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ClientKeySecret != nil {
		in, out := &in.ClientKeySecret, &out.ClientKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterWorkflowTemplate) 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 *ClusterWorkflowTemplateList) DeepCopyInto(out *ClusterWorkflowTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make(ClusterWorkflowTemplates, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterWorkflowTemplateList) 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 ClusterWorkflowTemplates) DeepCopyInto(out *ClusterWorkflowTemplates) {
	{
		in := &in
		*out = make(ClusterWorkflowTemplates, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
		return
	}
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in Conditions) DeepCopyInto(out *Conditions) {
	{
		in := &in
		*out = make(Conditions, len(*in))
		copy(*out, *in)
		return
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerNode) DeepCopyInto(out *ContainerNode) {
	*out = *in
	in.Container.DeepCopyInto(&out.Container)
	if in.Dependencies != nil {
		in, out := &in.Dependencies, &out.Dependencies
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerSetTemplate) DeepCopyInto(out *ContainerSetTemplate) {
	*out = *in
	if in.Containers != nil {
		in, out := &in.Containers, &out.Containers
		*out = make([]ContainerNode, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.VolumeMounts != nil {
		in, out := &in.VolumeMounts, &out.VolumeMounts
		*out = make([]v1.VolumeMount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.RetryStrategy != nil {
		in, out := &in.RetryStrategy, &out.RetryStrategy
		*out = new(ContainerSetRetryStrategy)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CronWorkflow) 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 *CronWorkflowList) DeepCopyInto(out *CronWorkflowList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]CronWorkflow, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CronWorkflowList) 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 *CronWorkflowSpec) DeepCopyInto(out *CronWorkflowSpec) {
	*out = *in
	in.WorkflowSpec.DeepCopyInto(&out.WorkflowSpec)
	if in.StartingDeadlineSeconds != nil {
		in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds
		*out = new(int64)
		**out = **in
	}
	if in.SuccessfulJobsHistoryLimit != nil {
		in, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit
		*out = new(int32)
		**out = **in
	}
	if in.FailedJobsHistoryLimit != nil {
		in, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit
		*out = new(int32)
		**out = **in
	}
	if in.WorkflowMetadata != nil {
		in, out := &in.WorkflowMetadata, &out.WorkflowMetadata
		*out = new(metav1.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.StopStrategy != nil {
		in, out := &in.StopStrategy, &out.StopStrategy
		*out = new(StopStrategy)
		**out = **in
	}
	if in.Schedules != nil {
		in, out := &in.Schedules, &out.Schedules
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CronWorkflowStatus) DeepCopyInto(out *CronWorkflowStatus) {
	*out = *in
	if in.Active != nil {
		in, out := &in.Active, &out.Active
		*out = make([]v1.ObjectReference, len(*in))
		copy(*out, *in)
	}
	if in.LastScheduledTime != nil {
		in, out := &in.LastScheduledTime, &out.LastScheduledTime
		*out = (*in).DeepCopy()
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make(Conditions, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DAGTask) DeepCopyInto(out *DAGTask) {
	*out = *in
	if in.Inline != nil {
		in, out := &in.Inline, &out.Inline
		*out = new(Template)
		(*in).DeepCopyInto(*out)
	}
	in.Arguments.DeepCopyInto(&out.Arguments)
	if in.TemplateRef != nil {
		in, out := &in.TemplateRef, &out.TemplateRef
		*out = new(TemplateRef)
		**out = **in
	}
	if in.Dependencies != nil {
		in, out := &in.Dependencies, &out.Dependencies
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.WithItems != nil {
		in, out := &in.WithItems, &out.WithItems
		*out = make([]Item, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.WithSequence != nil {
		in, out := &in.WithSequence, &out.WithSequence
		*out = new(Sequence)
		(*in).DeepCopyInto(*out)
	}
	if in.ContinueOn != nil {
		in, out := &in.ContinueOn, &out.ContinueOn
		*out = new(ContinueOn)
		**out = **in
	}
	if in.Hooks != nil {
		in, out := &in.Hooks, &out.Hooks
		*out = make(LifecycleHooks, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DAGTemplate) DeepCopyInto(out *DAGTemplate) {
	*out = *in
	if in.Tasks != nil {
		in, out := &in.Tasks, &out.Tasks
		*out = make([]DAGTask, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.FailFast != nil {
		in, out := &in.FailFast, &out.FailFast
		*out = new(bool)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Data) DeepCopyInto(out *Data) {
	*out = *in
	in.Source.DeepCopyInto(&out.Source)
	if in.Transformation != nil {
		in, out := &in.Transformation, &out.Transformation
		*out = make(Transformation, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GitArtifact) DeepCopyInto(out *GitArtifact) {
	*out = *in
	if in.Depth != nil {
		in, out := &in.Depth, &out.Depth
		*out = new(uint64)
		**out = **in
	}
	if in.Fetch != nil {
		in, out := &in.Fetch, &out.Fetch
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.UsernameSecret != nil {
		in, out := &in.UsernameSecret, &out.UsernameSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.PasswordSecret != nil {
		in, out := &in.PasswordSecret, &out.PasswordSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SSHPrivateKeySecret != nil {
		in, out := &in.SSHPrivateKeySecret, &out.SSHPrivateKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HDFSConfig) DeepCopyInto(out *HDFSConfig) {
	*out = *in
	in.HDFSKrbConfig.DeepCopyInto(&out.HDFSKrbConfig)
	if in.Addresses != nil {
		in, out := &in.Addresses, &out.Addresses
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HDFSKrbConfig) DeepCopyInto(out *HDFSKrbConfig) {
	*out = *in
	if in.KrbCCacheSecret != nil {
		in, out := &in.KrbCCacheSecret, &out.KrbCCacheSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.KrbKeytabSecret != nil {
		in, out := &in.KrbKeytabSecret, &out.KrbKeytabSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.KrbConfigConfigMap != nil {
		in, out := &in.KrbConfigConfigMap, &out.KrbConfigConfigMap
		*out = new(v1.ConfigMapKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTP) DeepCopyInto(out *HTTP) {
	*out = *in
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make(HTTPHeaders, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.TimeoutSeconds != nil {
		in, out := &in.TimeoutSeconds, &out.TimeoutSeconds
		*out = new(int64)
		**out = **in
	}
	if in.BodyFrom != nil {
		in, out := &in.BodyFrom, &out.BodyFrom
		*out = new(HTTPBodySource)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPArtifact) DeepCopyInto(out *HTTPArtifact) {
	*out = *in
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]Header, len(*in))
		copy(*out, *in)
	}
	if in.Auth != nil {
		in, out := &in.Auth, &out.Auth
		*out = new(HTTPAuth)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPBodySource) DeepCopyInto(out *HTTPBodySource) {
	*out = *in
	if in.Bytes != nil {
		in, out := &in.Bytes, &out.Bytes
		*out = make([]byte, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Histogram) DeepCopyInto(out *Histogram) {
	*out = *in
	if in.Buckets != nil {
		in, out := &in.Buckets, &out.Buckets
		*out = make([]Amount, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Inputs) DeepCopyInto(out *Inputs) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make([]Parameter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Artifacts != nil {
		in, out := &in.Artifacts, &out.Artifacts
		*out = make(Artifacts, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LabelKeys) DeepCopyInto(out *LabelKeys) {
	*out = *in
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LabelValues) DeepCopyInto(out *LabelValues) {
	*out = *in
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in LifecycleHooks) DeepCopyInto(out *LifecycleHooks) {
	{
		in := &in
		*out = make(LifecycleHooks, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
		return
	}
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Metadata) DeepCopyInto(out *Metadata) {
	*out = *in
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MutexStatus) DeepCopyInto(out *MutexStatus) {
	*out = *in
	if in.Holding != nil {
		in, out := &in.Holding, &out.Holding
		*out = make([]MutexHolding, len(*in))
		copy(*out, *in)
	}
	if in.Waiting != nil {
		in, out := &in.Waiting, &out.Waiting
		*out = make([]MutexHolding, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeStatus) DeepCopyInto(out *NodeStatus) {
	*out = *in
	if in.TemplateRef != nil {
		in, out := &in.TemplateRef, &out.TemplateRef
		*out = new(TemplateRef)
		**out = **in
	}
	in.StartedAt.DeepCopyInto(&out.StartedAt)
	in.FinishedAt.DeepCopyInto(&out.FinishedAt)
	if in.ResourcesDuration != nil {
		in, out := &in.ResourcesDuration, &out.ResourcesDuration
		*out = make(ResourcesDuration, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Daemoned != nil {
		in, out := &in.Daemoned, &out.Daemoned
		*out = new(bool)
		**out = **in
	}
	if in.NodeFlag != nil {
		in, out := &in.NodeFlag, &out.NodeFlag
		*out = new(NodeFlag)
		**out = **in
	}
	if in.Inputs != nil {
		in, out := &in.Inputs, &out.Inputs
		*out = new(Inputs)
		(*in).DeepCopyInto(*out)
	}
	if in.Outputs != nil {
		in, out := &in.Outputs, &out.Outputs
		*out = new(Outputs)
		(*in).DeepCopyInto(*out)
	}
	if in.Children != nil {
		in, out := &in.Children, &out.Children
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.OutboundNodes != nil {
		in, out := &in.OutboundNodes, &out.OutboundNodes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.MemoizationStatus != nil {
		in, out := &in.MemoizationStatus, &out.MemoizationStatus
		*out = new(MemoizationStatus)
		**out = **in
	}
	if in.SynchronizationStatus != nil {
		in, out := &in.SynchronizationStatus, &out.SynchronizationStatus
		*out = new(NodeSynchronizationStatus)
		**out = **in
	}
	if in.TaskResultSynced != nil {
		in, out := &in.TaskResultSynced, &out.TaskResultSynced
		*out = new(bool)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in Nodes) DeepCopyInto(out *Nodes) {
	{
		in := &in
		*out = make(Nodes, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
		return
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OAuth2Auth) DeepCopyInto(out *OAuth2Auth) {
	*out = *in
	if in.ClientIDSecret != nil {
		in, out := &in.ClientIDSecret, &out.ClientIDSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ClientSecretSecret != nil {
		in, out := &in.ClientSecretSecret, &out.ClientSecretSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.TokenURLSecret != nil {
		in, out := &in.TokenURLSecret, &out.TokenURLSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Scopes != nil {
		in, out := &in.Scopes, &out.Scopes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.EndpointParams != nil {
		in, out := &in.EndpointParams, &out.EndpointParams
		*out = make([]OAuth2EndpointParam, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OSSBucket) DeepCopyInto(out *OSSBucket) {
	*out = *in
	if in.AccessKeySecret != nil {
		in, out := &in.AccessKeySecret, &out.AccessKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SecretKeySecret != nil {
		in, out := &in.SecretKeySecret, &out.SecretKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.LifecycleRule != nil {
		in, out := &in.LifecycleRule, &out.LifecycleRule
		*out = new(OSSLifecycleRule)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Object) DeepCopyInto(out *Object) {
	*out = *in
	if in.Value != nil {
		in, out := &in.Value, &out.Value
		*out = make(json.RawMessage, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Outputs) DeepCopyInto(out *Outputs) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make([]Parameter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Artifacts != nil {
		in, out := &in.Artifacts, &out.Artifacts
		*out = make(Artifacts, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Result != nil {
		in, out := &in.Result, &out.Result
		*out = new(string)
		**out = **in
	}
	if in.ExitCode != nil {
		in, out := &in.ExitCode, &out.ExitCode
		*out = new(string)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Parameter) DeepCopyInto(out *Parameter) {
	*out = *in
	if in.Default != nil {
		in, out := &in.Default, &out.Default
		*out = new(AnyString)
		**out = **in
	}
	if in.Value != nil {
		in, out := &in.Value, &out.Value
		*out = new(AnyString)
		**out = **in
	}
	if in.ValueFrom != nil {
		in, out := &in.ValueFrom, &out.ValueFrom
		*out = new(ValueFrom)
		(*in).DeepCopyInto(*out)
	}
	if in.Enum != nil {
		in, out := &in.Enum, &out.Enum
		*out = make([]AnyString, len(*in))
		copy(*out, *in)
	}
	if in.Description != nil {
		in, out := &in.Description, &out.Description
		*out = new(AnyString)
		**out = **in
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Prometheus) DeepCopyInto(out *Prometheus) {
	*out = *in
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make([]*MetricLabel, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(MetricLabel)
				**out = **in
			}
		}
	}
	if in.Gauge != nil {
		in, out := &in.Gauge, &out.Gauge
		*out = new(Gauge)
		(*in).DeepCopyInto(*out)
	}
	if in.Histogram != nil {
		in, out := &in.Histogram, &out.Histogram
		*out = new(Histogram)
		(*in).DeepCopyInto(*out)
	}
	if in.Counter != nil {
		in, out := &in.Counter, &out.Counter
		*out = new(Counter)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ResourceTemplate) DeepCopyInto(out *ResourceTemplate) {
	*out = *in
	if in.ManifestFrom != nil {
		in, out := &in.ManifestFrom, &out.ManifestFrom
		*out = new(ManifestFrom)
		(*in).DeepCopyInto(*out)
	}
	if in.Flags != nil {
		in, out := &in.Flags, &out.Flags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in ResourcesDuration) DeepCopyInto(out *ResourcesDuration) {
	{
		in := &in
		*out = make(ResourcesDuration, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
		return
	}
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RetryStrategy) DeepCopyInto(out *RetryStrategy) {
	*out = *in
	if in.Limit != nil {
		in, out := &in.Limit, &out.Limit
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.Backoff != nil {
		in, out := &in.Backoff, &out.Backoff
		*out = new(Backoff)
		(*in).DeepCopyInto(*out)
	}
	if in.Affinity != nil {
		in, out := &in.Affinity, &out.Affinity
		*out = new(RetryAffinity)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *S3Bucket) DeepCopyInto(out *S3Bucket) {
	*out = *in
	if in.Insecure != nil {
		in, out := &in.Insecure, &out.Insecure
		*out = new(bool)
		**out = **in
	}
	if in.AccessKeySecret != nil {
		in, out := &in.AccessKeySecret, &out.AccessKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SecretKeySecret != nil {
		in, out := &in.SecretKeySecret, &out.SecretKeySecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SessionTokenSecret != nil {
		in, out := &in.SessionTokenSecret, &out.SessionTokenSecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.CreateBucketIfNotPresent != nil {
		in, out := &in.CreateBucketIfNotPresent, &out.CreateBucketIfNotPresent
		*out = new(CreateS3BucketOptions)
		**out = **in
	}
	if in.EncryptionOptions != nil {
		in, out := &in.EncryptionOptions, &out.EncryptionOptions
		*out = new(S3EncryptionOptions)
		(*in).DeepCopyInto(*out)
	}
	if in.CASecret != nil {
		in, out := &in.CASecret, &out.CASecret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SemaphoreHolding) DeepCopyInto(out *SemaphoreHolding) {
	*out = *in
	if in.Holders != nil {
		in, out := &in.Holders, &out.Holders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SemaphoreRef) DeepCopyInto(out *SemaphoreRef) {
	*out = *in
	if in.ConfigMapKeyRef != nil {
		in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef
		*out = new(v1.ConfigMapKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Database != nil {
		in, out := &in.Database, &out.Database
		*out = new(SyncDatabaseRef)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SemaphoreStatus) DeepCopyInto(out *SemaphoreStatus) {
	*out = *in
	if in.Holding != nil {
		in, out := &in.Holding, &out.Holding
		*out = make([]SemaphoreHolding, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Waiting != nil {
		in, out := &in.Waiting, &out.Waiting
		*out = make([]SemaphoreHolding, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Sequence) DeepCopyInto(out *Sequence) {
	*out = *in
	if in.Count != nil {
		in, out := &in.Count, &out.Count
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.Start != nil {
		in, out := &in.Start, &out.Start
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.End != nil {
		in, out := &in.End, &out.End
		*out = new(intstr.IntOrString)
		**out = **in
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SubmitOpts) DeepCopyInto(out *SubmitOpts) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.OwnerReference != nil {
		in, out := &in.OwnerReference, &out.OwnerReference
		*out = new(metav1.OwnerReference)
		(*in).DeepCopyInto(*out)
	}
	if in.Priority != nil {
		in, out := &in.Priority, &out.Priority
		*out = new(int32)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Synchronization) DeepCopyInto(out *Synchronization) {
	*out = *in
	if in.Semaphore != nil {
		in, out := &in.Semaphore, &out.Semaphore
		*out = new(SemaphoreRef)
		(*in).DeepCopyInto(*out)
	}
	if in.Mutex != nil {
		in, out := &in.Mutex, &out.Mutex
		*out = new(Mutex)
		**out = **in
	}
	if in.Semaphores != nil {
		in, out := &in.Semaphores, &out.Semaphores
		*out = make([]*SemaphoreRef, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(SemaphoreRef)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Mutexes != nil {
		in, out := &in.Mutexes, &out.Mutexes
		*out = make([]*Mutex, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Mutex)
				**out = **in
			}
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SynchronizationStatus) DeepCopyInto(out *SynchronizationStatus) {
	*out = *in
	if in.Semaphore != nil {
		in, out := &in.Semaphore, &out.Semaphore
		*out = new(SemaphoreStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.Mutex != nil {
		in, out := &in.Mutex, &out.Mutex
		*out = new(MutexStatus)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TTLStrategy) DeepCopyInto(out *TTLStrategy) {
	*out = *in
	if in.SecondsAfterCompletion != nil {
		in, out := &in.SecondsAfterCompletion, &out.SecondsAfterCompletion
		*out = new(int32)
		**out = **in
	}
	if in.SecondsAfterSuccess != nil {
		in, out := &in.SecondsAfterSuccess, &out.SecondsAfterSuccess
		*out = new(int32)
		**out = **in
	}
	if in.SecondsAfterFailure != nil {
		in, out := &in.SecondsAfterFailure, &out.SecondsAfterFailure
		*out = new(int32)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Template) DeepCopyInto(out *Template) {
	*out = *in
	in.Inputs.DeepCopyInto(&out.Inputs)
	in.Outputs.DeepCopyInto(&out.Outputs)
	if in.NodeSelector != nil {
		in, out := &in.NodeSelector, &out.NodeSelector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Affinity != nil {
		in, out := &in.Affinity, &out.Affinity
		*out = new(v1.Affinity)
		(*in).DeepCopyInto(*out)
	}
	in.Metadata.DeepCopyInto(&out.Metadata)
	if in.Daemon != nil {
		in, out := &in.Daemon, &out.Daemon
		*out = new(bool)
		**out = **in
	}
	if in.Steps != nil {
		in, out := &in.Steps, &out.Steps
		*out = make([]ParallelSteps, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Container != nil {
		in, out := &in.Container, &out.Container
		*out = new(v1.Container)
		(*in).DeepCopyInto(*out)
	}
	if in.ContainerSet != nil {
		in, out := &in.ContainerSet, &out.ContainerSet
		*out = new(ContainerSetTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.Script != nil {
		in, out := &in.Script, &out.Script
		*out = new(ScriptTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.Resource != nil {
		in, out := &in.Resource, &out.Resource
		*out = new(ResourceTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.DAG != nil {
		in, out := &in.DAG, &out.DAG
		*out = new(DAGTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.Suspend != nil {
		in, out := &in.Suspend, &out.Suspend
		*out = new(SuspendTemplate)
		**out = **in
	}
	if in.Data != nil {
		in, out := &in.Data, &out.Data
		*out = new(Data)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP != nil {
		in, out := &in.HTTP, &out.HTTP
		*out = new(HTTP)
		(*in).DeepCopyInto(*out)
	}
	if in.Plugin != nil {
		in, out := &in.Plugin, &out.Plugin
		*out = new(Plugin)
		(*in).DeepCopyInto(*out)
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make([]v1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.InitContainers != nil {
		in, out := &in.InitContainers, &out.InitContainers
		*out = make([]UserContainer, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Sidecars != nil {
		in, out := &in.Sidecars, &out.Sidecars
		*out = make([]UserContainer, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ArchiveLocation != nil {
		in, out := &in.ArchiveLocation, &out.ArchiveLocation
		*out = new(ArtifactLocation)
		(*in).DeepCopyInto(*out)
	}
	if in.ActiveDeadlineSeconds != nil {
		in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.RetryStrategy != nil {
		in, out := &in.RetryStrategy, &out.RetryStrategy
		*out = new(RetryStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.Parallelism != nil {
		in, out := &in.Parallelism, &out.Parallelism
		*out = new(int64)
		**out = **in
	}
	if in.FailFast != nil {
		in, out := &in.FailFast, &out.FailFast
		*out = new(bool)
		**out = **in
	}
	if in.Tolerations != nil {
		in, out := &in.Tolerations, &out.Tolerations
		*out = make([]v1.Toleration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AutomountServiceAccountToken != nil {
		in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken
		*out = new(bool)
		**out = **in
	}
	if in.Executor != nil {
		in, out := &in.Executor, &out.Executor
		*out = new(ExecutorConfig)
		**out = **in
	}
	if in.HostAliases != nil {
		in, out := &in.HostAliases, &out.HostAliases
		*out = make([]v1.HostAlias, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SecurityContext != nil {
		in, out := &in.SecurityContext, &out.SecurityContext
		*out = new(v1.PodSecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		(*in).DeepCopyInto(*out)
	}
	if in.Synchronization != nil {
		in, out := &in.Synchronization, &out.Synchronization
		*out = new(Synchronization)
		(*in).DeepCopyInto(*out)
	}
	if in.Memoize != nil {
		in, out := &in.Memoize, &out.Memoize
		*out = new(Memoize)
		(*in).DeepCopyInto(*out)
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in Transformation) DeepCopyInto(out *Transformation) {
	{
		in := &in
		*out = make(Transformation, len(*in))
		copy(*out, *in)
		return
	}
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ValueFrom) DeepCopyInto(out *ValueFrom) {
	*out = *in
	if in.Supplied != nil {
		in, out := &in.Supplied, &out.Supplied
		*out = new(SuppliedValueFrom)
		**out = **in
	}
	if in.ConfigMapKeyRef != nil {
		in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef
		*out = new(v1.ConfigMapKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Default != nil {
		in, out := &in.Default, &out.Default
		*out = new(AnyString)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Workflow) 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 *WorkflowArtifactGCTask) DeepCopyInto(out *WorkflowArtifactGCTask) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowArtifactGCTask) 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 *WorkflowArtifactGCTaskList) DeepCopyInto(out *WorkflowArtifactGCTaskList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]WorkflowArtifactGCTask, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowArtifactGCTaskList) 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 *WorkflowEventBinding) DeepCopyInto(out *WorkflowEventBinding) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowEventBinding) 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 *WorkflowEventBindingList) DeepCopyInto(out *WorkflowEventBindingList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]WorkflowEventBinding, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowEventBindingList) 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 *WorkflowEventBindingSpec) DeepCopyInto(out *WorkflowEventBindingSpec) {
	*out = *in
	out.Event = in.Event
	if in.Submit != nil {
		in, out := &in.Submit, &out.Submit
		*out = new(Submit)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowList) 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 *WorkflowMetadata) DeepCopyInto(out *WorkflowMetadata) {
	*out = *in
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.LabelsFrom != nil {
		in, out := &in.LabelsFrom, &out.LabelsFrom
		*out = make(map[string]LabelValueFrom, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec) {
	*out = *in
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]Template, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Arguments.DeepCopyInto(&out.Arguments)
	if in.AutomountServiceAccountToken != nil {
		in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken
		*out = new(bool)
		**out = **in
	}
	if in.Executor != nil {
		in, out := &in.Executor, &out.Executor
		*out = new(ExecutorConfig)
		**out = **in
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make([]v1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]v1.PersistentVolumeClaim, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Parallelism != nil {
		in, out := &in.Parallelism, &out.Parallelism
		*out = new(int64)
		**out = **in
	}
	if in.ArtifactRepositoryRef != nil {
		in, out := &in.ArtifactRepositoryRef, &out.ArtifactRepositoryRef
		*out = new(ArtifactRepositoryRef)
		**out = **in
	}
	if in.Suspend != nil {
		in, out := &in.Suspend, &out.Suspend
		*out = new(bool)
		**out = **in
	}
	if in.NodeSelector != nil {
		in, out := &in.NodeSelector, &out.NodeSelector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Affinity != nil {
		in, out := &in.Affinity, &out.Affinity
		*out = new(v1.Affinity)
		(*in).DeepCopyInto(*out)
	}
	if in.Tolerations != nil {
		in, out := &in.Tolerations, &out.Tolerations
		*out = make([]v1.Toleration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ImagePullSecrets != nil {
		in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
		*out = make([]v1.LocalObjectReference, len(*in))
		copy(*out, *in)
	}
	if in.HostNetwork != nil {
		in, out := &in.HostNetwork, &out.HostNetwork
		*out = new(bool)
		**out = **in
	}
	if in.DNSPolicy != nil {
		in, out := &in.DNSPolicy, &out.DNSPolicy
		*out = new(v1.DNSPolicy)
		**out = **in
	}
	if in.DNSConfig != nil {
		in, out := &in.DNSConfig, &out.DNSConfig
		*out = new(v1.PodDNSConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.TTLStrategy != nil {
		in, out := &in.TTLStrategy, &out.TTLStrategy
		*out = new(TTLStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.ActiveDeadlineSeconds != nil {
		in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds
		*out = new(int64)
		**out = **in
	}
	if in.Priority != nil {
		in, out := &in.Priority, &out.Priority
		*out = new(int32)
		**out = **in
	}
	if in.PodGC != nil {
		in, out := &in.PodGC, &out.PodGC
		*out = new(PodGC)
		(*in).DeepCopyInto(*out)
	}
	if in.HostAliases != nil {
		in, out := &in.HostAliases, &out.HostAliases
		*out = make([]v1.HostAlias, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SecurityContext != nil {
		in, out := &in.SecurityContext, &out.SecurityContext
		*out = new(v1.PodSecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.PodDisruptionBudget != nil {
		in, out := &in.PodDisruptionBudget, &out.PodDisruptionBudget
		*out = new(policyv1.PodDisruptionBudgetSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		(*in).DeepCopyInto(*out)
	}
	if in.WorkflowTemplateRef != nil {
		in, out := &in.WorkflowTemplateRef, &out.WorkflowTemplateRef
		*out = new(WorkflowTemplateRef)
		**out = **in
	}
	if in.Synchronization != nil {
		in, out := &in.Synchronization, &out.Synchronization
		*out = new(Synchronization)
		(*in).DeepCopyInto(*out)
	}
	if in.VolumeClaimGC != nil {
		in, out := &in.VolumeClaimGC, &out.VolumeClaimGC
		*out = new(VolumeClaimGC)
		**out = **in
	}
	if in.RetryStrategy != nil {
		in, out := &in.RetryStrategy, &out.RetryStrategy
		*out = new(RetryStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.PodMetadata != nil {
		in, out := &in.PodMetadata, &out.PodMetadata
		*out = new(Metadata)
		(*in).DeepCopyInto(*out)
	}
	if in.TemplateDefaults != nil {
		in, out := &in.TemplateDefaults, &out.TemplateDefaults
		*out = new(Template)
		(*in).DeepCopyInto(*out)
	}
	if in.ArchiveLogs != nil {
		in, out := &in.ArchiveLogs, &out.ArchiveLogs
		*out = new(bool)
		**out = **in
	}
	if in.Hooks != nil {
		in, out := &in.Hooks, &out.Hooks
		*out = make(LifecycleHooks, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.WorkflowMetadata != nil {
		in, out := &in.WorkflowMetadata, &out.WorkflowMetadata
		*out = new(WorkflowMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.ArtifactGC != nil {
		in, out := &in.ArtifactGC, &out.ArtifactGC
		*out = new(WorkflowLevelArtifactGC)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus) {
	*out = *in
	in.StartedAt.DeepCopyInto(&out.StartedAt)
	in.FinishedAt.DeepCopyInto(&out.FinishedAt)
	if in.Nodes != nil {
		in, out := &in.Nodes, &out.Nodes
		*out = make(Nodes, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.StoredTemplates != nil {
		in, out := &in.StoredTemplates, &out.StoredTemplates
		*out = make(map[string]Template, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.PersistentVolumeClaims != nil {
		in, out := &in.PersistentVolumeClaims, &out.PersistentVolumeClaims
		*out = make([]v1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Outputs != nil {
		in, out := &in.Outputs, &out.Outputs
		*out = new(Outputs)
		(*in).DeepCopyInto(*out)
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make(Conditions, len(*in))
		copy(*out, *in)
	}
	if in.ResourcesDuration != nil {
		in, out := &in.ResourcesDuration, &out.ResourcesDuration
		*out = make(ResourcesDuration, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.StoredWorkflowSpec != nil {
		in, out := &in.StoredWorkflowSpec, &out.StoredWorkflowSpec
		*out = new(WorkflowSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.Synchronization != nil {
		in, out := &in.Synchronization, &out.Synchronization
		*out = new(SynchronizationStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.ArtifactRepositoryRef != nil {
		in, out := &in.ArtifactRepositoryRef, &out.ArtifactRepositoryRef
		*out = new(ArtifactRepositoryRefStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.ArtifactGCStatus != nil {
		in, out := &in.ArtifactGCStatus, &out.ArtifactGCStatus
		*out = new(ArtGCStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.TaskResultsCompletionStatus != nil {
		in, out := &in.TaskResultsCompletionStatus, &out.TaskResultsCompletionStatus
		*out = make(map[string]bool, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowStep) DeepCopyInto(out *WorkflowStep) {
	*out = *in
	if in.Inline != nil {
		in, out := &in.Inline, &out.Inline
		*out = new(Template)
		(*in).DeepCopyInto(*out)
	}
	in.Arguments.DeepCopyInto(&out.Arguments)
	if in.TemplateRef != nil {
		in, out := &in.TemplateRef, &out.TemplateRef
		*out = new(TemplateRef)
		**out = **in
	}
	if in.WithItems != nil {
		in, out := &in.WithItems, &out.WithItems
		*out = make([]Item, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.WithSequence != nil {
		in, out := &in.WithSequence, &out.WithSequence
		*out = new(Sequence)
		(*in).DeepCopyInto(*out)
	}
	if in.ContinueOn != nil {
		in, out := &in.ContinueOn, &out.ContinueOn
		*out = new(ContinueOn)
		**out = **in
	}
	if in.Hooks != nil {
		in, out := &in.Hooks, &out.Hooks
		*out = make(LifecycleHooks, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTaskResult) 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 *WorkflowTaskResultList) DeepCopyInto(out *WorkflowTaskResultList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]WorkflowTaskResult, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTaskResultList) 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 *WorkflowTaskSet) DeepCopyInto(out *WorkflowTaskSet) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTaskSet) 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 *WorkflowTaskSetList) DeepCopyInto(out *WorkflowTaskSetList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]WorkflowTaskSet, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTaskSetList) 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 *WorkflowTaskSetSpec) DeepCopyInto(out *WorkflowTaskSetSpec) {
	*out = *in
	if in.Tasks != nil {
		in, out := &in.Tasks, &out.Tasks
		*out = make(map[string]Template, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowTaskSetStatus) DeepCopyInto(out *WorkflowTaskSetStatus) {
	*out = *in
	if in.Nodes != nil {
		in, out := &in.Nodes, &out.Nodes
		*out = make(map[string]NodeResult, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTemplate) 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 *WorkflowTemplateList) DeepCopyInto(out *WorkflowTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make(WorkflowTemplates, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowTemplateList) 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 *WorkflowTemplateRef) DeepCopyInto(out *WorkflowTemplateRef) {
	*out = *in
	return
}

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

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

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

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

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

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

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