// +build !ignore_autogenerated_openshift

// This file was autogenerated by deepcopy-gen. Do not edit it manually!

package api

import (
	pkg_api "k8s.io/kubernetes/pkg/api"
	conversion "k8s.io/kubernetes/pkg/conversion"
	runtime "k8s.io/kubernetes/pkg/runtime"
	reflect "reflect"
)

func init() {
	SchemeBuilder.Register(RegisterDeepCopies)
}

// RegisterDeepCopies adds deep-copy functions to the given scheme. Public
// to allow building arbitrary schemes.
func RegisterDeepCopies(scheme *runtime.Scheme) error {
	return scheme.AddGeneratedDeepCopyFuncs(
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicyReview, InType: reflect.TypeOf(&PodSecurityPolicyReview{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicyReviewSpec, InType: reflect.TypeOf(&PodSecurityPolicyReviewSpec{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicyReviewStatus, InType: reflect.TypeOf(&PodSecurityPolicyReviewStatus{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicySelfSubjectReview, InType: reflect.TypeOf(&PodSecurityPolicySelfSubjectReview{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicySelfSubjectReviewSpec, InType: reflect.TypeOf(&PodSecurityPolicySelfSubjectReviewSpec{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicySubjectReview, InType: reflect.TypeOf(&PodSecurityPolicySubjectReview{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicySubjectReviewSpec, InType: reflect.TypeOf(&PodSecurityPolicySubjectReviewSpec{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_PodSecurityPolicySubjectReviewStatus, InType: reflect.TypeOf(&PodSecurityPolicySubjectReviewStatus{})},
		conversion.GeneratedDeepCopyFunc{Fn: DeepCopy_api_ServiceAccountPodSecurityPolicyReviewStatus, InType: reflect.TypeOf(&ServiceAccountPodSecurityPolicyReviewStatus{})},
	)
}

func DeepCopy_api_PodSecurityPolicyReview(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicyReview)
		out := out.(*PodSecurityPolicyReview)
		out.TypeMeta = in.TypeMeta
		if err := DeepCopy_api_PodSecurityPolicyReviewSpec(&in.Spec, &out.Spec, c); err != nil {
			return err
		}
		if err := DeepCopy_api_PodSecurityPolicyReviewStatus(&in.Status, &out.Status, c); err != nil {
			return err
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicyReviewSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicyReviewSpec)
		out := out.(*PodSecurityPolicyReviewSpec)
		if err := pkg_api.DeepCopy_api_PodTemplateSpec(&in.Template, &out.Template, c); err != nil {
			return err
		}
		if in.ServiceAccountNames != nil {
			in, out := &in.ServiceAccountNames, &out.ServiceAccountNames
			*out = make([]string, len(*in))
			copy(*out, *in)
		} else {
			out.ServiceAccountNames = nil
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicyReviewStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicyReviewStatus)
		out := out.(*PodSecurityPolicyReviewStatus)
		if in.AllowedServiceAccounts != nil {
			in, out := &in.AllowedServiceAccounts, &out.AllowedServiceAccounts
			*out = make([]ServiceAccountPodSecurityPolicyReviewStatus, len(*in))
			for i := range *in {
				if err := DeepCopy_api_ServiceAccountPodSecurityPolicyReviewStatus(&(*in)[i], &(*out)[i], c); err != nil {
					return err
				}
			}
		} else {
			out.AllowedServiceAccounts = nil
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicySelfSubjectReview(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicySelfSubjectReview)
		out := out.(*PodSecurityPolicySelfSubjectReview)
		out.TypeMeta = in.TypeMeta
		if err := DeepCopy_api_PodSecurityPolicySelfSubjectReviewSpec(&in.Spec, &out.Spec, c); err != nil {
			return err
		}
		if err := DeepCopy_api_PodSecurityPolicySubjectReviewStatus(&in.Status, &out.Status, c); err != nil {
			return err
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicySelfSubjectReviewSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicySelfSubjectReviewSpec)
		out := out.(*PodSecurityPolicySelfSubjectReviewSpec)
		if err := pkg_api.DeepCopy_api_PodTemplateSpec(&in.Template, &out.Template, c); err != nil {
			return err
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicySubjectReview(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicySubjectReview)
		out := out.(*PodSecurityPolicySubjectReview)
		out.TypeMeta = in.TypeMeta
		if err := DeepCopy_api_PodSecurityPolicySubjectReviewSpec(&in.Spec, &out.Spec, c); err != nil {
			return err
		}
		if err := DeepCopy_api_PodSecurityPolicySubjectReviewStatus(&in.Status, &out.Status, c); err != nil {
			return err
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicySubjectReviewSpec(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicySubjectReviewSpec)
		out := out.(*PodSecurityPolicySubjectReviewSpec)
		if err := pkg_api.DeepCopy_api_PodTemplateSpec(&in.Template, &out.Template, c); err != nil {
			return err
		}
		out.User = in.User
		if in.Groups != nil {
			in, out := &in.Groups, &out.Groups
			*out = make([]string, len(*in))
			copy(*out, *in)
		} else {
			out.Groups = nil
		}
		return nil
	}
}

func DeepCopy_api_PodSecurityPolicySubjectReviewStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*PodSecurityPolicySubjectReviewStatus)
		out := out.(*PodSecurityPolicySubjectReviewStatus)
		if in.AllowedBy != nil {
			in, out := &in.AllowedBy, &out.AllowedBy
			*out = new(pkg_api.ObjectReference)
			**out = **in
		} else {
			out.AllowedBy = nil
		}
		out.Reason = in.Reason
		if err := pkg_api.DeepCopy_api_PodTemplateSpec(&in.Template, &out.Template, c); err != nil {
			return err
		}
		return nil
	}
}

func DeepCopy_api_ServiceAccountPodSecurityPolicyReviewStatus(in interface{}, out interface{}, c *conversion.Cloner) error {
	{
		in := in.(*ServiceAccountPodSecurityPolicyReviewStatus)
		out := out.(*ServiceAccountPodSecurityPolicyReviewStatus)
		if err := DeepCopy_api_PodSecurityPolicySubjectReviewStatus(&in.PodSecurityPolicySubjectReviewStatus, &out.PodSecurityPolicySubjectReviewStatus, c); err != nil {
			return err
		}
		out.Name = in.Name
		return nil
	}
}
