//go:build !ignore_autogenerated

/*
Copyright (c) Microsoft Corporation.
Licensed under the MIT license.
*/

// Code generated by controller-gen. DO NOT EDIT.

package storage

import (
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
	"github.com/Azure/azure-service-operator/v2/pkg/genruntime/core"
	"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DynamicMetricCriteria) DeepCopyInto(out *DynamicMetricCriteria) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AlertSensitivity != nil {
		in, out := &in.AlertSensitivity, &out.AlertSensitivity
		*out = new(string)
		**out = **in
	}
	if in.CriterionType != nil {
		in, out := &in.CriterionType, &out.CriterionType
		*out = new(string)
		**out = **in
	}
	if in.Dimensions != nil {
		in, out := &in.Dimensions, &out.Dimensions
		*out = make([]MetricDimension, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.FailingPeriods != nil {
		in, out := &in.FailingPeriods, &out.FailingPeriods
		*out = new(DynamicThresholdFailingPeriods)
		(*in).DeepCopyInto(*out)
	}
	if in.IgnoreDataBefore != nil {
		in, out := &in.IgnoreDataBefore, &out.IgnoreDataBefore
		*out = new(string)
		**out = **in
	}
	if in.MetricName != nil {
		in, out := &in.MetricName, &out.MetricName
		*out = new(string)
		**out = **in
	}
	if in.MetricNamespace != nil {
		in, out := &in.MetricNamespace, &out.MetricNamespace
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SkipMetricValidation != nil {
		in, out := &in.SkipMetricValidation, &out.SkipMetricValidation
		*out = new(bool)
		**out = **in
	}
	if in.TimeAggregation != nil {
		in, out := &in.TimeAggregation, &out.TimeAggregation
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicMetricCriteria.
func (in *DynamicMetricCriteria) DeepCopy() *DynamicMetricCriteria {
	if in == nil {
		return nil
	}
	out := new(DynamicMetricCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DynamicMetricCriteria_STATUS) DeepCopyInto(out *DynamicMetricCriteria_STATUS) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AlertSensitivity != nil {
		in, out := &in.AlertSensitivity, &out.AlertSensitivity
		*out = new(string)
		**out = **in
	}
	if in.CriterionType != nil {
		in, out := &in.CriterionType, &out.CriterionType
		*out = new(string)
		**out = **in
	}
	if in.Dimensions != nil {
		in, out := &in.Dimensions, &out.Dimensions
		*out = make([]MetricDimension_STATUS, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.FailingPeriods != nil {
		in, out := &in.FailingPeriods, &out.FailingPeriods
		*out = new(DynamicThresholdFailingPeriods_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.IgnoreDataBefore != nil {
		in, out := &in.IgnoreDataBefore, &out.IgnoreDataBefore
		*out = new(string)
		**out = **in
	}
	if in.MetricName != nil {
		in, out := &in.MetricName, &out.MetricName
		*out = new(string)
		**out = **in
	}
	if in.MetricNamespace != nil {
		in, out := &in.MetricNamespace, &out.MetricNamespace
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SkipMetricValidation != nil {
		in, out := &in.SkipMetricValidation, &out.SkipMetricValidation
		*out = new(bool)
		**out = **in
	}
	if in.TimeAggregation != nil {
		in, out := &in.TimeAggregation, &out.TimeAggregation
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicMetricCriteria_STATUS.
func (in *DynamicMetricCriteria_STATUS) DeepCopy() *DynamicMetricCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(DynamicMetricCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DynamicThresholdFailingPeriods) DeepCopyInto(out *DynamicThresholdFailingPeriods) {
	*out = *in
	if in.MinFailingPeriodsToAlert != nil {
		in, out := &in.MinFailingPeriodsToAlert, &out.MinFailingPeriodsToAlert
		*out = new(float64)
		**out = **in
	}
	if in.NumberOfEvaluationPeriods != nil {
		in, out := &in.NumberOfEvaluationPeriods, &out.NumberOfEvaluationPeriods
		*out = new(float64)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicThresholdFailingPeriods.
func (in *DynamicThresholdFailingPeriods) DeepCopy() *DynamicThresholdFailingPeriods {
	if in == nil {
		return nil
	}
	out := new(DynamicThresholdFailingPeriods)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DynamicThresholdFailingPeriods_STATUS) DeepCopyInto(out *DynamicThresholdFailingPeriods_STATUS) {
	*out = *in
	if in.MinFailingPeriodsToAlert != nil {
		in, out := &in.MinFailingPeriodsToAlert, &out.MinFailingPeriodsToAlert
		*out = new(float64)
		**out = **in
	}
	if in.NumberOfEvaluationPeriods != nil {
		in, out := &in.NumberOfEvaluationPeriods, &out.NumberOfEvaluationPeriods
		*out = new(float64)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicThresholdFailingPeriods_STATUS.
func (in *DynamicThresholdFailingPeriods_STATUS) DeepCopy() *DynamicThresholdFailingPeriods_STATUS {
	if in == nil {
		return nil
	}
	out := new(DynamicThresholdFailingPeriods_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlert) DeepCopyInto(out *MetricAlert) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlert.
func (in *MetricAlert) DeepCopy() *MetricAlert {
	if in == nil {
		return nil
	}
	out := new(MetricAlert)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MetricAlert) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertAction) DeepCopyInto(out *MetricAlertAction) {
	*out = *in
	if in.ActionGroupId != nil {
		in, out := &in.ActionGroupId, &out.ActionGroupId
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.WebHookProperties != nil {
		in, out := &in.WebHookProperties, &out.WebHookProperties
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertAction.
func (in *MetricAlertAction) DeepCopy() *MetricAlertAction {
	if in == nil {
		return nil
	}
	out := new(MetricAlertAction)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertAction_STATUS) DeepCopyInto(out *MetricAlertAction_STATUS) {
	*out = *in
	if in.ActionGroupId != nil {
		in, out := &in.ActionGroupId, &out.ActionGroupId
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.WebHookProperties != nil {
		in, out := &in.WebHookProperties, &out.WebHookProperties
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertAction_STATUS.
func (in *MetricAlertAction_STATUS) DeepCopy() *MetricAlertAction_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricAlertAction_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertCriteria) DeepCopyInto(out *MetricAlertCriteria) {
	*out = *in
	if in.MicrosoftAzureMonitorMultipleResourceMultipleMetric != nil {
		in, out := &in.MicrosoftAzureMonitorMultipleResourceMultipleMetric, &out.MicrosoftAzureMonitorMultipleResourceMultipleMetric
		*out = new(MetricAlertMultipleResourceMultipleMetricCriteria)
		(*in).DeepCopyInto(*out)
	}
	if in.MicrosoftAzureMonitorSingleResourceMultipleMetric != nil {
		in, out := &in.MicrosoftAzureMonitorSingleResourceMultipleMetric, &out.MicrosoftAzureMonitorSingleResourceMultipleMetric
		*out = new(MetricAlertSingleResourceMultipleMetricCriteria)
		(*in).DeepCopyInto(*out)
	}
	if in.MicrosoftAzureMonitorWebtestLocationAvailability != nil {
		in, out := &in.MicrosoftAzureMonitorWebtestLocationAvailability, &out.MicrosoftAzureMonitorWebtestLocationAvailability
		*out = new(WebtestLocationAvailabilityCriteria)
		(*in).DeepCopyInto(*out)
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertCriteria.
func (in *MetricAlertCriteria) DeepCopy() *MetricAlertCriteria {
	if in == nil {
		return nil
	}
	out := new(MetricAlertCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertCriteria_STATUS) DeepCopyInto(out *MetricAlertCriteria_STATUS) {
	*out = *in
	if in.MicrosoftAzureMonitorMultipleResourceMultipleMetric != nil {
		in, out := &in.MicrosoftAzureMonitorMultipleResourceMultipleMetric, &out.MicrosoftAzureMonitorMultipleResourceMultipleMetric
		*out = new(MetricAlertMultipleResourceMultipleMetricCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.MicrosoftAzureMonitorSingleResourceMultipleMetric != nil {
		in, out := &in.MicrosoftAzureMonitorSingleResourceMultipleMetric, &out.MicrosoftAzureMonitorSingleResourceMultipleMetric
		*out = new(MetricAlertSingleResourceMultipleMetricCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.MicrosoftAzureMonitorWebtestLocationAvailability != nil {
		in, out := &in.MicrosoftAzureMonitorWebtestLocationAvailability, &out.MicrosoftAzureMonitorWebtestLocationAvailability
		*out = new(WebtestLocationAvailabilityCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertCriteria_STATUS.
func (in *MetricAlertCriteria_STATUS) DeepCopy() *MetricAlertCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricAlertCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertList) DeepCopyInto(out *MetricAlertList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]MetricAlert, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertList.
func (in *MetricAlertList) DeepCopy() *MetricAlertList {
	if in == nil {
		return nil
	}
	out := new(MetricAlertList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MetricAlertList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertMultipleResourceMultipleMetricCriteria) DeepCopyInto(out *MetricAlertMultipleResourceMultipleMetricCriteria) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AllOf != nil {
		in, out := &in.AllOf, &out.AllOf
		*out = make([]MultiMetricCriteria, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertMultipleResourceMultipleMetricCriteria.
func (in *MetricAlertMultipleResourceMultipleMetricCriteria) DeepCopy() *MetricAlertMultipleResourceMultipleMetricCriteria {
	if in == nil {
		return nil
	}
	out := new(MetricAlertMultipleResourceMultipleMetricCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertMultipleResourceMultipleMetricCriteria_STATUS) DeepCopyInto(out *MetricAlertMultipleResourceMultipleMetricCriteria_STATUS) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AllOf != nil {
		in, out := &in.AllOf, &out.AllOf
		*out = make([]MultiMetricCriteria_STATUS, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertMultipleResourceMultipleMetricCriteria_STATUS.
func (in *MetricAlertMultipleResourceMultipleMetricCriteria_STATUS) DeepCopy() *MetricAlertMultipleResourceMultipleMetricCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricAlertMultipleResourceMultipleMetricCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertOperatorSpec) DeepCopyInto(out *MetricAlertOperatorSpec) {
	*out = *in
	if in.ConfigMapExpressions != nil {
		in, out := &in.ConfigMapExpressions, &out.ConfigMapExpressions
		*out = make([]*core.DestinationExpression, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(core.DestinationExpression)
				**out = **in
			}
		}
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SecretExpressions != nil {
		in, out := &in.SecretExpressions, &out.SecretExpressions
		*out = make([]*core.DestinationExpression, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(core.DestinationExpression)
				**out = **in
			}
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertOperatorSpec.
func (in *MetricAlertOperatorSpec) DeepCopy() *MetricAlertOperatorSpec {
	if in == nil {
		return nil
	}
	out := new(MetricAlertOperatorSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertSingleResourceMultipleMetricCriteria) DeepCopyInto(out *MetricAlertSingleResourceMultipleMetricCriteria) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AllOf != nil {
		in, out := &in.AllOf, &out.AllOf
		*out = make([]MetricCriteria, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertSingleResourceMultipleMetricCriteria.
func (in *MetricAlertSingleResourceMultipleMetricCriteria) DeepCopy() *MetricAlertSingleResourceMultipleMetricCriteria {
	if in == nil {
		return nil
	}
	out := new(MetricAlertSingleResourceMultipleMetricCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlertSingleResourceMultipleMetricCriteria_STATUS) DeepCopyInto(out *MetricAlertSingleResourceMultipleMetricCriteria_STATUS) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.AllOf != nil {
		in, out := &in.AllOf, &out.AllOf
		*out = make([]MetricCriteria_STATUS, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlertSingleResourceMultipleMetricCriteria_STATUS.
func (in *MetricAlertSingleResourceMultipleMetricCriteria_STATUS) DeepCopy() *MetricAlertSingleResourceMultipleMetricCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricAlertSingleResourceMultipleMetricCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlert_STATUS) DeepCopyInto(out *MetricAlert_STATUS) {
	*out = *in
	if in.Actions != nil {
		in, out := &in.Actions, &out.Actions
		*out = make([]MetricAlertAction_STATUS, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AutoMitigate != nil {
		in, out := &in.AutoMitigate, &out.AutoMitigate
		*out = new(bool)
		**out = **in
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]conditions.Condition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Criteria != nil {
		in, out := &in.Criteria, &out.Criteria
		*out = new(MetricAlertCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.Description != nil {
		in, out := &in.Description, &out.Description
		*out = new(string)
		**out = **in
	}
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.EvaluationFrequency != nil {
		in, out := &in.EvaluationFrequency, &out.EvaluationFrequency
		*out = new(string)
		**out = **in
	}
	if in.Id != nil {
		in, out := &in.Id, &out.Id
		*out = new(string)
		**out = **in
	}
	if in.IsMigrated != nil {
		in, out := &in.IsMigrated, &out.IsMigrated
		*out = new(bool)
		**out = **in
	}
	if in.LastUpdatedTime != nil {
		in, out := &in.LastUpdatedTime, &out.LastUpdatedTime
		*out = new(string)
		**out = **in
	}
	if in.Location != nil {
		in, out := &in.Location, &out.Location
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Scopes != nil {
		in, out := &in.Scopes, &out.Scopes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Severity != nil {
		in, out := &in.Severity, &out.Severity
		*out = new(int)
		**out = **in
	}
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.TargetResourceRegion != nil {
		in, out := &in.TargetResourceRegion, &out.TargetResourceRegion
		*out = new(string)
		**out = **in
	}
	if in.TargetResourceType != nil {
		in, out := &in.TargetResourceType, &out.TargetResourceType
		*out = new(string)
		**out = **in
	}
	if in.Type != nil {
		in, out := &in.Type, &out.Type
		*out = new(string)
		**out = **in
	}
	if in.WindowSize != nil {
		in, out := &in.WindowSize, &out.WindowSize
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlert_STATUS.
func (in *MetricAlert_STATUS) DeepCopy() *MetricAlert_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricAlert_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricAlert_Spec) DeepCopyInto(out *MetricAlert_Spec) {
	*out = *in
	if in.Actions != nil {
		in, out := &in.Actions, &out.Actions
		*out = make([]MetricAlertAction, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AutoMitigate != nil {
		in, out := &in.AutoMitigate, &out.AutoMitigate
		*out = new(bool)
		**out = **in
	}
	if in.Criteria != nil {
		in, out := &in.Criteria, &out.Criteria
		*out = new(MetricAlertCriteria)
		(*in).DeepCopyInto(*out)
	}
	if in.Description != nil {
		in, out := &in.Description, &out.Description
		*out = new(string)
		**out = **in
	}
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.EvaluationFrequency != nil {
		in, out := &in.EvaluationFrequency, &out.EvaluationFrequency
		*out = new(string)
		**out = **in
	}
	if in.Location != nil {
		in, out := &in.Location, &out.Location
		*out = new(string)
		**out = **in
	}
	if in.OperatorSpec != nil {
		in, out := &in.OperatorSpec, &out.OperatorSpec
		*out = new(MetricAlertOperatorSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.Owner != nil {
		in, out := &in.Owner, &out.Owner
		*out = new(genruntime.KnownResourceReference)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.ScopesReferences != nil {
		in, out := &in.ScopesReferences, &out.ScopesReferences
		*out = make([]genruntime.ResourceReference, len(*in))
		copy(*out, *in)
	}
	if in.Severity != nil {
		in, out := &in.Severity, &out.Severity
		*out = new(int)
		**out = **in
	}
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.TargetResourceRegion != nil {
		in, out := &in.TargetResourceRegion, &out.TargetResourceRegion
		*out = new(string)
		**out = **in
	}
	if in.TargetResourceType != nil {
		in, out := &in.TargetResourceType, &out.TargetResourceType
		*out = new(string)
		**out = **in
	}
	if in.WindowSize != nil {
		in, out := &in.WindowSize, &out.WindowSize
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricAlert_Spec.
func (in *MetricAlert_Spec) DeepCopy() *MetricAlert_Spec {
	if in == nil {
		return nil
	}
	out := new(MetricAlert_Spec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricCriteria) DeepCopyInto(out *MetricCriteria) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.CriterionType != nil {
		in, out := &in.CriterionType, &out.CriterionType
		*out = new(string)
		**out = **in
	}
	if in.Dimensions != nil {
		in, out := &in.Dimensions, &out.Dimensions
		*out = make([]MetricDimension, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.MetricName != nil {
		in, out := &in.MetricName, &out.MetricName
		*out = new(string)
		**out = **in
	}
	if in.MetricNamespace != nil {
		in, out := &in.MetricNamespace, &out.MetricNamespace
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SkipMetricValidation != nil {
		in, out := &in.SkipMetricValidation, &out.SkipMetricValidation
		*out = new(bool)
		**out = **in
	}
	if in.Threshold != nil {
		in, out := &in.Threshold, &out.Threshold
		*out = new(float64)
		**out = **in
	}
	if in.TimeAggregation != nil {
		in, out := &in.TimeAggregation, &out.TimeAggregation
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricCriteria.
func (in *MetricCriteria) DeepCopy() *MetricCriteria {
	if in == nil {
		return nil
	}
	out := new(MetricCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricCriteria_STATUS) DeepCopyInto(out *MetricCriteria_STATUS) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.CriterionType != nil {
		in, out := &in.CriterionType, &out.CriterionType
		*out = new(string)
		**out = **in
	}
	if in.Dimensions != nil {
		in, out := &in.Dimensions, &out.Dimensions
		*out = make([]MetricDimension_STATUS, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.MetricName != nil {
		in, out := &in.MetricName, &out.MetricName
		*out = new(string)
		**out = **in
	}
	if in.MetricNamespace != nil {
		in, out := &in.MetricNamespace, &out.MetricNamespace
		*out = new(string)
		**out = **in
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SkipMetricValidation != nil {
		in, out := &in.SkipMetricValidation, &out.SkipMetricValidation
		*out = new(bool)
		**out = **in
	}
	if in.Threshold != nil {
		in, out := &in.Threshold, &out.Threshold
		*out = new(float64)
		**out = **in
	}
	if in.TimeAggregation != nil {
		in, out := &in.TimeAggregation, &out.TimeAggregation
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricCriteria_STATUS.
func (in *MetricCriteria_STATUS) DeepCopy() *MetricCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricDimension) DeepCopyInto(out *MetricDimension) {
	*out = *in
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Values != nil {
		in, out := &in.Values, &out.Values
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricDimension.
func (in *MetricDimension) DeepCopy() *MetricDimension {
	if in == nil {
		return nil
	}
	out := new(MetricDimension)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricDimension_STATUS) DeepCopyInto(out *MetricDimension_STATUS) {
	*out = *in
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = new(string)
		**out = **in
	}
	if in.Operator != nil {
		in, out := &in.Operator, &out.Operator
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Values != nil {
		in, out := &in.Values, &out.Values
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricDimension_STATUS.
func (in *MetricDimension_STATUS) DeepCopy() *MetricDimension_STATUS {
	if in == nil {
		return nil
	}
	out := new(MetricDimension_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MultiMetricCriteria) DeepCopyInto(out *MultiMetricCriteria) {
	*out = *in
	if in.Dynamic != nil {
		in, out := &in.Dynamic, &out.Dynamic
		*out = new(DynamicMetricCriteria)
		(*in).DeepCopyInto(*out)
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Static != nil {
		in, out := &in.Static, &out.Static
		*out = new(MetricCriteria)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiMetricCriteria.
func (in *MultiMetricCriteria) DeepCopy() *MultiMetricCriteria {
	if in == nil {
		return nil
	}
	out := new(MultiMetricCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MultiMetricCriteria_STATUS) DeepCopyInto(out *MultiMetricCriteria_STATUS) {
	*out = *in
	if in.Dynamic != nil {
		in, out := &in.Dynamic, &out.Dynamic
		*out = new(DynamicMetricCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Static != nil {
		in, out := &in.Static, &out.Static
		*out = new(MetricCriteria_STATUS)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiMetricCriteria_STATUS.
func (in *MultiMetricCriteria_STATUS) DeepCopy() *MultiMetricCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(MultiMetricCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WebtestLocationAvailabilityCriteria) DeepCopyInto(out *WebtestLocationAvailabilityCriteria) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.ComponentReference != nil {
		in, out := &in.ComponentReference, &out.ComponentReference
		*out = new(genruntime.ResourceReference)
		**out = **in
	}
	if in.FailedLocationCount != nil {
		in, out := &in.FailedLocationCount, &out.FailedLocationCount
		*out = new(float64)
		**out = **in
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.WebTestId != nil {
		in, out := &in.WebTestId, &out.WebTestId
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebtestLocationAvailabilityCriteria.
func (in *WebtestLocationAvailabilityCriteria) DeepCopy() *WebtestLocationAvailabilityCriteria {
	if in == nil {
		return nil
	}
	out := new(WebtestLocationAvailabilityCriteria)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WebtestLocationAvailabilityCriteria_STATUS) DeepCopyInto(out *WebtestLocationAvailabilityCriteria_STATUS) {
	*out = *in
	if in.AdditionalProperties != nil {
		in, out := &in.AdditionalProperties, &out.AdditionalProperties
		*out = make(map[string]v1.JSON, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.ComponentId != nil {
		in, out := &in.ComponentId, &out.ComponentId
		*out = new(string)
		**out = **in
	}
	if in.FailedLocationCount != nil {
		in, out := &in.FailedLocationCount, &out.FailedLocationCount
		*out = new(float64)
		**out = **in
	}
	if in.OdataType != nil {
		in, out := &in.OdataType, &out.OdataType
		*out = new(string)
		**out = **in
	}
	if in.PropertyBag != nil {
		in, out := &in.PropertyBag, &out.PropertyBag
		*out = make(genruntime.PropertyBag, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.WebTestId != nil {
		in, out := &in.WebTestId, &out.WebTestId
		*out = new(string)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebtestLocationAvailabilityCriteria_STATUS.
func (in *WebtestLocationAvailabilityCriteria_STATUS) DeepCopy() *WebtestLocationAvailabilityCriteria_STATUS {
	if in == nil {
		return nil
	}
	out := new(WebtestLocationAvailabilityCriteria_STATUS)
	in.DeepCopyInto(out)
	return out
}
