// Code generated by generate.sh. DO NOT EDIT!
// Sources: adapter/config/crd/config.go
// Output: adapter/config/crd/types.go

package crd

// This file contains Go definitions for Custom Resource Definition kinds
// to adhere to the idiomatic use of k8s API machinery.
// These definitions are synthesized from Istio configuration type descriptors
// as declared in the Pilot config model.

import (
	meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"

	"istio.io/istio/pilot/model"
)

var knownTypes = map[string]struct {
	object     IstioObject
	collection IstioObjectList
}{
	model.MockConfig.Type: {
		object: &MockConfig{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "MockConfig",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &MockConfigList{},
	},
	model.RouteRule.Type: {
		object: &RouteRule{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "RouteRule",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &RouteRuleList{},
	},
	model.IngressRule.Type: {
		object: &IngressRule{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "IngressRule",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &IngressRuleList{},
	},
	model.Gateway.Type: {
		object: &Gateway{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "Gateway",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &GatewayList{},
	},
	model.EgressRule.Type: {
		object: &EgressRule{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "EgressRule",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &EgressRuleList{},
	},
	model.DestinationPolicy.Type: {
		object: &DestinationPolicy{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "DestinationPolicy",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &DestinationPolicyList{},
	},
	model.HTTPAPISpec.Type: {
		object: &HTTPAPISpec{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "HTTPAPISpec",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &HTTPAPISpecList{},
	},
	model.HTTPAPISpecBinding.Type: {
		object: &HTTPAPISpecBinding{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "HTTPAPISpecBinding",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &HTTPAPISpecBindingList{},
	},
	model.QuotaSpec.Type: {
		object: &QuotaSpec{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "QuotaSpec",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &QuotaSpecList{},
	},
	model.QuotaSpecBinding.Type: {
		object: &QuotaSpecBinding{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "QuotaSpecBinding",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &QuotaSpecBindingList{},
	},
	model.EndUserAuthenticationPolicySpec.Type: {
		object: &EndUserAuthenticationPolicySpec{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "EndUserAuthenticationPolicySpec",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &EndUserAuthenticationPolicySpecList{},
	},
	model.EndUserAuthenticationPolicySpecBinding.Type: {
		object: &EndUserAuthenticationPolicySpecBinding{
			TypeMeta: meta_v1.TypeMeta{
				Kind:       "EndUserAuthenticationPolicySpecBinding",
				APIVersion: model.IstioAPIGroup + "/" + model.IstioAPIVersion,
			},
		},
		collection: &EndUserAuthenticationPolicySpecBindingList{},
	},
}

// MockConfig is the generic Kubernetes API object wrapper
type MockConfig struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *MockConfig) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *MockConfig) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *MockConfig) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *MockConfig) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// MockConfigList is the generic Kubernetes API list wrapper
type MockConfigList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []MockConfig `json:"items"`
}

// GetItems from a wrapper
func (in *MockConfigList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// RouteRule is the generic Kubernetes API object wrapper
type RouteRule struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *RouteRule) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *RouteRule) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *RouteRule) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *RouteRule) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// RouteRuleList is the generic Kubernetes API list wrapper
type RouteRuleList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []RouteRule `json:"items"`
}

// GetItems from a wrapper
func (in *RouteRuleList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// IngressRule is the generic Kubernetes API object wrapper
type IngressRule struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *IngressRule) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *IngressRule) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *IngressRule) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *IngressRule) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// IngressRuleList is the generic Kubernetes API list wrapper
type IngressRuleList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []IngressRule `json:"items"`
}

// GetItems from a wrapper
func (in *IngressRuleList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// Gateway is the generic Kubernetes API object wrapper
type Gateway struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *Gateway) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *Gateway) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *Gateway) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *Gateway) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// GatewayList is the generic Kubernetes API list wrapper
type GatewayList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []Gateway `json:"items"`
}

// GetItems from a wrapper
func (in *GatewayList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// EgressRule is the generic Kubernetes API object wrapper
type EgressRule struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *EgressRule) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *EgressRule) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *EgressRule) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *EgressRule) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// EgressRuleList is the generic Kubernetes API list wrapper
type EgressRuleList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []EgressRule `json:"items"`
}

// GetItems from a wrapper
func (in *EgressRuleList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// DestinationPolicy is the generic Kubernetes API object wrapper
type DestinationPolicy struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *DestinationPolicy) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *DestinationPolicy) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *DestinationPolicy) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *DestinationPolicy) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// DestinationPolicyList is the generic Kubernetes API list wrapper
type DestinationPolicyList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []DestinationPolicy `json:"items"`
}

// GetItems from a wrapper
func (in *DestinationPolicyList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// HTTPAPISpec is the generic Kubernetes API object wrapper
type HTTPAPISpec struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *HTTPAPISpec) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *HTTPAPISpec) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *HTTPAPISpec) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *HTTPAPISpec) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// HTTPAPISpecList is the generic Kubernetes API list wrapper
type HTTPAPISpecList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []HTTPAPISpec `json:"items"`
}

// GetItems from a wrapper
func (in *HTTPAPISpecList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// HTTPAPISpecBinding is the generic Kubernetes API object wrapper
type HTTPAPISpecBinding struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *HTTPAPISpecBinding) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *HTTPAPISpecBinding) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *HTTPAPISpecBinding) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *HTTPAPISpecBinding) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// HTTPAPISpecBindingList is the generic Kubernetes API list wrapper
type HTTPAPISpecBindingList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []HTTPAPISpecBinding `json:"items"`
}

// GetItems from a wrapper
func (in *HTTPAPISpecBindingList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// QuotaSpec is the generic Kubernetes API object wrapper
type QuotaSpec struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *QuotaSpec) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *QuotaSpec) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *QuotaSpec) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *QuotaSpec) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// QuotaSpecList is the generic Kubernetes API list wrapper
type QuotaSpecList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []QuotaSpec `json:"items"`
}

// GetItems from a wrapper
func (in *QuotaSpecList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// QuotaSpecBinding is the generic Kubernetes API object wrapper
type QuotaSpecBinding struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *QuotaSpecBinding) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *QuotaSpecBinding) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *QuotaSpecBinding) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *QuotaSpecBinding) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// QuotaSpecBindingList is the generic Kubernetes API list wrapper
type QuotaSpecBindingList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []QuotaSpecBinding `json:"items"`
}

// GetItems from a wrapper
func (in *QuotaSpecBindingList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// EndUserAuthenticationPolicySpec is the generic Kubernetes API object wrapper
type EndUserAuthenticationPolicySpec struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *EndUserAuthenticationPolicySpec) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *EndUserAuthenticationPolicySpec) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *EndUserAuthenticationPolicySpec) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *EndUserAuthenticationPolicySpec) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// EndUserAuthenticationPolicySpecList is the generic Kubernetes API list wrapper
type EndUserAuthenticationPolicySpecList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []EndUserAuthenticationPolicySpec `json:"items"`
}

// GetItems from a wrapper
func (in *EndUserAuthenticationPolicySpecList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}

// EndUserAuthenticationPolicySpecBinding is the generic Kubernetes API object wrapper
type EndUserAuthenticationPolicySpecBinding struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

// GetSpec from a wrapper
func (in *EndUserAuthenticationPolicySpecBinding) GetSpec() map[string]interface{} {
	return in.Spec
}

// SetSpec for a wrapper
func (in *EndUserAuthenticationPolicySpecBinding) SetSpec(spec map[string]interface{}) {
	in.Spec = spec
}

// GetObjectMeta from a wrapper
func (in *EndUserAuthenticationPolicySpecBinding) GetObjectMeta() meta_v1.ObjectMeta {
	return in.ObjectMeta
}

// SetObjectMeta for a wrapper
func (in *EndUserAuthenticationPolicySpecBinding) SetObjectMeta(metadata meta_v1.ObjectMeta) {
	in.ObjectMeta = metadata
}

// EndUserAuthenticationPolicySpecBindingList is the generic Kubernetes API list wrapper
type EndUserAuthenticationPolicySpecBindingList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []EndUserAuthenticationPolicySpecBinding `json:"items"`
}

// GetItems from a wrapper
func (in *EndUserAuthenticationPolicySpecBindingList) GetItems() []IstioObject {
	out := make([]IstioObject, len(in.Items))
	for i := range in.Items {
		out[i] = &in.Items[i]
	}
	return out
}

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

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

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

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

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

	return nil
}
