// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

// Code generated by "deep-copy -type KubeAdmissionControlConfigV1Alpha1 -type KubeAPIServerConfigV1Alpha1 -type KubeAuditPolicyConfigV1Alpha1 -type KubeAuthenticationConfigV1Alpha1 -type KubeAuthorizerConfigV1Alpha1 -type KubeControllerManagerConfigV1Alpha1 -type KubeEtcdEncryptionConfigV1Alpha1 -type KubeFlannelCNIConfigV1Alpha1 -type KubeNetworkConfigV1Alpha1 -type KubeProxyConfigV1Alpha1 -type KubeSchedulerConfigV1Alpha1 -pointer-receiver -header-file ../../../../../hack/boilerplate.txt -o deep_copy.generated.go ."; DO NOT EDIT.

package k8s

import (
	"github.com/siderolabs/talos/pkg/machinery/config/types/meta"
)

// DeepCopy generates a deep copy of *KubeAdmissionControlConfigV1Alpha1.
func (o *KubeAdmissionControlConfigV1Alpha1) DeepCopy() *KubeAdmissionControlConfigV1Alpha1 {
	var cp KubeAdmissionControlConfigV1Alpha1 = *o
	{
		retV := o.PluginConfig.DeepCopy()
		cp.PluginConfig = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeAPIServerConfigV1Alpha1.
func (o *KubeAPIServerConfigV1Alpha1) DeepCopy() *KubeAPIServerConfigV1Alpha1 {
	var cp KubeAPIServerConfigV1Alpha1 = *o
	if o.PodArgs != nil {
		cp.PodArgs = make(map[string]meta.ArgValue, len(o.PodArgs))
		for k2, v2 := range o.PodArgs {
			cp.PodArgs[k2] = v2
		}
	}
	if o.PodEnv != nil {
		cp.PodEnv = make(map[string]string, len(o.PodEnv))
		for k2, v2 := range o.PodEnv {
			cp.PodEnv[k2] = v2
		}
	}
	{
		retV := o.PodResources.Requests.DeepCopy()
		cp.PodResources.Requests = *retV
	}
	{
		retV := o.PodResources.Limits.DeepCopy()
		cp.PodResources.Limits = *retV
	}
	if o.PodAPIPort != nil {
		cp.PodAPIPort = new(int)
		*cp.PodAPIPort = *o.PodAPIPort
	}
	if o.PodCertExtraSANs != nil {
		cp.PodCertExtraSANs = make([]string, len(o.PodCertExtraSANs))
		copy(cp.PodCertExtraSANs, o.PodCertExtraSANs)
	}
	if o.PodStartupProbes != nil {
		cp.PodStartupProbes = new(bool)
		*cp.PodStartupProbes = *o.PodStartupProbes
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeAuditPolicyConfigV1Alpha1.
func (o *KubeAuditPolicyConfigV1Alpha1) DeepCopy() *KubeAuditPolicyConfigV1Alpha1 {
	var cp KubeAuditPolicyConfigV1Alpha1 = *o
	{
		retV := o.AuditConfig.DeepCopy()
		cp.AuditConfig = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeAuthenticationConfigV1Alpha1.
func (o *KubeAuthenticationConfigV1Alpha1) DeepCopy() *KubeAuthenticationConfigV1Alpha1 {
	var cp KubeAuthenticationConfigV1Alpha1 = *o
	{
		retV := o.AuthConfig.DeepCopy()
		cp.AuthConfig = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeAuthorizerConfigV1Alpha1.
func (o *KubeAuthorizerConfigV1Alpha1) DeepCopy() *KubeAuthorizerConfigV1Alpha1 {
	var cp KubeAuthorizerConfigV1Alpha1 = *o
	{
		retV := o.AuthorizerWebhook.DeepCopy()
		cp.AuthorizerWebhook = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeControllerManagerConfigV1Alpha1.
func (o *KubeControllerManagerConfigV1Alpha1) DeepCopy() *KubeControllerManagerConfigV1Alpha1 {
	var cp KubeControllerManagerConfigV1Alpha1 = *o
	if o.PodEnabled != nil {
		cp.PodEnabled = new(bool)
		*cp.PodEnabled = *o.PodEnabled
	}
	if o.PodArgs != nil {
		cp.PodArgs = make(map[string]meta.ArgValue, len(o.PodArgs))
		for k2, v2 := range o.PodArgs {
			cp.PodArgs[k2] = v2
		}
	}
	if o.PodEnv != nil {
		cp.PodEnv = make(map[string]string, len(o.PodEnv))
		for k2, v2 := range o.PodEnv {
			cp.PodEnv[k2] = v2
		}
	}
	{
		retV := o.PodResources.Requests.DeepCopy()
		cp.PodResources.Requests = *retV
	}
	{
		retV := o.PodResources.Limits.DeepCopy()
		cp.PodResources.Limits = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeEtcdEncryptionConfigV1Alpha1.
func (o *KubeEtcdEncryptionConfigV1Alpha1) DeepCopy() *KubeEtcdEncryptionConfigV1Alpha1 {
	var cp KubeEtcdEncryptionConfigV1Alpha1 = *o
	{
		retV := o.Config.DeepCopy()
		cp.Config = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeFlannelCNIConfigV1Alpha1.
func (o *KubeFlannelCNIConfigV1Alpha1) DeepCopy() *KubeFlannelCNIConfigV1Alpha1 {
	var cp KubeFlannelCNIConfigV1Alpha1 = *o
	{
		retV := o.FlannelBackendExtraConfig.DeepCopy()
		cp.FlannelBackendExtraConfig = *retV
	}
	{
		retV := o.FlannelResources.Requests.DeepCopy()
		cp.FlannelResources.Requests = *retV
	}
	{
		retV := o.FlannelResources.Limits.DeepCopy()
		cp.FlannelResources.Limits = *retV
	}
	if o.FlannelExtraArgs != nil {
		cp.FlannelExtraArgs = make([]string, len(o.FlannelExtraArgs))
		copy(cp.FlannelExtraArgs, o.FlannelExtraArgs)
	}
	if o.FlannelKubeNetworkPoliciesEnabled != nil {
		cp.FlannelKubeNetworkPoliciesEnabled = new(bool)
		*cp.FlannelKubeNetworkPoliciesEnabled = *o.FlannelKubeNetworkPoliciesEnabled
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeNetworkConfigV1Alpha1.
func (o *KubeNetworkConfigV1Alpha1) DeepCopy() *KubeNetworkConfigV1Alpha1 {
	var cp KubeNetworkConfigV1Alpha1 = *o
	if o.NetworkPodSubnets != nil {
		cp.NetworkPodSubnets = make([]meta.Prefix, len(o.NetworkPodSubnets))
		copy(cp.NetworkPodSubnets, o.NetworkPodSubnets)
	}
	if o.NetworkServiceSubnets != nil {
		cp.NetworkServiceSubnets = make([]meta.Prefix, len(o.NetworkServiceSubnets))
		copy(cp.NetworkServiceSubnets, o.NetworkServiceSubnets)
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeProxyConfigV1Alpha1.
func (o *KubeProxyConfigV1Alpha1) DeepCopy() *KubeProxyConfigV1Alpha1 {
	var cp KubeProxyConfigV1Alpha1 = *o
	if o.ProxyEnabled != nil {
		cp.ProxyEnabled = new(bool)
		*cp.ProxyEnabled = *o.ProxyEnabled
	}
	{
		retV := o.ProxyConfig.DeepCopy()
		cp.ProxyConfig = *retV
	}
	if o.ProxyExtraArgs != nil {
		cp.ProxyExtraArgs = make(map[string]meta.ArgValue, len(o.ProxyExtraArgs))
		for k2, v2 := range o.ProxyExtraArgs {
			cp.ProxyExtraArgs[k2] = v2
		}
	}
	{
		retV := o.ProxyResources.Requests.DeepCopy()
		cp.ProxyResources.Requests = *retV
	}
	{
		retV := o.ProxyResources.Limits.DeepCopy()
		cp.ProxyResources.Limits = *retV
	}
	return &cp
}

// DeepCopy generates a deep copy of *KubeSchedulerConfigV1Alpha1.
func (o *KubeSchedulerConfigV1Alpha1) DeepCopy() *KubeSchedulerConfigV1Alpha1 {
	var cp KubeSchedulerConfigV1Alpha1 = *o
	if o.PodEnabled != nil {
		cp.PodEnabled = new(bool)
		*cp.PodEnabled = *o.PodEnabled
	}
	{
		retV := o.PodConfig.DeepCopy()
		cp.PodConfig = *retV
	}
	if o.PodArgs != nil {
		cp.PodArgs = make(map[string]meta.ArgValue, len(o.PodArgs))
		for k2, v2 := range o.PodArgs {
			cp.PodArgs[k2] = v2
		}
	}
	if o.PodEnv != nil {
		cp.PodEnv = make(map[string]string, len(o.PodEnv))
		for k2, v2 := range o.PodEnv {
			cp.PodEnv[k2] = v2
		}
	}
	{
		retV := o.PodResources.Requests.DeepCopy()
		cp.PodResources.Requests = *retV
	}
	{
		retV := o.PodResources.Limits.DeepCopy()
		cp.PodResources.Limits = *retV
	}
	return &cp
}
