func (in *ServiceAccountPolicy) DeepCopy() *ServiceAccountPolicy {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountPolicy)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountPolicy.
package v1alpha1
import (
	"github.com/crossplane/crossplane-runtime/apis/common/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AuditConfig) DeepCopyInto(out *AuditConfig) {
	*out = *in
	if in.AuditLogConfigs != nil {
		in, out := &in.AuditLogConfigs, &out.AuditLogConfigs
		*out = make([]*AuditLogConfig, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(AuditLogConfig)
				(*in).DeepCopyInto(*out)
			}
		}
	}
}
func (in *AuditConfig) DeepCopy() *AuditConfig {
	if in == nil {
		return nil
	}
	out := new(AuditConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *AuditLogConfig) DeepCopyInto(out *AuditLogConfig) {
	*out = *in
	if in.ExemptedMembers != nil {
		in, out := &in.ExemptedMembers, &out.ExemptedMembers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *AuditLogConfig) DeepCopy() *AuditLogConfig {
	if in == nil {
		return nil
	}
	out := new(AuditLogConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *Binding) DeepCopyInto(out *Binding) {
	*out = *in
	if in.Condition != nil {
		in, out := &in.Condition, &out.Condition
		*out = new(Expr)
		(*in).DeepCopyInto(*out)
	}
	if in.Members != nil {
		in, out := &in.Members, &out.Members
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ServiceAccountMemberRefs != nil {
		in, out := &in.ServiceAccountMemberRefs, &out.ServiceAccountMemberRefs
		*out = make([]v1.Reference, len(*in))
		copy(*out, *in)
	}
	if in.ServiceAccountMemberSelector != nil {
		in, out := &in.ServiceAccountMemberSelector, &out.ServiceAccountMemberSelector
		*out = new(v1.Selector)
		(*in).DeepCopyInto(*out)
	}
}
func (in *Binding) DeepCopy() *Binding {
	if in == nil {
		return nil
	}
	out := new(Binding)
	in.DeepCopyInto(out)
	return out
}
func (in *Expr) DeepCopyInto(out *Expr) {
	*out = *in
	if in.Description != nil {
		in, out := &in.Description, &out.Description
		*out = new(string)
		**out = **in
	}
	if in.Location != nil {
		in, out := &in.Location, &out.Location
		*out = new(string)
		**out = **in
	}
	if in.Title != nil {
		in, out := &in.Title, &out.Title
		*out = new(string)
		**out = **in
	}
}
func (in *Expr) DeepCopy() *Expr {
	if in == nil {
		return nil
	}
	out := new(Expr)
	in.DeepCopyInto(out)
	return out
}
func (in *Policy) DeepCopyInto(out *Policy) {
	*out = *in
	if in.AuditConfigs != nil {
		in, out := &in.AuditConfigs, &out.AuditConfigs
		*out = make([]*AuditConfig, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(AuditConfig)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Bindings != nil {
		in, out := &in.Bindings, &out.Bindings
		*out = make([]*Binding, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Binding)
				(*in).DeepCopyInto(*out)
			}
		}
	}
}
func (in *Policy) DeepCopy() *Policy {
	if in == nil {
		return nil
	}
	out := new(Policy)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *ServiceAccount) DeepCopy() *ServiceAccount {
	if in == nil {
		return nil
	}
	out := new(ServiceAccount)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccount) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ServiceAccountKey) DeepCopyInto(out *ServiceAccountKey) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *ServiceAccountKey) DeepCopy() *ServiceAccountKey {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKey)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountKey) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ServiceAccountKeyList) DeepCopyInto(out *ServiceAccountKeyList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ServiceAccountKey, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *ServiceAccountKeyList) DeepCopy() *ServiceAccountKeyList {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKeyList)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountKeyList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ServiceAccountKeyObservation) DeepCopyInto(out *ServiceAccountKeyObservation) {
	*out = *in
}
func (in *ServiceAccountKeyObservation) DeepCopy() *ServiceAccountKeyObservation {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKeyObservation)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountKeyParameters) DeepCopyInto(out *ServiceAccountKeyParameters) {
	*out = *in
	if in.KeyAlgorithm != nil {
		in, out := &in.KeyAlgorithm, &out.KeyAlgorithm
		*out = new(string)
		**out = **in
	}
	if in.PrivateKeyType != nil {
		in, out := &in.PrivateKeyType, &out.PrivateKeyType
		*out = new(string)
		**out = **in
	}
	if in.PublicKeyType != nil {
		in, out := &in.PublicKeyType, &out.PublicKeyType
		*out = new(string)
		**out = **in
	}
	in.ServiceAccountReferer.DeepCopyInto(&out.ServiceAccountReferer)
}
func (in *ServiceAccountKeyParameters) DeepCopy() *ServiceAccountKeyParameters {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKeyParameters)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountKeySpec) DeepCopyInto(out *ServiceAccountKeySpec) {
	*out = *in
	in.ResourceSpec.DeepCopyInto(&out.ResourceSpec)
	in.ForProvider.DeepCopyInto(&out.ForProvider)
}
func (in *ServiceAccountKeySpec) DeepCopy() *ServiceAccountKeySpec {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKeySpec)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountKeyStatus) DeepCopyInto(out *ServiceAccountKeyStatus) {
	*out = *in
	in.ResourceStatus.DeepCopyInto(&out.ResourceStatus)
	out.AtProvider = in.AtProvider
}
func (in *ServiceAccountKeyStatus) DeepCopy() *ServiceAccountKeyStatus {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountKeyStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountList) DeepCopyInto(out *ServiceAccountList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ServiceAccount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *ServiceAccountList) DeepCopy() *ServiceAccountList {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountList)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ServiceAccountObservation) DeepCopyInto(out *ServiceAccountObservation) {
	*out = *in
}
func (in *ServiceAccountObservation) DeepCopy() *ServiceAccountObservation {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountObservation)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountParameters) DeepCopyInto(out *ServiceAccountParameters) {
	*out = *in
	if in.DisplayName != nil {
		in, out := &in.DisplayName, &out.DisplayName
		*out = new(string)
		**out = **in
	}
	if in.Description != nil {
		in, out := &in.Description, &out.Description
		*out = new(string)
		**out = **in
	}
}
func (in *ServiceAccountParameters) DeepCopy() *ServiceAccountParameters {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountParameters)
	in.DeepCopyInto(out)
	return out
}
func (in *ServiceAccountPolicy) DeepCopyInto(out *ServiceAccountPolicy) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}