func (in *OCIBuilderStatus) DeepCopyInto(out *OCIBuilderStatus) {
	*out = *in
	in.StartedAt.DeepCopyInto(&out.StartedAt)
	if in.Nodes != nil {
		in, out := &in.Nodes, &out.Nodes
		*out = make(map[string]*NodeStatus, len(*in))
		for key, val := range *in {
			var outVal *NodeStatus
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(NodeStatus)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	return
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha1
import (
	v1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AliyunOSSContext) DeepCopyInto(out *AliyunOSSContext) {
	*out = *in
	if in.AccessId != nil {
		in, out := &in.AccessId, &out.AccessId
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.AccessSecret != nil {
		in, out := &in.AccessSecret, &out.AccessSecret
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.Bucket != nil {
		in, out := &in.Bucket, &out.Bucket
		*out = new(S3Bucket)
		**out = **in
	}
	return
}
func (in *AliyunOSSContext) DeepCopy() *AliyunOSSContext {
	if in == nil {
		return nil
	}
	out := new(AliyunOSSContext)
	in.DeepCopyInto(out)
	return out
}
func (in *AnsibleStep) DeepCopyInto(out *AnsibleStep) {
	*out = *in
	return
}
func (in *AnsibleStep) DeepCopy() *AnsibleStep {
	if in == nil {
		return nil
	}
	out := new(AnsibleStep)
	in.DeepCopyInto(out)
	return out
}
func (in *AzureBlobContext) DeepCopyInto(out *AzureBlobContext) {
	*out = *in
	if in.Account != nil {
		in, out := &in.Account, &out.Account
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.AccessKey != nil {
		in, out := &in.AccessKey, &out.AccessKey
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.URL != nil {
		in, out := &in.URL, &out.URL
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *AzureBlobContext) DeepCopy() *AzureBlobContext {
	if in == nil {
		return nil
	}
	out := new(AzureBlobContext)
	in.DeepCopyInto(out)
	return out
}
func (in *Base) DeepCopyInto(out *Base) {
	*out = *in
	return
}
func (in *Base) DeepCopy() *Base {
	if in == nil {
		return nil
	}
	out := new(Base)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildContext) DeepCopyInto(out *BuildContext) {
	*out = *in
	if in.LocalContext != nil {
		in, out := &in.LocalContext, &out.LocalContext
		*out = new(LocalContext)
		**out = **in
	}
	if in.S3Context != nil {
		in, out := &in.S3Context, &out.S3Context
		*out = new(S3Context)
		(*in).DeepCopyInto(*out)
	}
	if in.GitContext != nil {
		in, out := &in.GitContext, &out.GitContext
		*out = new(GitContext)
		(*in).DeepCopyInto(*out)
	}
	if in.GCSContext != nil {
		in, out := &in.GCSContext, &out.GCSContext
		*out = new(GCSContext)
		(*in).DeepCopyInto(*out)
	}
	if in.AzureBlobContext != nil {
		in, out := &in.AzureBlobContext, &out.AzureBlobContext
		*out = new(AzureBlobContext)
		(*in).DeepCopyInto(*out)
	}
	if in.AliyunOSSContext != nil {
		in, out := &in.AliyunOSSContext, &out.AliyunOSSContext
		*out = new(AliyunOSSContext)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *BuildContext) DeepCopy() *BuildContext {
	if in == nil {
		return nil
	}
	out := new(BuildContext)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildGenTemplate) DeepCopyInto(out *BuildGenTemplate) {
	*out = *in
	if in.Cmds != nil {
		in, out := &in.Cmds, &out.Cmds
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *BuildGenTemplate) DeepCopy() *BuildGenTemplate {
	if in == nil {
		return nil
	}
	out := new(BuildGenTemplate)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildSpec) DeepCopyInto(out *BuildSpec) {
	*out = *in
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]BuildTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Steps != nil {
		in, out := &in.Steps, &out.Steps
		*out = make([]BuildStep, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuildSpec) DeepCopy() *BuildSpec {
	if in == nil {
		return nil
	}
	out := new(BuildSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildStep) DeepCopyInto(out *BuildStep) {
	*out = *in
	if in.ImageMetadata != nil {
		in, out := &in.ImageMetadata, &out.ImageMetadata
		*out = new(ImageMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.Stages != nil {
		in, out := &in.Stages, &out.Stages
		*out = make([]Stage, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.BuildContext != nil {
		in, out := &in.BuildContext, &out.BuildContext
		*out = new(BuildContext)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *BuildStep) DeepCopy() *BuildStep {
	if in == nil {
		return nil
	}
	out := new(BuildStep)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildTemplate) DeepCopyInto(out *BuildTemplate) {
	*out = *in
	if in.Cmd != nil {
		in, out := &in.Cmd, &out.Cmd
		*out = make([]BuildTemplateStep, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuildTemplate) DeepCopy() *BuildTemplate {
	if in == nil {
		return nil
	}
	out := new(BuildTemplate)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildTemplateStep) DeepCopyInto(out *BuildTemplateStep) {
	*out = *in
	if in.Docker != nil {
		in, out := &in.Docker, &out.Docker
		*out = new(DockerStep)
		(*in).DeepCopyInto(*out)
	}
	if in.Ansible != nil {
		in, out := &in.Ansible, &out.Ansible
		*out = new(AnsibleStep)
		**out = **in
	}
	return
}
func (in *BuildTemplateStep) DeepCopy() *BuildTemplateStep {
	if in == nil {
		return nil
	}
	out := new(BuildTemplateStep)
	in.DeepCopyInto(out)
	return out
}
func (in *Command) DeepCopyInto(out *Command) {
	*out = *in
	if in.Flags != nil {
		in, out := &in.Flags, &out.Flags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Value != nil {
		in, out := &in.Value, &out.Value
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *Command) DeepCopy() *Command {
	if in == nil {
		return nil
	}
	out := new(Command)
	in.DeepCopyInto(out)
	return out
}
func (in *Credentials) DeepCopyInto(out *Credentials) {
	*out = *in
	if in.KubeSecret != nil {
		in, out := &in.KubeSecret, &out.KubeSecret
		*out = new(KubeSecretCredentials)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *Credentials) DeepCopy() *Credentials {
	if in == nil {
		return nil
	}
	out := new(Credentials)
	in.DeepCopyInto(out)
	return out
}
func (in *DockerStep) DeepCopyInto(out *DockerStep) {
	*out = *in
	if in.Inline != nil {
		in, out := &in.Inline, &out.Inline
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.Auth = in.Auth
	return
}
func (in *DockerStep) DeepCopy() *DockerStep {
	if in == nil {
		return nil
	}
	out := new(DockerStep)
	in.DeepCopyInto(out)
	return out
}
func (in *EnvCreds) DeepCopyInto(out *EnvCreds) {
	*out = *in
	return
}
func (in *EnvCreds) DeepCopy() *EnvCreds {
	if in == nil {
		return nil
	}
	out := new(EnvCreds)
	in.DeepCopyInto(out)
	return out
}
func (in *GCSContext) DeepCopyInto(out *GCSContext) {
	*out = *in
	if in.APIKey != nil {
		in, out := &in.APIKey, &out.APIKey
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.Bucket != nil {
		in, out := &in.Bucket, &out.Bucket
		*out = new(S3Bucket)
		**out = **in
	}
	return
}
func (in *GCSContext) DeepCopy() *GCSContext {
	if in == nil {
		return nil
	}
	out := new(GCSContext)
	in.DeepCopyInto(out)
	return out
}
func (in *GenerateTemplate) DeepCopyInto(out *GenerateTemplate) {
	*out = *in
	if in.Stages != nil {
		in, out := &in.Stages, &out.Stages
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *GenerateTemplate) DeepCopy() *GenerateTemplate {
	if in == nil {
		return nil
	}
	out := new(GenerateTemplate)
	in.DeepCopyInto(out)
	return out
}
func (in *GitContext) DeepCopyInto(out *GitContext) {
	*out = *in
	if in.Username != nil {
		in, out := &in.Username, &out.Username
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.Password != nil {
		in, out := &in.Password, &out.Password
		*out = new(Credentials)
		(*in).DeepCopyInto(*out)
	}
	if in.Remote != nil {
		in, out := &in.Remote, &out.Remote
		*out = new(GitRemoteConfig)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *GitContext) DeepCopy() *GitContext {
	if in == nil {
		return nil
	}
	out := new(GitContext)
	in.DeepCopyInto(out)
	return out
}
func (in *GitRemoteConfig) DeepCopyInto(out *GitRemoteConfig) {
	*out = *in
	if in.URLS != nil {
		in, out := &in.URLS, &out.URLS
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *GitRemoteConfig) DeepCopy() *GitRemoteConfig {
	if in == nil {
		return nil
	}
	out := new(GitRemoteConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *Grafeas) DeepCopyInto(out *Grafeas) {
	*out = *in
	out.Notes = in.Notes
	return
}
func (in *Grafeas) DeepCopy() *Grafeas {
	if in == nil {
		return nil
	}
	out := new(Grafeas)
	in.DeepCopyInto(out)
	return out
}
func (in *ImageBuildArgs) DeepCopyInto(out *ImageBuildArgs) {
	*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
		}
	}
	return
}
func (in *ImageBuildArgs) DeepCopy() *ImageBuildArgs {
	if in == nil {
		return nil
	}
	out := new(ImageBuildArgs)
	in.DeepCopyInto(out)
	return out
}
func (in *ImageMetadata) DeepCopyInto(out *ImageMetadata) {
	*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
		}
	}
	return
}
func (in *ImageMetadata) DeepCopy() *ImageMetadata {
	if in == nil {
		return nil
	}
	out := new(ImageMetadata)
	in.DeepCopyInto(out)
	return out
}
func (in *K8sCreds) DeepCopyInto(out *K8sCreds) {
	*out = *in
	if in.Username != nil {
		in, out := &in.Username, &out.Username
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Password != nil {
		in, out := &in.Password, &out.Password
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *K8sCreds) DeepCopy() *K8sCreds {
	if in == nil {
		return nil
	}
	out := new(K8sCreds)
	in.DeepCopyInto(out)
	return out
}
func (in *KubeSecretCredentials) DeepCopyInto(out *KubeSecretCredentials) {
	*out = *in
	if in.Secret != nil {
		in, out := &in.Secret, &out.Secret
		*out = new(v1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *KubeSecretCredentials) DeepCopy() *KubeSecretCredentials {
	if in == nil {
		return nil
	}
	out := new(KubeSecretCredentials)
	in.DeepCopyInto(out)
	return out
}
func (in *LocalContext) DeepCopyInto(out *LocalContext) {
	*out = *in
	return
}
func (in *LocalContext) DeepCopy() *LocalContext {
	if in == nil {
		return nil
	}
	out := new(LocalContext)
	in.DeepCopyInto(out)
	return out
}
func (in *LoginSpec) DeepCopyInto(out *LoginSpec) {
	*out = *in
	in.Creds.DeepCopyInto(&out.Creds)
	return
}
func (in *LoginSpec) DeepCopy() *LoginSpec {
	if in == nil {
		return nil
	}
	out := new(LoginSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *Metadata) DeepCopyInto(out *Metadata) {
	*out = *in
	if in.StoreConfig != nil {
		in, out := &in.StoreConfig, &out.StoreConfig
		*out = new(StoreConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Key != nil {
		in, out := &in.Key, &out.Key
		*out = new(SignKey)
		**out = **in
	}
	if in.Data != nil {
		in, out := &in.Data, &out.Data
		*out = make([]MetadataType, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *Metadata) DeepCopy() *Metadata {
	if in == nil {
		return nil
	}
	out := new(Metadata)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeStatus) DeepCopyInto(out *NodeStatus) {
	*out = *in
	in.StartedAt.DeepCopyInto(&out.StartedAt)
	in.UpdateTime.DeepCopyInto(&out.UpdateTime)
	return
}
func (in *NodeStatus) DeepCopy() *NodeStatus {
	if in == nil {
		return nil
	}
	out := new(NodeStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *Notes) DeepCopyInto(out *Notes) {
	*out = *in
	return
}
func (in *Notes) DeepCopy() *Notes {
	if in == nil {
		return nil
	}
	out := new(Notes)
	in.DeepCopyInto(out)
	return out
}
func (in *OCIBuilder) DeepCopyInto(out *OCIBuilder) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *OCIBuilder) DeepCopy() *OCIBuilder {
	if in == nil {
		return nil
	}
	out := new(OCIBuilder)
	in.DeepCopyInto(out)
	return out
}
func (in *OCIBuilder) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *OCIBuilderList) DeepCopyInto(out *OCIBuilderList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]OCIBuilder, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *OCIBuilderList) DeepCopy() *OCIBuilderList {
	if in == nil {
		return nil
	}
	out := new(OCIBuilderList)
	in.DeepCopyInto(out)
	return out
}
func (in *OCIBuilderList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *OCIBuilderSpec) DeepCopyInto(out *OCIBuilderSpec) {
	*out = *in
	if in.Params != nil {
		in, out := &in.Params, &out.Params
		*out = make([]Param, len(*in))
		copy(*out, *in)
	}
	if in.Login != nil {
		in, out := &in.Login, &out.Login
		*out = make([]LoginSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Build != nil {
		in, out := &in.Build, &out.Build
		*out = new(BuildSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.Push != nil {
		in, out := &in.Push, &out.Push
		*out = make([]PushSpec, len(*in))
		copy(*out, *in)
	}
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = new(Metadata)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *OCIBuilderSpec) DeepCopy() *OCIBuilderSpec {
	if in == nil {
		return nil
	}
	out := new(OCIBuilderSpec)
	in.DeepCopyInto(out)
	return out
}