func (in *Image) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
package v1alpha2
import (
	v1alpha1 "github.com/pivotal/kpack/pkg/apis/core/v1alpha1"
	v1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *Build) DeepCopyInto(out *Build) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *Build) DeepCopy() *Build {
	if in == nil {
		return nil
	}
	out := new(Build)
	in.DeepCopyInto(out)
	return out
}
func (in *Build) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BuildCache) DeepCopyInto(out *BuildCache) {
	*out = *in
	return
}
func (in *BuildCache) DeepCopy() *BuildCache {
	if in == nil {
		return nil
	}
	out := new(BuildCache)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildCacheConfig) DeepCopyInto(out *BuildCacheConfig) {
	*out = *in
	if in.Volume != nil {
		in, out := &in.Volume, &out.Volume
		*out = new(BuildPersistentVolumeCache)
		**out = **in
	}
	if in.Registry != nil {
		in, out := &in.Registry, &out.Registry
		*out = new(RegistryCache)
		**out = **in
	}
	return
}
func (in *BuildCacheConfig) DeepCopy() *BuildCacheConfig {
	if in == nil {
		return nil
	}
	out := new(BuildCacheConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildList) DeepCopyInto(out *BuildList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Build, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuildList) DeepCopy() *BuildList {
	if in == nil {
		return nil
	}
	out := new(BuildList)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BuildPersistentVolumeCache) DeepCopyInto(out *BuildPersistentVolumeCache) {
	*out = *in
	return
}
func (in *BuildPersistentVolumeCache) DeepCopy() *BuildPersistentVolumeCache {
	if in == nil {
		return nil
	}
	out := new(BuildPersistentVolumeCache)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildPodBuilderConfig) DeepCopyInto(out *BuildPodBuilderConfig) {
	*out = *in
	if in.PlatformAPIs != nil {
		in, out := &in.PlatformAPIs, &out.PlatformAPIs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *BuildPodBuilderConfig) DeepCopy() *BuildPodBuilderConfig {
	if in == nil {
		return nil
	}
	out := new(BuildPodBuilderConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildPodImages) DeepCopyInto(out *BuildPodImages) {
	*out = *in
	return
}
func (in *BuildPodImages) DeepCopy() *BuildPodImages {
	if in == nil {
		return nil
	}
	out := new(BuildPodImages)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildSpec) DeepCopyInto(out *BuildSpec) {
	*out = *in
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.Builder.DeepCopyInto(&out.Builder)
	in.Source.DeepCopyInto(&out.Source)
	if in.Cache != nil {
		in, out := &in.Cache, &out.Cache
		*out = new(BuildCacheConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = make(Services, len(*in))
		copy(*out, *in)
	}
	if in.CNBBindings != nil {
		in, out := &in.CNBBindings, &out.CNBBindings
		*out = make(v1alpha1.CNBBindings, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]v1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Resources.DeepCopyInto(&out.Resources)
	if in.LastBuild != nil {
		in, out := &in.LastBuild, &out.LastBuild
		*out = new(LastBuild)
		**out = **in
	}
	if in.Notary != nil {
		in, out := &in.Notary, &out.Notary
		*out = new(v1alpha1.NotaryConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Cosign != nil {
		in, out := &in.Cosign, &out.Cosign
		*out = new(CosignConfig)
		(*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.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.RuntimeClassName != nil {
		in, out := &in.RuntimeClassName, &out.RuntimeClassName
		*out = new(string)
		**out = **in
	}
	return
}
func (in *BuildSpec) DeepCopy() *BuildSpec {
	if in == nil {
		return nil
	}
	out := new(BuildSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildStack) DeepCopyInto(out *BuildStack) {
	*out = *in
	return
}
func (in *BuildStack) DeepCopy() *BuildStack {
	if in == nil {
		return nil
	}
	out := new(BuildStack)
	in.DeepCopyInto(out)
	return out
}
func (in *BuildStatus) DeepCopyInto(out *BuildStatus) {
	*out = *in
	in.Status.DeepCopyInto(&out.Status)
	if in.BuildMetadata != nil {
		in, out := &in.BuildMetadata, &out.BuildMetadata
		*out = make(v1alpha1.BuildpackMetadataList, len(*in))
		copy(*out, *in)
	}
	out.Stack = in.Stack
	if in.StepStates != nil {
		in, out := &in.StepStates, &out.StepStates
		*out = make([]v1.ContainerState, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.StepsCompleted != nil {
		in, out := &in.StepsCompleted, &out.StepsCompleted
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *BuildStatus) DeepCopy() *BuildStatus {
	if in == nil {
		return nil
	}
	out := new(BuildStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *Builder) DeepCopyInto(out *Builder) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *Builder) DeepCopy() *Builder {
	if in == nil {
		return nil
	}
	out := new(Builder)
	in.DeepCopyInto(out)
	return out
}
func (in *Builder) DeepCopyObjectMetaAccessor() metav1.ObjectMetaAccessor {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *Builder) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BuilderList) DeepCopyInto(out *BuilderList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Builder, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuilderList) DeepCopy() *BuilderList {
	if in == nil {
		return nil
	}
	out := new(BuilderList)
	in.DeepCopyInto(out)
	return out
}
func (in *BuilderList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *BuilderRecord) DeepCopyInto(out *BuilderRecord) {
	*out = *in
	out.Stack = in.Stack
	if in.Buildpacks != nil {
		in, out := &in.Buildpacks, &out.Buildpacks
		*out = make(v1alpha1.BuildpackMetadataList, len(*in))
		copy(*out, *in)
	}
	if in.Order != nil {
		in, out := &in.Order, &out.Order
		*out = make([]v1alpha1.OrderEntry, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuilderRecord) DeepCopy() *BuilderRecord {
	if in == nil {
		return nil
	}
	out := new(BuilderRecord)
	in.DeepCopyInto(out)
	return out
}
func (in *BuilderSpec) DeepCopyInto(out *BuilderSpec) {
	*out = *in
	out.Stack = in.Stack
	out.Store = in.Store
	if in.Order != nil {
		in, out := &in.Order, &out.Order
		*out = make([]v1alpha1.OrderEntry, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *BuilderSpec) DeepCopy() *BuilderSpec {
	if in == nil {
		return nil
	}
	out := new(BuilderSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *BuilderStatus) DeepCopyInto(out *BuilderStatus) {
	*out = *in
	in.Status.DeepCopyInto(&out.Status)
	if in.BuilderMetadata != nil {
		in, out := &in.BuilderMetadata, &out.BuilderMetadata
		*out = make(v1alpha1.BuildpackMetadataList, len(*in))
		copy(*out, *in)
	}
	if in.Order != nil {
		in, out := &in.Order, &out.Order
		*out = make([]v1alpha1.OrderEntry, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	out.Stack = in.Stack
	return
}
func (in *BuilderStatus) DeepCopy() *BuilderStatus {
	if in == nil {
		return nil
	}
	out := new(BuilderStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterBuilder) DeepCopyInto(out *ClusterBuilder) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *ClusterBuilder) DeepCopy() *ClusterBuilder {
	if in == nil {
		return nil
	}
	out := new(ClusterBuilder)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterBuilder) DeepCopyObjectMetaAccessor() metav1.ObjectMetaAccessor {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterBuilder) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterBuilderList) DeepCopyInto(out *ClusterBuilderList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClusterBuilder, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ClusterBuilderList) DeepCopy() *ClusterBuilderList {
	if in == nil {
		return nil
	}
	out := new(ClusterBuilderList)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterBuilderList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterBuilderSpec) DeepCopyInto(out *ClusterBuilderSpec) {
	*out = *in
	in.BuilderSpec.DeepCopyInto(&out.BuilderSpec)
	out.ServiceAccountRef = in.ServiceAccountRef
	return
}
func (in *ClusterBuilderSpec) DeepCopy() *ClusterBuilderSpec {
	if in == nil {
		return nil
	}
	out := new(ClusterBuilderSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStack) DeepCopyInto(out *ClusterStack) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *ClusterStack) DeepCopy() *ClusterStack {
	if in == nil {
		return nil
	}
	out := new(ClusterStack)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStack) DeepCopyObjectMetaAccessor() metav1.ObjectMetaAccessor {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStack) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStackList) DeepCopyInto(out *ClusterStackList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClusterStack, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ClusterStackList) DeepCopy() *ClusterStackList {
	if in == nil {
		return nil
	}
	out := new(ClusterStackList)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStackList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStackSpec) DeepCopyInto(out *ClusterStackSpec) {
	*out = *in
	out.BuildImage = in.BuildImage
	out.RunImage = in.RunImage
	if in.ServiceAccountRef != nil {
		in, out := &in.ServiceAccountRef, &out.ServiceAccountRef
		*out = new(v1.ObjectReference)
		**out = **in
	}
	return
}
func (in *ClusterStackSpec) DeepCopy() *ClusterStackSpec {
	if in == nil {
		return nil
	}
	out := new(ClusterStackSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStackSpecImage) DeepCopyInto(out *ClusterStackSpecImage) {
	*out = *in
	return
}
func (in *ClusterStackSpecImage) DeepCopy() *ClusterStackSpecImage {
	if in == nil {
		return nil
	}
	out := new(ClusterStackSpecImage)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStackStatus) DeepCopyInto(out *ClusterStackStatus) {
	*out = *in
	in.Status.DeepCopyInto(&out.Status)
	in.ResolvedClusterStack.DeepCopyInto(&out.ResolvedClusterStack)
	return
}
func (in *ClusterStackStatus) DeepCopy() *ClusterStackStatus {
	if in == nil {
		return nil
	}
	out := new(ClusterStackStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStackStatusImage) DeepCopyInto(out *ClusterStackStatusImage) {
	*out = *in
	return
}
func (in *ClusterStackStatusImage) DeepCopy() *ClusterStackStatusImage {
	if in == nil {
		return nil
	}
	out := new(ClusterStackStatusImage)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStore) DeepCopyInto(out *ClusterStore) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *ClusterStore) DeepCopy() *ClusterStore {
	if in == nil {
		return nil
	}
	out := new(ClusterStore)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStore) DeepCopyObjectMetaAccessor() metav1.ObjectMetaAccessor {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStore) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStoreList) DeepCopyInto(out *ClusterStoreList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClusterStore, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ClusterStoreList) DeepCopy() *ClusterStoreList {
	if in == nil {
		return nil
	}
	out := new(ClusterStoreList)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStoreList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ClusterStoreSpec) DeepCopyInto(out *ClusterStoreSpec) {
	*out = *in
	if in.Sources != nil {
		in, out := &in.Sources, &out.Sources
		*out = make([]v1alpha1.StoreImage, len(*in))
		copy(*out, *in)
	}
	if in.ServiceAccountRef != nil {
		in, out := &in.ServiceAccountRef, &out.ServiceAccountRef
		*out = new(v1.ObjectReference)
		**out = **in
	}
	return
}
func (in *ClusterStoreSpec) DeepCopy() *ClusterStoreSpec {
	if in == nil {
		return nil
	}
	out := new(ClusterStoreSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterStoreStatus) DeepCopyInto(out *ClusterStoreStatus) {
	*out = *in
	in.Status.DeepCopyInto(&out.Status)
	if in.Buildpacks != nil {
		in, out := &in.Buildpacks, &out.Buildpacks
		*out = make([]v1alpha1.StoreBuildpack, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ClusterStoreStatus) DeepCopy() *ClusterStoreStatus {
	if in == nil {
		return nil
	}
	out := new(ClusterStoreStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *CosignAnnotation) DeepCopyInto(out *CosignAnnotation) {
	*out = *in
	return
}
func (in *CosignAnnotation) DeepCopy() *CosignAnnotation {
	if in == nil {
		return nil
	}
	out := new(CosignAnnotation)
	in.DeepCopyInto(out)
	return out
}
func (in *CosignConfig) DeepCopyInto(out *CosignConfig) {
	*out = *in
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make([]CosignAnnotation, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *CosignConfig) DeepCopy() *CosignConfig {
	if in == nil {
		return nil
	}
	out := new(CosignConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *Image) DeepCopyInto(out *Image) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *Image) DeepCopy() *Image {
	if in == nil {
		return nil
	}
	out := new(Image)
	in.DeepCopyInto(out)
	return out
}