func (in *StorageClass) DeepCopyInto(out *StorageClass) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.ReclaimPolicy != nil {
		in, out := &in.ReclaimPolicy, &out.ReclaimPolicy
		*out = new(v1.PersistentVolumeReclaimPolicy)
		**out = **in
	}
	if in.MountOptions != nil {
		in, out := &in.MountOptions, &out.MountOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.AllowVolumeExpansion != nil {
		in, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion
		*out = new(bool)
		**out = **in
	}
	if in.VolumeBindingMode != nil {
		in, out := &in.VolumeBindingMode, &out.VolumeBindingMode
		*out = new(VolumeBindingMode)
		**out = **in
	}
	if in.AllowedTopologies != nil {
		in, out := &in.AllowedTopologies, &out.AllowedTopologies
		*out = make([]v1.TopologySelectorTerm, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1beta1
import (
	v1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *CSIDriver) DeepCopyInto(out *CSIDriver) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}
func (in *CSIDriver) DeepCopy() *CSIDriver {
	if in == nil {
		return nil
	}
	out := new(CSIDriver)
	in.DeepCopyInto(out)
	return out
}
func (in *CSIDriver) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *CSIDriverList) DeepCopyInto(out *CSIDriverList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]CSIDriver, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *CSIDriverList) DeepCopy() *CSIDriverList {
	if in == nil {
		return nil
	}
	out := new(CSIDriverList)
	in.DeepCopyInto(out)
	return out
}
func (in *CSIDriverList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {
	*out = *in
	if in.AttachRequired != nil {
		in, out := &in.AttachRequired, &out.AttachRequired
		*out = new(bool)
		**out = **in
	}
	if in.PodInfoOnMount != nil {
		in, out := &in.PodInfoOnMount, &out.PodInfoOnMount
		*out = new(bool)
		**out = **in
	}
	return
}
func (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec {
	if in == nil {
		return nil
	}
	out := new(CSIDriverSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *CSINode) DeepCopyInto(out *CSINode) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}
func (in *CSINode) DeepCopy() *CSINode {
	if in == nil {
		return nil
	}
	out := new(CSINode)
	in.DeepCopyInto(out)
	return out
}
func (in *CSINode) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *CSINodeDriver) DeepCopyInto(out *CSINodeDriver) {
	*out = *in
	if in.TopologyKeys != nil {
		in, out := &in.TopologyKeys, &out.TopologyKeys
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *CSINodeDriver) DeepCopy() *CSINodeDriver {
	if in == nil {
		return nil
	}
	out := new(CSINodeDriver)
	in.DeepCopyInto(out)
	return out
}
func (in *CSINodeList) DeepCopyInto(out *CSINodeList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]CSINode, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *CSINodeList) DeepCopy() *CSINodeList {
	if in == nil {
		return nil
	}
	out := new(CSINodeList)
	in.DeepCopyInto(out)
	return out
}
func (in *CSINodeList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *CSINodeSpec) DeepCopyInto(out *CSINodeSpec) {
	*out = *in
	if in.Drivers != nil {
		in, out := &in.Drivers, &out.Drivers
		*out = make([]CSINodeDriver, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *CSINodeSpec) DeepCopy() *CSINodeSpec {
	if in == nil {
		return nil
	}
	out := new(CSINodeSpec)
	in.DeepCopyInto(out)
	return out
}