//go:build !ignore_autogenerated
// +build !ignore_autogenerated

// Copyright 2021 Banzai Cloud
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

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

package v1alpha1

import (
	"github.com/banzaicloud/operator-tools/pkg/typeoverride"
	"github.com/banzaicloud/operator-tools/pkg/volume"
	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 *BucketWeb) DeepCopyInto(out *BucketWeb) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.DeploymentOverrides != nil {
		in, out := &in.DeploymentOverrides, &out.DeploymentOverrides
		*out = new(typeoverride.Deployment)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	if in.HTTPIngress != nil {
		in, out := &in.HTTPIngress, &out.HTTPIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	out.HTTPGracePeriod = in.HTTPGracePeriod
	out.Refresh = in.Refresh
	out.Timeout = in.Timeout
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Compactor) DeepCopyInto(out *Compactor) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.DeploymentOverrides != nil {
		in, out := &in.DeploymentOverrides, &out.DeploymentOverrides
		*out = new(typeoverride.Deployment)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	out.HTTPGracePeriod = in.HTTPGracePeriod
	if in.DataVolume != nil {
		in, out := &in.DataVolume, &out.DataVolume
		*out = new(volume.KubernetesVolume)
		(*in).DeepCopyInto(*out)
	}
	out.ConsistencyDelay = in.ConsistencyDelay
	out.RetentionResolutionRaw = in.RetentionResolutionRaw
	out.RetentionResolution5m = in.RetentionResolution5m
	out.RetentionResolution1h = in.RetentionResolution1h
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Ingress) DeepCopyInto(out *Ingress) {
	*out = *in
	if in.IngressOverrides != nil {
		in, out := &in.IngressOverrides, &out.IngressOverrides
		*out = new(typeoverride.IngressNetworkingV1beta1)
		(*in).DeepCopyInto(*out)
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubernetesSelector) DeepCopyInto(out *KubernetesSelector) {
	*out = *in
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*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 KubernetesSelector.
func (in *KubernetesSelector) DeepCopy() *KubernetesSelector {
	if in == nil {
		return nil
	}
	out := new(KubernetesSelector)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ObjectStore) 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 *ObjectStoreList) DeepCopyInto(out *ObjectStoreList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ObjectStore, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ObjectStoreList) 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 *ObjectStoreSpec) DeepCopyInto(out *ObjectStoreSpec) {
	*out = *in
	in.Config.DeepCopyInto(&out.Config)
	if in.Compactor != nil {
		in, out := &in.Compactor, &out.Compactor
		*out = new(Compactor)
		(*in).DeepCopyInto(*out)
	}
	if in.BucketWeb != nil {
		in, out := &in.BucketWeb, &out.BucketWeb
		*out = new(BucketWeb)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Query) DeepCopyInto(out *Query) {
	*out = *in
	in.MetaOverrides.DeepCopyInto(&out.MetaOverrides)
	if in.DeploymentOverrides != nil {
		in, out := &in.DeploymentOverrides, &out.DeploymentOverrides
		*out = new(typeoverride.Deployment)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	if in.HTTPIngress != nil {
		in, out := &in.HTTPIngress, &out.HTTPIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.GRPCIngress != nil {
		in, out := &in.GRPCIngress, &out.GRPCIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	out.QueryTimeout = in.QueryTimeout
	if in.QueryReplicaLabels != nil {
		in, out := &in.QueryReplicaLabels, &out.QueryReplicaLabels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.SelectorLabels != nil {
		in, out := &in.SelectorLabels, &out.SelectorLabels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Stores != nil {
		in, out := &in.Stores, &out.Stores
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.StoreSDDNSInterval = in.StoreSDDNSInterval
	out.StoreUnhealthyTimeout = in.StoreUnhealthyTimeout
	out.QueryDefaultEvaluationInterval = in.QueryDefaultEvaluationInterval
	out.StoreResponseTimeout = in.StoreResponseTimeout
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *QueryFrontend) DeepCopyInto(out *QueryFrontend) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.DeploymentOverrides != nil {
		in, out := &in.DeploymentOverrides, &out.DeploymentOverrides
		*out = new(typeoverride.Deployment)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	if in.HTTPIngress != nil {
		in, out := &in.HTTPIngress, &out.HTTPIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.QueryRangePartialResponse != nil {
		in, out := &in.QueryRangePartialResponse, &out.QueryRangePartialResponse
		*out = new(bool)
		**out = **in
	}
	if in.QueryFrontendCompressResponses != nil {
		in, out := &in.QueryFrontendCompressResponses, &out.QueryFrontendCompressResponses
		*out = new(bool)
		**out = **in
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Receiver) 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 *ReceiverGroup) DeepCopyInto(out *ReceiverGroup) {
	*out = *in
	if in.Tenants != nil {
		in, out := &in.Tenants, &out.Tenants
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.Config.DeepCopyInto(&out.Config)
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.StatefulSetOverrides != nil {
		in, out := &in.StatefulSetOverrides, &out.StatefulSetOverrides
		*out = new(typeoverride.StatefulSet)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTPIngress != nil {
		in, out := &in.HTTPIngress, &out.HTTPIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.GRPCIngress != nil {
		in, out := &in.GRPCIngress, &out.GRPCIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	out.HTTPGracePeriod = in.HTTPGracePeriod
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.DataVolume != nil {
		in, out := &in.DataVolume, &out.DataVolume
		*out = new(volume.KubernetesVolume)
		(*in).DeepCopyInto(*out)
	}
	if in.TSDBWalCompression != nil {
		in, out := &in.TSDBWalCompression, &out.TSDBWalCompression
		*out = new(bool)
		**out = **in
	}
	if in.TSDBNoLockfile != nil {
		in, out := &in.TSDBNoLockfile, &out.TSDBNoLockfile
		*out = new(bool)
		**out = **in
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ReceiverList) 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 *ReceiverSpec) DeepCopyInto(out *ReceiverSpec) {
	*out = *in
	if in.ReceiverGroups != nil {
		in, out := &in.ReceiverGroups, &out.ReceiverGroups
		*out = make([]ReceiverGroup, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Rule) DeepCopyInto(out *Rule) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.StatefulsetOverrides != nil {
		in, out := &in.StatefulsetOverrides, &out.StatefulsetOverrides
		*out = new(typeoverride.StatefulSet)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	if in.HTTPIngress != nil {
		in, out := &in.HTTPIngress, &out.HTTPIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.GRPCIngress != nil {
		in, out := &in.GRPCIngress, &out.GRPCIngress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
	if in.DataVolume != nil {
		in, out := &in.DataVolume, &out.DataVolume
		*out = new(volume.KubernetesVolume)
		(*in).DeepCopyInto(*out)
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.AlertmanagersURLs != nil {
		in, out := &in.AlertmanagersURLs, &out.AlertmanagersURLs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.AlertLabelDrop != nil {
		in, out := &in.AlertLabelDrop, &out.AlertLabelDrop
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Queries != nil {
		in, out := &in.Queries, &out.Queries
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *StoreEndpoint) 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 *StoreEndpointList) DeepCopyInto(out *StoreEndpointList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]StoreEndpoint, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *StoreEndpointList) 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 *StoreEndpointSpec) DeepCopyInto(out *StoreEndpointSpec) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = new(KubernetesSelector)
		(*in).DeepCopyInto(*out)
	}
	in.Config.DeepCopyInto(&out.Config)
	if in.Ingress != nil {
		in, out := &in.Ingress, &out.Ingress
		*out = new(Ingress)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StoreGateway) DeepCopyInto(out *StoreGateway) {
	*out = *in
	if in.MetaOverrides != nil {
		in, out := &in.MetaOverrides, &out.MetaOverrides
		*out = new(typeoverride.ObjectMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.DeploymentOverrides != nil {
		in, out := &in.DeploymentOverrides, &out.DeploymentOverrides
		*out = new(typeoverride.Deployment)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceOverrides != nil {
		in, out := &in.ServiceOverrides, &out.ServiceOverrides
		*out = new(typeoverride.Service)
		(*in).DeepCopyInto(*out)
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = new(Metrics)
		**out = **in
	}
	if in.StoreEnableIndexHeaderLazyReader != nil {
		in, out := &in.StoreEnableIndexHeaderLazyReader, &out.StoreEnableIndexHeaderLazyReader
		*out = new(bool)
		**out = **in
	}
	if in.TimeRanges != nil {
		in, out := &in.TimeRanges, &out.TimeRanges
		*out = make([]TimeRange, len(*in))
		copy(*out, *in)
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Thanos) 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 *ThanosDiscovery) DeepCopyInto(out *ThanosDiscovery) {
	*out = *in
	in.LabelSelector.DeepCopyInto(&out.LabelSelector)
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ThanosEndpoint) 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 *ThanosEndpointList) DeepCopyInto(out *ThanosEndpointList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ThanosEndpoint, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ThanosEndpointList) 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 *ThanosEndpointSpec) DeepCopyInto(out *ThanosEndpointSpec) {
	*out = *in
	if in.Stores != nil {
		in, out := &in.Stores, &out.Stores
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ReplicaLabels != nil {
		in, out := &in.ReplicaLabels, &out.ReplicaLabels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.MetaOverrides.DeepCopyInto(&out.MetaOverrides)
	if in.QueryOverrides != nil {
		in, out := &in.QueryOverrides, &out.QueryOverrides
		*out = new(Query)
		(*in).DeepCopyInto(*out)
	}
	if in.StoreEndpointOverrides != nil {
		in, out := &in.StoreEndpointOverrides, &out.StoreEndpointOverrides
		*out = make([]StoreEndpointSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ThanosList) 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 *ThanosPeer) DeepCopyInto(out *ThanosPeer) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	out.Status = in.Status
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ThanosPeer) 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 *ThanosPeerList) DeepCopyInto(out *ThanosPeerList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ThanosPeer, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ThanosPeerList) 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 *ThanosPeerSpec) DeepCopyInto(out *ThanosPeerSpec) {
	*out = *in
	if in.ReplicaLabels != nil {
		in, out := &in.ReplicaLabels, &out.ReplicaLabels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.MetaOverrides.DeepCopyInto(&out.MetaOverrides)
	if in.QueryOverrides != nil {
		in, out := &in.QueryOverrides, &out.QueryOverrides
		*out = new(Query)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ThanosSpec) DeepCopyInto(out *ThanosSpec) {
	*out = *in
	if in.StoreGateway != nil {
		in, out := &in.StoreGateway, &out.StoreGateway
		*out = new(StoreGateway)
		(*in).DeepCopyInto(*out)
	}
	if in.Rule != nil {
		in, out := &in.Rule, &out.Rule
		*out = new(Rule)
		(*in).DeepCopyInto(*out)
	}
	if in.Query != nil {
		in, out := &in.Query, &out.Query
		*out = new(Query)
		(*in).DeepCopyInto(*out)
	}
	if in.QueryFrontend != nil {
		in, out := &in.QueryFrontend, &out.QueryFrontend
		*out = new(QueryFrontend)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

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

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