func (in *Descriptor) DeepCopy() *Descriptor {
	if in == nil {
		return nil
	}
	out := new(Descriptor)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Descriptor.
package v1
func (in *Config) DeepCopyInto(out *Config) {
	*out = *in
	if in.Cmd != nil {
		in, out := &in.Cmd, &out.Cmd
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Healthcheck != nil {
		in, out := &in.Healthcheck, &out.Healthcheck
		*out = new(HealthConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Entrypoint != nil {
		in, out := &in.Entrypoint, &out.Entrypoint
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]string, len(*in))
		copy(*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.OnBuild != nil {
		in, out := &in.OnBuild, &out.OnBuild
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make(map[string]struct{}, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.ExposedPorts != nil {
		in, out := &in.ExposedPorts, &out.ExposedPorts
		*out = make(map[string]struct{}, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Shell != nil {
		in, out := &in.Shell, &out.Shell
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *Config) DeepCopy() *Config {
	if in == nil {
		return nil
	}
	out := new(Config)
	in.DeepCopyInto(out)
	return out
}
func (in *ConfigFile) DeepCopyInto(out *ConfigFile) {
	*out = *in
	in.Created.DeepCopyInto(&out.Created)
	if in.History != nil {
		in, out := &in.History, &out.History
		*out = make([]History, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.RootFS.DeepCopyInto(&out.RootFS)
	in.Config.DeepCopyInto(&out.Config)
	in.ContainerConfig.DeepCopyInto(&out.ContainerConfig)
	return
}
func (in *ConfigFile) DeepCopy() *ConfigFile {
	if in == nil {
		return nil
	}
	out := new(ConfigFile)
	in.DeepCopyInto(out)
	return out
}
func (in *Descriptor) DeepCopyInto(out *Descriptor) {
	*out = *in
	out.Digest = in.Digest
	if in.URLs != nil {
		in, out := &in.URLs, &out.URLs
		*out = make([]string, len(*in))
		copy(*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.Platform != nil {
		in, out := &in.Platform, &out.Platform
		*out = new(Platform)
		(*in).DeepCopyInto(*out)
	}
	return
}