1// Code generated by protoc-gen-gogo. DO NOT EDIT.
2// source: mesh/v1alpha1/config.proto
3
4// Configuration affecting the service mesh as a whole.
5
6package v1alpha1
7
8import (
9	fmt "fmt"
10	proto "github.com/gogo/protobuf/proto"
11	types "github.com/gogo/protobuf/types"
12	io "io"
13	v1alpha3 "istio.io/api/networking/v1alpha3"
14	math "math"
15	math_bits "math/bits"
16)
17
18// Reference imports to suppress errors if they are not otherwise used.
19var _ = proto.Marshal
20var _ = fmt.Errorf
21var _ = math.Inf
22
23// This is a compile-time assertion to ensure that this generated file
24// is compatible with the proto package it is being compiled against.
25// A compilation error at this line likely means your copy of the
26// proto package needs to be updated.
27const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
28
29// Resource describes the source of configuration
30type Resource int32
31
32const (
33	// Set to only receive service entries that are generated by the platform.
34	// These auto generated service entries are combination of services and endpoints
35	// that are generated by a specific platform e.g. k8
36	Resource_SERVICE_REGISTRY Resource = 0
37)
38
39var Resource_name = map[int32]string{
40	0: "SERVICE_REGISTRY",
41}
42
43var Resource_value = map[string]int32{
44	"SERVICE_REGISTRY": 0,
45}
46
47func (x Resource) String() string {
48	return proto.EnumName(Resource_name, int32(x))
49}
50
51func (Resource) EnumDescriptor() ([]byte, []int) {
52	return fileDescriptor_b5c7ece76d5d5022, []int{0}
53}
54
55type MeshConfig_IngressControllerMode int32
56
57const (
58	// Unspecified Istio ingress controller.
59	MeshConfig_UNSPECIFIED MeshConfig_IngressControllerMode = 0
60	// Disables Istio ingress controller.
61	MeshConfig_OFF MeshConfig_IngressControllerMode = 1
62	// Istio ingress controller will act on ingress resources that do not
63	// contain any annotation or whose annotations match the value
64	// specified in the ingress_class parameter described earlier. Use this
65	// mode if Istio ingress controller will be the default ingress
66	// controller for the entireKubernetes cluster.
67	MeshConfig_DEFAULT MeshConfig_IngressControllerMode = 2
68	// Istio ingress controller will only act on ingress resources whose
69	// annotations match the value specified in the ingress_class parameter
70	// described earlier. Use this mode if Istio ingress controller will be
71	// a secondary ingress controller (e.g., in addition to a
72	// cloud-provided ingress controller).
73	MeshConfig_STRICT MeshConfig_IngressControllerMode = 3
74)
75
76var MeshConfig_IngressControllerMode_name = map[int32]string{
77	0: "UNSPECIFIED",
78	1: "OFF",
79	2: "DEFAULT",
80	3: "STRICT",
81}
82
83var MeshConfig_IngressControllerMode_value = map[string]int32{
84	"UNSPECIFIED": 0,
85	"OFF":         1,
86	"DEFAULT":     2,
87	"STRICT":      3,
88}
89
90func (x MeshConfig_IngressControllerMode) String() string {
91	return proto.EnumName(MeshConfig_IngressControllerMode_name, int32(x))
92}
93
94func (MeshConfig_IngressControllerMode) EnumDescriptor() ([]byte, []int) {
95	return fileDescriptor_b5c7ece76d5d5022, []int{0, 0}
96}
97
98// $hide_from_docs
99type MeshConfig_AuthPolicy int32
100
101const (
102	MeshConfig_NONE       MeshConfig_AuthPolicy = 0
103	MeshConfig_MUTUAL_TLS MeshConfig_AuthPolicy = 1
104)
105
106var MeshConfig_AuthPolicy_name = map[int32]string{
107	0: "NONE",
108	1: "MUTUAL_TLS",
109}
110
111var MeshConfig_AuthPolicy_value = map[string]int32{
112	"NONE":       0,
113	"MUTUAL_TLS": 1,
114}
115
116func (x MeshConfig_AuthPolicy) String() string {
117	return proto.EnumName(MeshConfig_AuthPolicy_name, int32(x))
118}
119
120func (MeshConfig_AuthPolicy) EnumDescriptor() ([]byte, []int) {
121	return fileDescriptor_b5c7ece76d5d5022, []int{0, 1}
122}
123
124type MeshConfig_AccessLogEncoding int32
125
126const (
127	MeshConfig_TEXT MeshConfig_AccessLogEncoding = 0
128	MeshConfig_JSON MeshConfig_AccessLogEncoding = 1
129)
130
131var MeshConfig_AccessLogEncoding_name = map[int32]string{
132	0: "TEXT",
133	1: "JSON",
134}
135
136var MeshConfig_AccessLogEncoding_value = map[string]int32{
137	"TEXT": 0,
138	"JSON": 1,
139}
140
141func (x MeshConfig_AccessLogEncoding) String() string {
142	return proto.EnumName(MeshConfig_AccessLogEncoding_name, int32(x))
143}
144
145func (MeshConfig_AccessLogEncoding) EnumDescriptor() ([]byte, []int) {
146	return fileDescriptor_b5c7ece76d5d5022, []int{0, 2}
147}
148
149// Default Policy for upgrading http1.1 connections to http2.
150type MeshConfig_H2UpgradePolicy int32
151
152const (
153	// Do not upgrade connections to http2.
154	MeshConfig_DO_NOT_UPGRADE MeshConfig_H2UpgradePolicy = 0
155	// Upgrade the connections to http2.
156	MeshConfig_UPGRADE MeshConfig_H2UpgradePolicy = 1
157)
158
159var MeshConfig_H2UpgradePolicy_name = map[int32]string{
160	0: "DO_NOT_UPGRADE",
161	1: "UPGRADE",
162}
163
164var MeshConfig_H2UpgradePolicy_value = map[string]int32{
165	"DO_NOT_UPGRADE": 0,
166	"UPGRADE":        1,
167}
168
169func (x MeshConfig_H2UpgradePolicy) String() string {
170	return proto.EnumName(MeshConfig_H2UpgradePolicy_name, int32(x))
171}
172
173func (MeshConfig_H2UpgradePolicy) EnumDescriptor() ([]byte, []int) {
174	return fileDescriptor_b5c7ece76d5d5022, []int{0, 3}
175}
176
177type MeshConfig_OutboundTrafficPolicy_Mode int32
178
179const (
180	// outbound traffic will be restricted to services defined in the
181	// service registry as well as those defined through ServiceEntries
182	MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY MeshConfig_OutboundTrafficPolicy_Mode = 0
183	// outbound traffic to unknown destinations will be allowed, in case
184	// there are no services or ServiceEntries for the destination port
185	MeshConfig_OutboundTrafficPolicy_ALLOW_ANY MeshConfig_OutboundTrafficPolicy_Mode = 1
186)
187
188var MeshConfig_OutboundTrafficPolicy_Mode_name = map[int32]string{
189	0: "REGISTRY_ONLY",
190	1: "ALLOW_ANY",
191}
192
193var MeshConfig_OutboundTrafficPolicy_Mode_value = map[string]int32{
194	"REGISTRY_ONLY": 0,
195	"ALLOW_ANY":     1,
196}
197
198func (x MeshConfig_OutboundTrafficPolicy_Mode) String() string {
199	return proto.EnumName(MeshConfig_OutboundTrafficPolicy_Mode_name, int32(x))
200}
201
202func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) {
203	return fileDescriptor_b5c7ece76d5d5022, []int{0, 0, 0}
204}
205
206// MeshConfig defines mesh-wide variables shared by all Envoy instances in the
207// Istio service mesh.
208//
209// NOTE: This configuration type should be used for the low-level global
210// configuration, such as component addresses and port numbers. It should not
211// be used for the features of the mesh that can be scoped by service or by
212// namespace. Some of the fields in the mesh config are going to be deprecated
213// and replaced with several individual configuration types (for example,
214// tracing configuration).
215type MeshConfig struct {
216	// Address of the server that will be used by the proxies for policy
217	// check calls. By using different names for mixerCheckServer and
218	// mixerReportServer, it is possible to have one set of Mixer servers handle
219	// policy check calls while another set of Mixer servers handle telemetry
220	// calls.
221	//
222	// NOTE: Omitting mixerCheckServer while specifying mixerReportServer is
223	// equivalent to setting disablePolicyChecks to true.
224	MixerCheckServer string `protobuf:"bytes,1,opt,name=mixer_check_server,json=mixerCheckServer,proto3" json:"mixerCheckServer,omitempty"`
225	// Address of the server that will be used by the proxies for policy report
226	// calls.
227	MixerReportServer string `protobuf:"bytes,2,opt,name=mixer_report_server,json=mixerReportServer,proto3" json:"mixerReportServer,omitempty"`
228	// Disable policy checks by the Mixer service. Default
229	// is false, i.e. Mixer policy check is enabled by default.
230	DisablePolicyChecks bool `protobuf:"varint,3,opt,name=disable_policy_checks,json=disablePolicyChecks,proto3" json:"disablePolicyChecks,omitempty"`
231	// $hide_from_docs
232	// Disable telemetry reporting by the Mixer service for HTTP traffic.
233	// Default is false (telemetry reporting via Mixer is enabled).
234	// This option provides a transition path for Istio extensibility v2.
235	DisableMixerHttpReports bool `protobuf:"varint,48,opt,name=disable_mixer_http_reports,json=disableMixerHttpReports,proto3" json:"disableMixerHttpReports,omitempty"`
236	// Allow all traffic in cases when the Mixer policy service cannot be reached.
237	// Default is false which means the traffic is denied when the client is unable
238	// to connect to Mixer.
239	PolicyCheckFailOpen bool `protobuf:"varint,25,opt,name=policy_check_fail_open,json=policyCheckFailOpen,proto3" json:"policyCheckFailOpen,omitempty"`
240	// Enable session affinity for Envoy Mixer reports so that calls from a proxy will
241	// always target the same Mixer instance.
242	SidecarToTelemetrySessionAffinity bool `protobuf:"varint,30,opt,name=sidecar_to_telemetry_session_affinity,json=sidecarToTelemetrySessionAffinity,proto3" json:"sidecarToTelemetrySessionAffinity,omitempty"`
243	// Port on which Envoy should listen for incoming connections from
244	// other services.
245	ProxyListenPort int32 `protobuf:"varint,4,opt,name=proxy_listen_port,json=proxyListenPort,proto3" json:"proxyListenPort,omitempty"`
246	// Port on which Envoy should listen for HTTP PROXY requests if set.
247	ProxyHttpPort int32 `protobuf:"varint,5,opt,name=proxy_http_port,json=proxyHttpPort,proto3" json:"proxyHttpPort,omitempty"`
248	// Connection timeout used by Envoy. (MUST BE >=1ms)
249	ConnectTimeout *types.Duration `protobuf:"bytes,6,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connectTimeout,omitempty"`
250	// Automatic protocol detection uses a set of heuristics to
251	// determine whether the connection is using TLS or not (on the
252	// server side), as well as the application protocol being used
253	// (e.g., http vs tcp). These heuristics rely on the client sending
254	// the first bits of data. For server first protocols like MySQL,
255	// MongoDB, etc., Envoy will timeout on the protocol detection after
256	// the specified period, defaulting to non mTLS plain TCP
257	// traffic. Set this field to tweak the period that Envoy will wait
258	// for the client to send the first bits of data. (MUST BE >=1ms or
259	// 0s to disable)
260	ProtocolDetectionTimeout *types.Duration `protobuf:"bytes,42,opt,name=protocol_detection_timeout,json=protocolDetectionTimeout,proto3" json:"protocolDetectionTimeout,omitempty"`
261	// If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
262	TcpKeepalive *v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive `protobuf:"bytes,28,opt,name=tcp_keepalive,json=tcpKeepalive,proto3" json:"tcpKeepalive,omitempty"`
263	// Class of ingress resources to be processed by Istio ingress
264	// controller. This corresponds to the value of
265	// "kubernetes.io/ingress.class" annotation.
266	IngressClass string `protobuf:"bytes,7,opt,name=ingress_class,json=ingressClass,proto3" json:"ingressClass,omitempty"`
267	// Name of the Kubernetes service used for the istio ingress controller.
268	IngressService string `protobuf:"bytes,8,opt,name=ingress_service,json=ingressService,proto3" json:"ingressService,omitempty"`
269	// Defines whether to use Istio ingress controller for annotated or all ingress resources.
270	IngressControllerMode MeshConfig_IngressControllerMode `protobuf:"varint,9,opt,name=ingress_controller_mode,json=ingressControllerMode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_IngressControllerMode" json:"ingressControllerMode,omitempty"`
271	// Defines which gateway deployment to use as the Ingress controller. This field corresponds to
272	// the Gateway.selector field, and will be set as `istio: INGRESS_SELECTOR`.
273	// By default, `ingressgateway` is used, which will select the default IngressGateway as it has the
274	// `istio: ingressgateway` labels.
275	// It is recommended that this is the same value as ingress_service.
276	IngressSelector string `protobuf:"bytes,52,opt,name=ingress_selector,json=ingressSelector,proto3" json:"ingressSelector,omitempty"`
277	// $hide_from_docs
278	AuthPolicy MeshConfig_AuthPolicy `protobuf:"varint,10,opt,name=auth_policy,json=authPolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_AuthPolicy" json:"authPolicy,omitempty"` // Deprecated: Do not use.
279	// $hide_from_docs
280	RdsRefreshDelay *types.Duration `protobuf:"bytes,11,opt,name=rds_refresh_delay,json=rdsRefreshDelay,proto3" json:"rdsRefreshDelay,omitempty"` // Deprecated: Do not use.
281	// Flag to control generation of trace spans and request IDs.
282	// Requires a trace span collector defined in the proxy configuration.
283	EnableTracing bool `protobuf:"varint,12,opt,name=enable_tracing,json=enableTracing,proto3" json:"enableTracing,omitempty"`
284	// File address for the proxy access log (e.g. /dev/stdout).
285	// Empty value disables access logging.
286	AccessLogFile string `protobuf:"bytes,13,opt,name=access_log_file,json=accessLogFile,proto3" json:"accessLogFile,omitempty"`
287	// Format for the proxy access log
288	// Empty value results in proxy's default access log format
289	AccessLogFormat string `protobuf:"bytes,24,opt,name=access_log_format,json=accessLogFormat,proto3" json:"accessLogFormat,omitempty"`
290	// Encoding for the proxy access log (text or json).
291	// Default value is text.
292	AccessLogEncoding MeshConfig_AccessLogEncoding `protobuf:"varint,27,opt,name=access_log_encoding,json=accessLogEncoding,proto3,enum=istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding" json:"accessLogEncoding,omitempty"`
293	// This flag enables Envoy's gRPC Access Log Service.
294	// See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto)
295	// for details about Envoy's gRPC Access Log Service API.
296	EnableEnvoyAccessLogService bool `protobuf:"varint,40,opt,name=enable_envoy_access_log_service,json=enableEnvoyAccessLogService,proto3" json:"enableEnvoyAccessLogService,omitempty"`
297	// Default proxy config used by the proxy injection mechanism operating in the mesh
298	// (e.g. Kubernetes admission controller)
299	// In case of Kubernetes, the proxy config is applied once during the injection process,
300	// and remain constant for the duration of the pod. The rest of the mesh config can be changed
301	// at runtime and config gets distributed dynamically.
302	DefaultConfig *ProxyConfig `protobuf:"bytes,14,opt,name=default_config,json=defaultConfig,proto3" json:"defaultConfig,omitempty"`
303	// $hide_from_docs
304	MixerAddress string `protobuf:"bytes,16,opt,name=mixer_address,json=mixerAddress,proto3" json:"mixerAddress,omitempty"` // Deprecated: Do not use.
305	// Set the default behavior of the sidecar for handling outbound
306	// traffic from the application.  If your application uses one or
307	// more external services that are not known apriori, setting the
308	// policy to ALLOW_ANY will cause the sidecars to route any unknown
309	// traffic originating from the application to its requested
310	// destination.  Users are strongly encouraged to use ServiceEntries
311	// to explicitly declare any external dependencies, instead of using
312	// allow_any, so that traffic to these services can be
313	// monitored. Can be overridden at a Sidecar level by setting the
314	// OutboundTrafficPolicy in the [Sidecar
315	// API](https://istio.io/docs/reference/config/networking/sidecar/#OutboundTrafficPolicy).
316	OutboundTrafficPolicy *MeshConfig_OutboundTrafficPolicy `protobuf:"bytes,17,opt,name=outbound_traffic_policy,json=outboundTrafficPolicy,proto3" json:"outboundTrafficPolicy,omitempty"`
317	// Enables client side policy checks.
318	EnableClientSidePolicyCheck bool `protobuf:"varint,19,opt,name=enable_client_side_policy_check,json=enableClientSidePolicyCheck,proto3" json:"enableClientSidePolicyCheck,omitempty"`
319	// $hide_from_docs
320	// Unix Domain Socket through which Envoy communicates with NodeAgent SDS to get key/cert for mTLS.
321	// Use secret-mount files instead of SDS if set to empty.
322	// @deprecated - istio agent will detect and send the path to envoy.
323	SdsUdsPath string `protobuf:"bytes,20,opt,name=sds_uds_path,json=sdsUdsPath,proto3" json:"sdsUdsPath,omitempty"` // Deprecated: Do not use.
324	// $hide_from_docs
325	SdsRefreshDelay *types.Duration `protobuf:"bytes,21,opt,name=sds_refresh_delay,json=sdsRefreshDelay,proto3" json:"sdsRefreshDelay,omitempty"` // Deprecated: Do not use.
326	// ConfigSource describes a source of configuration data for networking
327	// rules, and other Istio configuration artifacts. Multiple data sources
328	// can be configured for a single control plane.
329	ConfigSources []*ConfigSource `protobuf:"bytes,22,rep,name=config_sources,json=configSources,proto3" json:"configSources,omitempty"`
330	// This flag is used to enable mutual TLS automatically for service to service communication
331	// within the mesh, default true.
332	// If set to true, and a given service does not have a corresponding DestinationRule configured,
333	// or its DestinationRule does not have ClientTLSSettings specified, Istio configures client side
334	// TLS configuration appropriately. More specifically,
335	// If the upstream authentication policy is in STRICT mode, use Istio provisioned certificate
336	// for mutual TLS to connect to upstream.
337	// If upstream service is in plain text mode, use plain text.
338	// If the upstream authentication policy is in PERMISSIVE mode, Istio configures clients to use
339	// mutual TLS when server sides are capable of accepting mutual TLS traffic.
340	// If service DestinationRule exists and has ClientTLSSettings specified, that is always used instead.
341	EnableAutoMtls *types.BoolValue `protobuf:"bytes,43,opt,name=enable_auto_mtls,json=enableAutoMtls,proto3" json:"enableAutoMtls,omitempty"`
342	// $hide_from_docs
343	// This flag is used by secret discovery service(SDS).
344	// If set to true ([prerequisite](https://kubernetes.io/docs/concepts/storage/volumes/#projected)), Istio will inject volumes mount
345	// for Kubernetes service account trustworthy JWT(which is available with Kubernetes 1.12 or higher), so that the Kubernetes API server
346	// mounts Kubernetes service account trustworthy JWT to the Envoy container, which will be used to request key/cert eventually.
347	// This isn't supported for non-Kubernetes cases.
348	EnableSdsTokenMount bool `protobuf:"varint,23,opt,name=enable_sds_token_mount,json=enableSdsTokenMount,proto3" json:"enableSdsTokenMount,omitempty"`
349	// $hide_from_docs
350	// This flag is used by secret discovery service(SDS).
351	// If set to true, Envoy will fetch a normal Kubernetes service account JWT from '/var/run/secrets/kubernetes.io/serviceaccount/token'
352	// (https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod)
353	// and pass to sds server, which will be used to request key/cert eventually.
354	// If both enable_sds_token_mount and sds_use_k8s_sa_jwt are set to true, enable_sds_token_mount(trustworthy jwt) takes precedence.
355	// This isn't supported for non-k8s case.
356	SdsUseK8SSaJwt bool `protobuf:"varint,29,opt,name=sds_use_k8s_sa_jwt,json=sdsUseK8sSaJwt,proto3" json:"sdsUseK8sSaJwt,omitempty"`
357	// The trust domain corresponds to the trust root of a system.
358	// Refer to [SPIFFE-ID](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain)
359	TrustDomain string `protobuf:"bytes,26,opt,name=trust_domain,json=trustDomain,proto3" json:"trustDomain,omitempty"`
360	// The trust domain aliases represent the aliases of `trust_domain`.
361	// For example, if we have
362	// ```yaml
363	// trustDomain: td1
364	// trustDomainAliases: ["td2", "td3"]
365	// ```
366	// Any service with the identity `td1/ns/foo/sa/a-service-account`, `td2/ns/foo/sa/a-service-account`,
367	// or `td3/ns/foo/sa/a-service-account` will be treated the same in the Istio mesh.
368	TrustDomainAliases []string `protobuf:"bytes,46,rep,name=trust_domain_aliases,json=trustDomainAliases,proto3" json:"trustDomainAliases,omitempty"`
369	// The default value for the ServiceEntry.export_to field and services
370	// imported through container registry integrations, e.g. this applies to
371	// Kubernetes Service resources. The value is a list of namespace names and
372	// reserved namespace aliases. The allowed namespace aliases are:
373	//
374	// * - All Namespaces
375	// . - Current Namespace
376	// ~ - No Namespace
377	//
378	// If not set the system will use "*" as the default value which implies that
379	// services are exported to all namespaces.
380	//
381	// 'All namespaces' is a reasonable default for implementations that don't
382	// need to restrict access or visibility of services across namespace
383	// boundaries. If that requirement is present it is generally good practice to
384	// make the default 'Current namespace' so that services are only visible
385	// within their own namespaces by default. Operators can then expand the
386	// visibility of services to other namespaces as needed. Use of 'No Namespace'
387	// is expected to be rare but can have utility for deployments where
388	// dependency management needs to be precise even within the scope of a single
389	// namespace.
390	//
391	// For further discussion see the reference documentation for ServiceEntry,
392	// Sidecar, and Gateway.
393	DefaultServiceExportTo []string `protobuf:"bytes,31,rep,name=default_service_export_to,json=defaultServiceExportTo,proto3" json:"defaultServiceExportTo,omitempty"`
394	// The default value for the VirtualService.export_to field. Has the same
395	// syntax as 'default_service_export_to'.
396	//
397	// If not set the system will use "*" as the default value which implies that
398	// virtual services are exported to all namespaces
399	DefaultVirtualServiceExportTo []string `protobuf:"bytes,32,rep,name=default_virtual_service_export_to,json=defaultVirtualServiceExportTo,proto3" json:"defaultVirtualServiceExportTo,omitempty"`
400	// The default value for the DestinationRule.export_to field. Has the same
401	// syntax as 'default_service_export_to'.
402	//
403	// If not set the system will use "*" as the default value which implies that
404	// destination rules are exported to all namespaces
405	DefaultDestinationRuleExportTo []string `protobuf:"bytes,33,rep,name=default_destination_rule_export_to,json=defaultDestinationRuleExportTo,proto3" json:"defaultDestinationRuleExportTo,omitempty"`
406	// The namespace to treat as the administrative root namespace for
407	// Istio configuration. When processing a leaf namespace Istio will search for
408	// declarations in that namespace first and if none are found it will
409	// search in the root namespace. Any matching declaration found in the root
410	// namespace is processed as if it were declared in the leaf namespace.
411	//
412	// The precise semantics of this processing are documented on each resource
413	// type.
414	RootNamespace string `protobuf:"bytes,34,opt,name=root_namespace,json=rootNamespace,proto3" json:"rootNamespace,omitempty"`
415	// Locality based load balancing distribution or failover settings.
416	LocalityLbSetting *v1alpha3.LocalityLoadBalancerSetting `protobuf:"bytes,35,opt,name=locality_lb_setting,json=localityLbSetting,proto3" json:"localityLbSetting,omitempty"`
417	// Configures DNS refresh rate for Envoy clusters of type STRICT_DNS
418	DnsRefreshRate *types.Duration `protobuf:"bytes,36,opt,name=dns_refresh_rate,json=dnsRefreshRate,proto3" json:"dnsRefreshRate,omitempty"`
419	// The flag to disable report batch.
420	DisableReportBatch bool `protobuf:"varint,37,opt,name=disable_report_batch,json=disableReportBatch,proto3" json:"disableReportBatch,omitempty"`
421	// When disable_report_batch is false, this value specifies the maximum number
422	// of requests that are batched in report. If left unspecified, the default value
423	// of report_batch_max_entries == 0 will use the hardcoded defaults of
424	// istio::mixerclient::ReportOptions.
425	ReportBatchMaxEntries uint32 `protobuf:"varint,38,opt,name=report_batch_max_entries,json=reportBatchMaxEntries,proto3" json:"reportBatchMaxEntries,omitempty"`
426	// When disable_report_batch is false, this value specifies the maximum elapsed
427	// time a batched report will be sent after a user request is processed. If left
428	// unspecified, the default report_batch_max_time == 0 will use the hardcoded
429	// defaults of istio::mixerclient::ReportOptions.
430	ReportBatchMaxTime *types.Duration `protobuf:"bytes,39,opt,name=report_batch_max_time,json=reportBatchMaxTime,proto3" json:"reportBatchMaxTime,omitempty"`
431	// Specify if http1.1 connections should be upgraded to http2 by default.
432	// if sidecar is installed on all pods in the mesh, then this should be set to UPGRADE.
433	// If one or more services or namespaces do not have sidecar(s), then this should be set to DO_NOT_UPGRADE.
434	// It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.
435	H2UpgradePolicy MeshConfig_H2UpgradePolicy `protobuf:"varint,41,opt,name=h2_upgrade_policy,json=h2UpgradePolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy" json:"h2UpgradePolicy,omitempty"`
436	// Name to be used while emitting statistics for inbound clusters. The same pattern is used while computing stat prefix for
437	// network filters like TCP and Redis.
438	// By default, Istio emits statistics with the pattern `inbound|<port>|<port-name>|<service-FQDN>`.
439	// For example `inbound|7443|grpc-reviews|reviews.prod.svc.cluster.local`. This can be used to override that pattern.
440	//
441	// A Pattern can be composed of various pre-defined variables. The following variables are supported.
442	//
443	// - `%SERVICE%` - Will be substituted with name of the service.
444	// - `%SERVICE_FQDN%` - Will be substituted with FQDN of the service.
445	// - `%SERVICE_PORT%` - Will be substituted with port of the service.
446	// - `%SERVICE_PORT_NAME%` - Will be substituted with port name of the service.
447	//
448	// Following are some examples of supported patterns for reviews:
449	//
450	// - `%SERVICE_FQDN%_%SERVICE_PORT%` will use reviews.prod.svc.cluster.local_7443 as the stats name.
451	// - `%SERVICE%` will use reviews.prod as the stats name.
452	InboundClusterStatName string `protobuf:"bytes,44,opt,name=inbound_cluster_stat_name,json=inboundClusterStatName,proto3" json:"inboundClusterStatName,omitempty"`
453	// Name to be used while emitting statistics for outbound clusters. The same pattern is used while computing stat prefix for
454	// network filters like TCP and Redis.
455	// By default, Istio emits statistics with the pattern `outbound|<port>|<subsetname>|<service-FQDN>`.
456	// For example `outbound|8080|v2|reviews.prod.svc.cluster.local`. This can be used to override that pattern.
457	//
458	// A Pattern can be composed of various pre-defined variables. The following variables are supported.
459	//
460	// - `%SERVICE%` - Will be substituted with name of the service.
461	// - `%SERVICE_FQDN%` - Will be substituted with FQDN of the service.
462	// - `%SERVICE_PORT%` - Will be substituted with port of the service.
463	// - `%SERVICE_PORT_NAME%` - Will be substituted with port name of the service.
464	// - `%SUBSET_NAME%` - Will be substituted with subset.
465	//
466	// Following are some examples of supported patterns for reviews:
467	//
468	// - `%SERVICE_FQDN%_%SERVICE_PORT%` will use reviews.prod.svc.cluster.local_7443 as the stats name.
469	// - `%SERVICE%` will use reviews.prod as the stats name.
470	OutboundClusterStatName string `protobuf:"bytes,45,opt,name=outbound_cluster_stat_name,json=outboundClusterStatName,proto3" json:"outboundClusterStatName,omitempty"`
471	// Configure the provision of certificates.
472	Certificates []*Certificate `protobuf:"bytes,47,rep,name=certificates,proto3" json:"certificates,omitempty"`
473	// Set configuration for Thrift protocol
474	ThriftConfig *MeshConfig_ThriftConfig `protobuf:"bytes,49,opt,name=thrift_config,json=thriftConfig,proto3" json:"thriftConfig,omitempty"`
475	// $hide_from_docs
476	// Settings to be applied to select services.
477	ServiceSettings []*MeshConfig_ServiceSettings `protobuf:"bytes,50,rep,name=service_settings,json=serviceSettings,proto3" json:"serviceSettings,omitempty"`
478	// If enabled, Istio agent will merge metrics exposed by the application with metrics from Envoy
479	// and Istio agent. The sidecar injection will replace `prometheus.io` annotations present on the pod
480	// and redirect them towards Istio agent, which will then merge metrics of from the application with Istio metrics.
481	// This relies on the annotations `prometheus.io/scrape`, `prometheus.io/port`, and
482	// `prometheus.io/path` annotations.
483	// If you are running a separately managed Envoy with an Istio sidecar, this may cause issues, as the metrics will collide.
484	// In this case, it is recommended to disable aggregation on that deployment with the
485	// `prometheus.istio.io/merge-metrics: "false"` annotation.
486	// If not specified, this will be enabled by default.
487	EnablePrometheusMerge *types.BoolValue `protobuf:"bytes,51,opt,name=enable_prometheus_merge,json=enablePrometheusMerge,proto3" json:"enablePrometheusMerge,omitempty"`
488	XXX_NoUnkeyedLiteral  struct{}         `json:"-"`
489	XXX_unrecognized      []byte           `json:"-"`
490	XXX_sizecache         int32            `json:"-"`
491}
492
493func (m *MeshConfig) Reset()         { *m = MeshConfig{} }
494func (m *MeshConfig) String() string { return proto.CompactTextString(m) }
495func (*MeshConfig) ProtoMessage()    {}
496func (*MeshConfig) Descriptor() ([]byte, []int) {
497	return fileDescriptor_b5c7ece76d5d5022, []int{0}
498}
499func (m *MeshConfig) XXX_Unmarshal(b []byte) error {
500	return m.Unmarshal(b)
501}
502func (m *MeshConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
503	if deterministic {
504		return xxx_messageInfo_MeshConfig.Marshal(b, m, deterministic)
505	} else {
506		b = b[:cap(b)]
507		n, err := m.MarshalToSizedBuffer(b)
508		if err != nil {
509			return nil, err
510		}
511		return b[:n], nil
512	}
513}
514func (m *MeshConfig) XXX_Merge(src proto.Message) {
515	xxx_messageInfo_MeshConfig.Merge(m, src)
516}
517func (m *MeshConfig) XXX_Size() int {
518	return m.Size()
519}
520func (m *MeshConfig) XXX_DiscardUnknown() {
521	xxx_messageInfo_MeshConfig.DiscardUnknown(m)
522}
523
524var xxx_messageInfo_MeshConfig proto.InternalMessageInfo
525
526func (m *MeshConfig) GetMixerCheckServer() string {
527	if m != nil {
528		return m.MixerCheckServer
529	}
530	return ""
531}
532
533func (m *MeshConfig) GetMixerReportServer() string {
534	if m != nil {
535		return m.MixerReportServer
536	}
537	return ""
538}
539
540func (m *MeshConfig) GetDisablePolicyChecks() bool {
541	if m != nil {
542		return m.DisablePolicyChecks
543	}
544	return false
545}
546
547func (m *MeshConfig) GetDisableMixerHttpReports() bool {
548	if m != nil {
549		return m.DisableMixerHttpReports
550	}
551	return false
552}
553
554func (m *MeshConfig) GetPolicyCheckFailOpen() bool {
555	if m != nil {
556		return m.PolicyCheckFailOpen
557	}
558	return false
559}
560
561func (m *MeshConfig) GetSidecarToTelemetrySessionAffinity() bool {
562	if m != nil {
563		return m.SidecarToTelemetrySessionAffinity
564	}
565	return false
566}
567
568func (m *MeshConfig) GetProxyListenPort() int32 {
569	if m != nil {
570		return m.ProxyListenPort
571	}
572	return 0
573}
574
575func (m *MeshConfig) GetProxyHttpPort() int32 {
576	if m != nil {
577		return m.ProxyHttpPort
578	}
579	return 0
580}
581
582func (m *MeshConfig) GetConnectTimeout() *types.Duration {
583	if m != nil {
584		return m.ConnectTimeout
585	}
586	return nil
587}
588
589func (m *MeshConfig) GetProtocolDetectionTimeout() *types.Duration {
590	if m != nil {
591		return m.ProtocolDetectionTimeout
592	}
593	return nil
594}
595
596func (m *MeshConfig) GetTcpKeepalive() *v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive {
597	if m != nil {
598		return m.TcpKeepalive
599	}
600	return nil
601}
602
603func (m *MeshConfig) GetIngressClass() string {
604	if m != nil {
605		return m.IngressClass
606	}
607	return ""
608}
609
610func (m *MeshConfig) GetIngressService() string {
611	if m != nil {
612		return m.IngressService
613	}
614	return ""
615}
616
617func (m *MeshConfig) GetIngressControllerMode() MeshConfig_IngressControllerMode {
618	if m != nil {
619		return m.IngressControllerMode
620	}
621	return MeshConfig_UNSPECIFIED
622}
623
624func (m *MeshConfig) GetIngressSelector() string {
625	if m != nil {
626		return m.IngressSelector
627	}
628	return ""
629}
630
631// Deprecated: Do not use.
632func (m *MeshConfig) GetAuthPolicy() MeshConfig_AuthPolicy {
633	if m != nil {
634		return m.AuthPolicy
635	}
636	return MeshConfig_NONE
637}
638
639// Deprecated: Do not use.
640func (m *MeshConfig) GetRdsRefreshDelay() *types.Duration {
641	if m != nil {
642		return m.RdsRefreshDelay
643	}
644	return nil
645}
646
647func (m *MeshConfig) GetEnableTracing() bool {
648	if m != nil {
649		return m.EnableTracing
650	}
651	return false
652}
653
654func (m *MeshConfig) GetAccessLogFile() string {
655	if m != nil {
656		return m.AccessLogFile
657	}
658	return ""
659}
660
661func (m *MeshConfig) GetAccessLogFormat() string {
662	if m != nil {
663		return m.AccessLogFormat
664	}
665	return ""
666}
667
668func (m *MeshConfig) GetAccessLogEncoding() MeshConfig_AccessLogEncoding {
669	if m != nil {
670		return m.AccessLogEncoding
671	}
672	return MeshConfig_TEXT
673}
674
675func (m *MeshConfig) GetEnableEnvoyAccessLogService() bool {
676	if m != nil {
677		return m.EnableEnvoyAccessLogService
678	}
679	return false
680}
681
682func (m *MeshConfig) GetDefaultConfig() *ProxyConfig {
683	if m != nil {
684		return m.DefaultConfig
685	}
686	return nil
687}
688
689// Deprecated: Do not use.
690func (m *MeshConfig) GetMixerAddress() string {
691	if m != nil {
692		return m.MixerAddress
693	}
694	return ""
695}
696
697func (m *MeshConfig) GetOutboundTrafficPolicy() *MeshConfig_OutboundTrafficPolicy {
698	if m != nil {
699		return m.OutboundTrafficPolicy
700	}
701	return nil
702}
703
704func (m *MeshConfig) GetEnableClientSidePolicyCheck() bool {
705	if m != nil {
706		return m.EnableClientSidePolicyCheck
707	}
708	return false
709}
710
711// Deprecated: Do not use.
712func (m *MeshConfig) GetSdsUdsPath() string {
713	if m != nil {
714		return m.SdsUdsPath
715	}
716	return ""
717}
718
719// Deprecated: Do not use.
720func (m *MeshConfig) GetSdsRefreshDelay() *types.Duration {
721	if m != nil {
722		return m.SdsRefreshDelay
723	}
724	return nil
725}
726
727func (m *MeshConfig) GetConfigSources() []*ConfigSource {
728	if m != nil {
729		return m.ConfigSources
730	}
731	return nil
732}
733
734func (m *MeshConfig) GetEnableAutoMtls() *types.BoolValue {
735	if m != nil {
736		return m.EnableAutoMtls
737	}
738	return nil
739}
740
741func (m *MeshConfig) GetEnableSdsTokenMount() bool {
742	if m != nil {
743		return m.EnableSdsTokenMount
744	}
745	return false
746}
747
748func (m *MeshConfig) GetSdsUseK8SSaJwt() bool {
749	if m != nil {
750		return m.SdsUseK8SSaJwt
751	}
752	return false
753}
754
755func (m *MeshConfig) GetTrustDomain() string {
756	if m != nil {
757		return m.TrustDomain
758	}
759	return ""
760}
761
762func (m *MeshConfig) GetTrustDomainAliases() []string {
763	if m != nil {
764		return m.TrustDomainAliases
765	}
766	return nil
767}
768
769func (m *MeshConfig) GetDefaultServiceExportTo() []string {
770	if m != nil {
771		return m.DefaultServiceExportTo
772	}
773	return nil
774}
775
776func (m *MeshConfig) GetDefaultVirtualServiceExportTo() []string {
777	if m != nil {
778		return m.DefaultVirtualServiceExportTo
779	}
780	return nil
781}
782
783func (m *MeshConfig) GetDefaultDestinationRuleExportTo() []string {
784	if m != nil {
785		return m.DefaultDestinationRuleExportTo
786	}
787	return nil
788}
789
790func (m *MeshConfig) GetRootNamespace() string {
791	if m != nil {
792		return m.RootNamespace
793	}
794	return ""
795}
796
797func (m *MeshConfig) GetLocalityLbSetting() *v1alpha3.LocalityLoadBalancerSetting {
798	if m != nil {
799		return m.LocalityLbSetting
800	}
801	return nil
802}
803
804func (m *MeshConfig) GetDnsRefreshRate() *types.Duration {
805	if m != nil {
806		return m.DnsRefreshRate
807	}
808	return nil
809}
810
811func (m *MeshConfig) GetDisableReportBatch() bool {
812	if m != nil {
813		return m.DisableReportBatch
814	}
815	return false
816}
817
818func (m *MeshConfig) GetReportBatchMaxEntries() uint32 {
819	if m != nil {
820		return m.ReportBatchMaxEntries
821	}
822	return 0
823}
824
825func (m *MeshConfig) GetReportBatchMaxTime() *types.Duration {
826	if m != nil {
827		return m.ReportBatchMaxTime
828	}
829	return nil
830}
831
832func (m *MeshConfig) GetH2UpgradePolicy() MeshConfig_H2UpgradePolicy {
833	if m != nil {
834		return m.H2UpgradePolicy
835	}
836	return MeshConfig_DO_NOT_UPGRADE
837}
838
839func (m *MeshConfig) GetInboundClusterStatName() string {
840	if m != nil {
841		return m.InboundClusterStatName
842	}
843	return ""
844}
845
846func (m *MeshConfig) GetOutboundClusterStatName() string {
847	if m != nil {
848		return m.OutboundClusterStatName
849	}
850	return ""
851}
852
853func (m *MeshConfig) GetCertificates() []*Certificate {
854	if m != nil {
855		return m.Certificates
856	}
857	return nil
858}
859
860func (m *MeshConfig) GetThriftConfig() *MeshConfig_ThriftConfig {
861	if m != nil {
862		return m.ThriftConfig
863	}
864	return nil
865}
866
867func (m *MeshConfig) GetServiceSettings() []*MeshConfig_ServiceSettings {
868	if m != nil {
869		return m.ServiceSettings
870	}
871	return nil
872}
873
874func (m *MeshConfig) GetEnablePrometheusMerge() *types.BoolValue {
875	if m != nil {
876		return m.EnablePrometheusMerge
877	}
878	return nil
879}
880
881type MeshConfig_OutboundTrafficPolicy struct {
882	Mode                 MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"`
883	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
884	XXX_unrecognized     []byte                                `json:"-"`
885	XXX_sizecache        int32                                 `json:"-"`
886}
887
888func (m *MeshConfig_OutboundTrafficPolicy) Reset()         { *m = MeshConfig_OutboundTrafficPolicy{} }
889func (m *MeshConfig_OutboundTrafficPolicy) String() string { return proto.CompactTextString(m) }
890func (*MeshConfig_OutboundTrafficPolicy) ProtoMessage()    {}
891func (*MeshConfig_OutboundTrafficPolicy) Descriptor() ([]byte, []int) {
892	return fileDescriptor_b5c7ece76d5d5022, []int{0, 0}
893}
894func (m *MeshConfig_OutboundTrafficPolicy) XXX_Unmarshal(b []byte) error {
895	return m.Unmarshal(b)
896}
897func (m *MeshConfig_OutboundTrafficPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
898	if deterministic {
899		return xxx_messageInfo_MeshConfig_OutboundTrafficPolicy.Marshal(b, m, deterministic)
900	} else {
901		b = b[:cap(b)]
902		n, err := m.MarshalToSizedBuffer(b)
903		if err != nil {
904			return nil, err
905		}
906		return b[:n], nil
907	}
908}
909func (m *MeshConfig_OutboundTrafficPolicy) XXX_Merge(src proto.Message) {
910	xxx_messageInfo_MeshConfig_OutboundTrafficPolicy.Merge(m, src)
911}
912func (m *MeshConfig_OutboundTrafficPolicy) XXX_Size() int {
913	return m.Size()
914}
915func (m *MeshConfig_OutboundTrafficPolicy) XXX_DiscardUnknown() {
916	xxx_messageInfo_MeshConfig_OutboundTrafficPolicy.DiscardUnknown(m)
917}
918
919var xxx_messageInfo_MeshConfig_OutboundTrafficPolicy proto.InternalMessageInfo
920
921func (m *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficPolicy_Mode {
922	if m != nil {
923		return m.Mode
924	}
925	return MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY
926}
927
928type MeshConfig_ThriftConfig struct {
929	// Specify thrift rate limit service URL. If pilot has thrift protocol support enabled,
930	// this will enable the rate limit service for destinations that have matching rate
931	// limit configurations.
932	RateLimitUrl string `protobuf:"bytes,1,opt,name=rate_limit_url,json=rateLimitUrl,proto3" json:"rateLimitUrl,omitempty"`
933	// Specify thrift rate limit service timeout, in milliseconds. Default is 50ms
934	RateLimitTimeout     *types.Duration `protobuf:"bytes,2,opt,name=rate_limit_timeout,json=rateLimitTimeout,proto3" json:"rateLimitTimeout,omitempty"`
935	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
936	XXX_unrecognized     []byte          `json:"-"`
937	XXX_sizecache        int32           `json:"-"`
938}
939
940func (m *MeshConfig_ThriftConfig) Reset()         { *m = MeshConfig_ThriftConfig{} }
941func (m *MeshConfig_ThriftConfig) String() string { return proto.CompactTextString(m) }
942func (*MeshConfig_ThriftConfig) ProtoMessage()    {}
943func (*MeshConfig_ThriftConfig) Descriptor() ([]byte, []int) {
944	return fileDescriptor_b5c7ece76d5d5022, []int{0, 1}
945}
946func (m *MeshConfig_ThriftConfig) XXX_Unmarshal(b []byte) error {
947	return m.Unmarshal(b)
948}
949func (m *MeshConfig_ThriftConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
950	if deterministic {
951		return xxx_messageInfo_MeshConfig_ThriftConfig.Marshal(b, m, deterministic)
952	} else {
953		b = b[:cap(b)]
954		n, err := m.MarshalToSizedBuffer(b)
955		if err != nil {
956			return nil, err
957		}
958		return b[:n], nil
959	}
960}
961func (m *MeshConfig_ThriftConfig) XXX_Merge(src proto.Message) {
962	xxx_messageInfo_MeshConfig_ThriftConfig.Merge(m, src)
963}
964func (m *MeshConfig_ThriftConfig) XXX_Size() int {
965	return m.Size()
966}
967func (m *MeshConfig_ThriftConfig) XXX_DiscardUnknown() {
968	xxx_messageInfo_MeshConfig_ThriftConfig.DiscardUnknown(m)
969}
970
971var xxx_messageInfo_MeshConfig_ThriftConfig proto.InternalMessageInfo
972
973func (m *MeshConfig_ThriftConfig) GetRateLimitUrl() string {
974	if m != nil {
975		return m.RateLimitUrl
976	}
977	return ""
978}
979
980func (m *MeshConfig_ThriftConfig) GetRateLimitTimeout() *types.Duration {
981	if m != nil {
982		return m.RateLimitTimeout
983	}
984	return nil
985}
986
987// $hide_from_docs
988// Settings to be applied to select services.
989//
990// For example, the following configures all services in namespace "foo" as well as the
991// "bar" service in namespace "baz" to be considered cluster-local:
992//
993// ```yaml
994// serviceSettings:
995//   - settings:
996//       cluster_local: true
997//     hosts:
998//       - "*.foo.svc.cluster.local"
999//       - "bar.baz.svc.cluster.local"
1000// ```
1001type MeshConfig_ServiceSettings struct {
1002	// The settings to apply to the selected services.
1003	Settings *MeshConfig_ServiceSettings_Settings `protobuf:"bytes,1,opt,name=settings,proto3" json:"settings,omitempty"`
1004	// The services to which the Settings should be applied. Services are selected using the hostname
1005	// matching rules used by DestinationRule.
1006	//
1007	// For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local
1008	Hosts                []string `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
1009	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1010	XXX_unrecognized     []byte   `json:"-"`
1011	XXX_sizecache        int32    `json:"-"`
1012}
1013
1014func (m *MeshConfig_ServiceSettings) Reset()         { *m = MeshConfig_ServiceSettings{} }
1015func (m *MeshConfig_ServiceSettings) String() string { return proto.CompactTextString(m) }
1016func (*MeshConfig_ServiceSettings) ProtoMessage()    {}
1017func (*MeshConfig_ServiceSettings) Descriptor() ([]byte, []int) {
1018	return fileDescriptor_b5c7ece76d5d5022, []int{0, 2}
1019}
1020func (m *MeshConfig_ServiceSettings) XXX_Unmarshal(b []byte) error {
1021	return m.Unmarshal(b)
1022}
1023func (m *MeshConfig_ServiceSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1024	if deterministic {
1025		return xxx_messageInfo_MeshConfig_ServiceSettings.Marshal(b, m, deterministic)
1026	} else {
1027		b = b[:cap(b)]
1028		n, err := m.MarshalToSizedBuffer(b)
1029		if err != nil {
1030			return nil, err
1031		}
1032		return b[:n], nil
1033	}
1034}
1035func (m *MeshConfig_ServiceSettings) XXX_Merge(src proto.Message) {
1036	xxx_messageInfo_MeshConfig_ServiceSettings.Merge(m, src)
1037}
1038func (m *MeshConfig_ServiceSettings) XXX_Size() int {
1039	return m.Size()
1040}
1041func (m *MeshConfig_ServiceSettings) XXX_DiscardUnknown() {
1042	xxx_messageInfo_MeshConfig_ServiceSettings.DiscardUnknown(m)
1043}
1044
1045var xxx_messageInfo_MeshConfig_ServiceSettings proto.InternalMessageInfo
1046
1047func (m *MeshConfig_ServiceSettings) GetSettings() *MeshConfig_ServiceSettings_Settings {
1048	if m != nil {
1049		return m.Settings
1050	}
1051	return nil
1052}
1053
1054func (m *MeshConfig_ServiceSettings) GetHosts() []string {
1055	if m != nil {
1056		return m.Hosts
1057	}
1058	return nil
1059}
1060
1061// Settings for the selected services.
1062type MeshConfig_ServiceSettings_Settings struct {
1063	// If true, specifies that the client and service endpoints must reside in the same cluster.
1064	// By default, in multi-cluster deployments, the Istio control plane assumes all service
1065	// endpoints to be reachable from any client in any of the clusters which are part of the
1066	// mesh. This configuration option limits the set of service endpoints visible to a client
1067	// to be cluster scoped.
1068	//
1069	// There are some common scenarios when this can be useful:
1070	//
1071	//   - A service (or group of services) is inherently local to the cluster and has local storage
1072	//     for that cluster. For example, the kube-system namespace (e.g. the Kube API Server).
1073	//   - A mesh administrator wants to slowly migrate services to Istio. They might start by first
1074	//     having services cluster-local and then slowly transition them to mesh-wide. They could do
1075	//     this service-by-service (e.g. mysvc.myns.svc.cluster.local) or as a group
1076	//     (e.g. *.myns.svc.cluster.local).
1077	//
1078	// By default, Istio will consider all services in the kube-system namespace to be cluster-local,
1079	// unless explicitly overridden here.
1080	ClusterLocal         bool     `protobuf:"varint,1,opt,name=cluster_local,json=clusterLocal,proto3" json:"clusterLocal,omitempty"`
1081	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1082	XXX_unrecognized     []byte   `json:"-"`
1083	XXX_sizecache        int32    `json:"-"`
1084}
1085
1086func (m *MeshConfig_ServiceSettings_Settings) Reset()         { *m = MeshConfig_ServiceSettings_Settings{} }
1087func (m *MeshConfig_ServiceSettings_Settings) String() string { return proto.CompactTextString(m) }
1088func (*MeshConfig_ServiceSettings_Settings) ProtoMessage()    {}
1089func (*MeshConfig_ServiceSettings_Settings) Descriptor() ([]byte, []int) {
1090	return fileDescriptor_b5c7ece76d5d5022, []int{0, 2, 0}
1091}
1092func (m *MeshConfig_ServiceSettings_Settings) XXX_Unmarshal(b []byte) error {
1093	return m.Unmarshal(b)
1094}
1095func (m *MeshConfig_ServiceSettings_Settings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1096	if deterministic {
1097		return xxx_messageInfo_MeshConfig_ServiceSettings_Settings.Marshal(b, m, deterministic)
1098	} else {
1099		b = b[:cap(b)]
1100		n, err := m.MarshalToSizedBuffer(b)
1101		if err != nil {
1102			return nil, err
1103		}
1104		return b[:n], nil
1105	}
1106}
1107func (m *MeshConfig_ServiceSettings_Settings) XXX_Merge(src proto.Message) {
1108	xxx_messageInfo_MeshConfig_ServiceSettings_Settings.Merge(m, src)
1109}
1110func (m *MeshConfig_ServiceSettings_Settings) XXX_Size() int {
1111	return m.Size()
1112}
1113func (m *MeshConfig_ServiceSettings_Settings) XXX_DiscardUnknown() {
1114	xxx_messageInfo_MeshConfig_ServiceSettings_Settings.DiscardUnknown(m)
1115}
1116
1117var xxx_messageInfo_MeshConfig_ServiceSettings_Settings proto.InternalMessageInfo
1118
1119func (m *MeshConfig_ServiceSettings_Settings) GetClusterLocal() bool {
1120	if m != nil {
1121		return m.ClusterLocal
1122	}
1123	return false
1124}
1125
1126// ConfigSource describes information about a configuration store inside a
1127// mesh. A single control plane instance can interact with one or more data
1128// sources.
1129type ConfigSource struct {
1130	// Address of the server implementing the Istio Mesh Configuration
1131	// protocol (MCP). Can be IP address or a fully qualified DNS name.
1132	// Use fs:/// to specify a file-based backend with absolute path to the directory.
1133	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
1134	// Use the tls_settings to specify the tls mode to use. If the MCP server
1135	// uses Istio mutual TLS and shares the root CA with Pilot, specify the TLS
1136	// mode as ISTIO_MUTUAL.
1137	TlsSettings *v1alpha3.ClientTLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings,proto3" json:"tlsSettings,omitempty"`
1138	// Describes the source of configuration, if nothing is specified default is MCP
1139	SubscribedResources  []Resource `protobuf:"varint,3,rep,packed,name=subscribed_resources,json=subscribedResources,proto3,enum=istio.mesh.v1alpha1.Resource" json:"subscribedResources,omitempty"`
1140	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
1141	XXX_unrecognized     []byte     `json:"-"`
1142	XXX_sizecache        int32      `json:"-"`
1143}
1144
1145func (m *ConfigSource) Reset()         { *m = ConfigSource{} }
1146func (m *ConfigSource) String() string { return proto.CompactTextString(m) }
1147func (*ConfigSource) ProtoMessage()    {}
1148func (*ConfigSource) Descriptor() ([]byte, []int) {
1149	return fileDescriptor_b5c7ece76d5d5022, []int{1}
1150}
1151func (m *ConfigSource) XXX_Unmarshal(b []byte) error {
1152	return m.Unmarshal(b)
1153}
1154func (m *ConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1155	if deterministic {
1156		return xxx_messageInfo_ConfigSource.Marshal(b, m, deterministic)
1157	} else {
1158		b = b[:cap(b)]
1159		n, err := m.MarshalToSizedBuffer(b)
1160		if err != nil {
1161			return nil, err
1162		}
1163		return b[:n], nil
1164	}
1165}
1166func (m *ConfigSource) XXX_Merge(src proto.Message) {
1167	xxx_messageInfo_ConfigSource.Merge(m, src)
1168}
1169func (m *ConfigSource) XXX_Size() int {
1170	return m.Size()
1171}
1172func (m *ConfigSource) XXX_DiscardUnknown() {
1173	xxx_messageInfo_ConfigSource.DiscardUnknown(m)
1174}
1175
1176var xxx_messageInfo_ConfigSource proto.InternalMessageInfo
1177
1178func (m *ConfigSource) GetAddress() string {
1179	if m != nil {
1180		return m.Address
1181	}
1182	return ""
1183}
1184
1185func (m *ConfigSource) GetTlsSettings() *v1alpha3.ClientTLSSettings {
1186	if m != nil {
1187		return m.TlsSettings
1188	}
1189	return nil
1190}
1191
1192func (m *ConfigSource) GetSubscribedResources() []Resource {
1193	if m != nil {
1194		return m.SubscribedResources
1195	}
1196	return nil
1197}
1198
1199// Certificate configures the provision of a certificate and its key.
1200// Example 1: key and cert stored in a secret
1201// { secretName: galley-cert
1202//   secretNamespace: istio-system
1203//   dnsNames:
1204//     - galley.istio-system.svc
1205//     - galley.mydomain.com
1206// }
1207// Example 2: key and cert stored in a directory
1208// { dnsNames:
1209//     - pilot.istio-system
1210//     - pilot.istio-system.svc
1211//     - pilot.mydomain.com
1212// }
1213type Certificate struct {
1214	// Name of the secret the certificate and its key will be stored into.
1215	// If it is empty, it will not be stored into a secret.
1216	// Instead, the certificate and its key will be stored into a hard-coded directory.
1217	SecretName string `protobuf:"bytes,1,opt,name=secret_name,json=secretName,proto3" json:"secretName,omitempty"`
1218	// The DNS names for the certificate. A certificate may contain
1219	// multiple DNS names.
1220	DnsNames             []string `protobuf:"bytes,2,rep,name=dns_names,json=dnsNames,proto3" json:"dnsNames,omitempty"`
1221	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1222	XXX_unrecognized     []byte   `json:"-"`
1223	XXX_sizecache        int32    `json:"-"`
1224}
1225
1226func (m *Certificate) Reset()         { *m = Certificate{} }
1227func (m *Certificate) String() string { return proto.CompactTextString(m) }
1228func (*Certificate) ProtoMessage()    {}
1229func (*Certificate) Descriptor() ([]byte, []int) {
1230	return fileDescriptor_b5c7ece76d5d5022, []int{2}
1231}
1232func (m *Certificate) XXX_Unmarshal(b []byte) error {
1233	return m.Unmarshal(b)
1234}
1235func (m *Certificate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1236	if deterministic {
1237		return xxx_messageInfo_Certificate.Marshal(b, m, deterministic)
1238	} else {
1239		b = b[:cap(b)]
1240		n, err := m.MarshalToSizedBuffer(b)
1241		if err != nil {
1242			return nil, err
1243		}
1244		return b[:n], nil
1245	}
1246}
1247func (m *Certificate) XXX_Merge(src proto.Message) {
1248	xxx_messageInfo_Certificate.Merge(m, src)
1249}
1250func (m *Certificate) XXX_Size() int {
1251	return m.Size()
1252}
1253func (m *Certificate) XXX_DiscardUnknown() {
1254	xxx_messageInfo_Certificate.DiscardUnknown(m)
1255}
1256
1257var xxx_messageInfo_Certificate proto.InternalMessageInfo
1258
1259func (m *Certificate) GetSecretName() string {
1260	if m != nil {
1261		return m.SecretName
1262	}
1263	return ""
1264}
1265
1266func (m *Certificate) GetDnsNames() []string {
1267	if m != nil {
1268		return m.DnsNames
1269	}
1270	return nil
1271}
1272
1273func init() {
1274	proto.RegisterEnum("istio.mesh.v1alpha1.Resource", Resource_name, Resource_value)
1275	proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_IngressControllerMode", MeshConfig_IngressControllerMode_name, MeshConfig_IngressControllerMode_value)
1276	proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AuthPolicy", MeshConfig_AuthPolicy_name, MeshConfig_AuthPolicy_value)
1277	proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding", MeshConfig_AccessLogEncoding_name, MeshConfig_AccessLogEncoding_value)
1278	proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy", MeshConfig_H2UpgradePolicy_name, MeshConfig_H2UpgradePolicy_value)
1279	proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode", MeshConfig_OutboundTrafficPolicy_Mode_name, MeshConfig_OutboundTrafficPolicy_Mode_value)
1280	proto.RegisterType((*MeshConfig)(nil), "istio.mesh.v1alpha1.MeshConfig")
1281	proto.RegisterType((*MeshConfig_OutboundTrafficPolicy)(nil), "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy")
1282	proto.RegisterType((*MeshConfig_ThriftConfig)(nil), "istio.mesh.v1alpha1.MeshConfig.ThriftConfig")
1283	proto.RegisterType((*MeshConfig_ServiceSettings)(nil), "istio.mesh.v1alpha1.MeshConfig.ServiceSettings")
1284	proto.RegisterType((*MeshConfig_ServiceSettings_Settings)(nil), "istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings")
1285	proto.RegisterType((*ConfigSource)(nil), "istio.mesh.v1alpha1.ConfigSource")
1286	proto.RegisterType((*Certificate)(nil), "istio.mesh.v1alpha1.Certificate")
1287}
1288
1289func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptor_b5c7ece76d5d5022) }
1290
1291var fileDescriptor_b5c7ece76d5d5022 = []byte{
1292	// 1975 bytes of a gzipped FileDescriptorProto
1293	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xdd, 0x76, 0x13, 0xbb,
1294	0x15, 0xc6, 0x49, 0x00, 0xb3, 0xfd, 0x37, 0x51, 0x12, 0x10, 0xa6, 0x04, 0x63, 0xfe, 0x7c, 0x52,
1295	0xea, 0x1c, 0x42, 0x7f, 0x68, 0x7b, 0x95, 0xd8, 0x0e, 0x24, 0x38, 0xb1, 0x3b, 0x76, 0x38, 0xe5,
1296	0xf4, 0x42, 0x4b, 0x99, 0x91, 0xed, 0x29, 0xe3, 0x91, 0x97, 0xa4, 0x01, 0x72, 0xd1, 0xab, 0x3e,
1297	0x4f, 0xfb, 0x1c, 0x5d, 0xab, 0x37, 0x7d, 0x84, 0x2e, 0x9e, 0xa4, 0x6b, 0x24, 0x8d, 0xed, 0x24,
1298	0x5e, 0x75, 0x7b, 0xee, 0x32, 0x7b, 0x7f, 0x7b, 0x6f, 0x69, 0xeb, 0xdb, 0x3f, 0x0e, 0x94, 0xc7,
1299	0x4c, 0x8e, 0x76, 0x3f, 0xbf, 0xa2, 0xe1, 0x64, 0x44, 0x5f, 0xed, 0x7a, 0x3c, 0x1a, 0x04, 0xc3,
1300	0xfa, 0x44, 0x70, 0xc5, 0xd1, 0x46, 0x20, 0x55, 0xc0, 0xeb, 0x09, 0xa2, 0x9e, 0x22, 0xca, 0xdb,
1301	0x43, 0xce, 0x87, 0x21, 0xdb, 0xd5, 0x90, 0xf3, 0x78, 0xb0, 0xeb, 0xc7, 0x82, 0xaa, 0x80, 0x47,
1302	0xc6, 0xe8, 0xba, 0xfe, 0x8b, 0xa0, 0x93, 0x09, 0x13, 0xd2, 0xea, 0xef, 0x5f, 0x0e, 0x38, 0x11,
1303	0xfc, 0xeb, 0x85, 0x55, 0xed, 0x44, 0x4c, 0x7d, 0xe1, 0xe2, 0x53, 0x10, 0x0d, 0x53, 0xc0, 0xeb,
1304	0x5d, 0x9f, 0x49, 0x15, 0x44, 0x3a, 0x02, 0x11, 0x71, 0xc8, 0x0c, 0xb6, 0xfa, 0xd7, 0x47, 0x00,
1305	0x27, 0x4c, 0x8e, 0x1a, 0xfa, 0xc0, 0xe8, 0x25, 0xa0, 0x71, 0xf0, 0x95, 0x09, 0xe2, 0x8d, 0x98,
1306	0xf7, 0x89, 0x48, 0x26, 0x3e, 0x33, 0x81, 0x33, 0x95, 0x4c, 0xed, 0x8e, 0xeb, 0x68, 0x4d, 0x23,
1307	0x51, 0xf4, 0xb4, 0x1c, 0xd5, 0x61, 0xc3, 0xa0, 0x05, 0x9b, 0x70, 0xa1, 0x52, 0xf8, 0x8a, 0x86,
1308	0xaf, 0x6b, 0x95, 0xab, 0x35, 0x16, 0xbf, 0x07, 0x5b, 0x7e, 0x20, 0xe9, 0x79, 0xc8, 0xc8, 0x84,
1309	0x87, 0x81, 0x77, 0x61, 0xc2, 0x48, 0xbc, 0x5a, 0xc9, 0xd4, 0xb2, 0xee, 0x86, 0x55, 0x76, 0xb5,
1310	0x4e, 0x07, 0x92, 0xe8, 0xf7, 0x50, 0x4e, 0x6d, 0x4c, 0xac, 0x91, 0x52, 0x13, 0x1b, 0x50, 0xe2,
1311	0xef, 0xb5, 0xe1, 0x3d, 0x8b, 0x38, 0x49, 0x00, 0xef, 0x94, 0x9a, 0x98, 0xa8, 0x12, 0xbd, 0x86,
1312	0xbb, 0xf3, 0x81, 0xc8, 0x80, 0x06, 0x21, 0xe1, 0x13, 0x16, 0xe1, 0xfb, 0x26, 0xe2, 0x64, 0x16,
1313	0xea, 0x90, 0x06, 0x61, 0x67, 0xc2, 0x22, 0xd4, 0x85, 0x67, 0x32, 0xf0, 0x99, 0x47, 0x05, 0x51,
1314	0x9c, 0x28, 0x16, 0xb2, 0x31, 0x53, 0xe2, 0x82, 0x48, 0x26, 0x65, 0x92, 0x3d, 0x3a, 0x18, 0x04,
1315	0x51, 0xa0, 0x2e, 0xf0, 0xb6, 0xf6, 0xf1, 0xd8, 0x82, 0xfb, 0xbc, 0x9f, 0x42, 0x7b, 0x06, 0xb9,
1316	0x6f, 0x81, 0x68, 0x07, 0xd6, 0xf5, 0xfb, 0x90, 0x30, 0x90, 0x8a, 0x45, 0x24, 0x39, 0x1c, 0x5e,
1317	0xab, 0x64, 0x6a, 0x37, 0xdd, 0x92, 0x56, 0xb4, 0xb5, 0xbc, 0xcb, 0x85, 0x42, 0xcf, 0xc1, 0x88,
1318	0xcc, 0x3d, 0x35, 0xf2, 0xa6, 0x46, 0x16, 0xb4, 0x38, 0xb9, 0x9d, 0xc6, 0x1d, 0x40, 0xc9, 0xe3,
1319	0x51, 0xc4, 0x3c, 0x45, 0x54, 0x30, 0x66, 0x3c, 0x56, 0xf8, 0x56, 0x25, 0x53, 0xcb, 0xed, 0xdd,
1320	0xaf, 0x1b, 0xe6, 0xd4, 0x53, 0xe6, 0xd4, 0x9b, 0x96, 0x59, 0x6e, 0xd1, 0x5a, 0xf4, 0x8d, 0x01,
1321	0xfa, 0x01, 0xca, 0x1a, 0xe4, 0xf1, 0x90, 0xf8, 0x4c, 0x31, 0x4f, 0xb3, 0x23, 0x75, 0xb7, 0xb3,
1322	0xcc, 0x1d, 0x4e, 0x8d, 0x9b, 0xa9, 0x6d, 0xea, 0x98, 0x43, 0x41, 0x79, 0x13, 0xf2, 0x89, 0xb1,
1323	0x09, 0x0d, 0x83, 0xcf, 0x0c, 0xff, 0x4c, 0xfb, 0x3a, 0xae, 0x9b, 0x4a, 0x98, 0xf1, 0x33, 0xad,
1324	0x87, 0xd7, 0xf5, 0x86, 0x39, 0x5a, 0xc0, 0xa3, 0x2e, 0xe7, 0x61, 0x8f, 0x29, 0x15, 0x44, 0x43,
1325	0x59, 0xef, 0x37, 0xba, 0xb3, 0xbf, 0xbd, 0xc9, 0xfb, 0xd4, 0xa3, 0x9b, 0x57, 0x73, 0x5f, 0xe8,
1326	0x09, 0x14, 0x82, 0x68, 0x28, 0x98, 0x94, 0xc4, 0x0b, 0xa9, 0x94, 0xf8, 0xb6, 0xe6, 0x60, 0xde,
1327	0x0a, 0x1b, 0x89, 0x0c, 0xbd, 0x80, 0x52, 0x0a, 0x4a, 0x98, 0x1a, 0x78, 0x0c, 0x67, 0x35, 0xac,
1328	0x68, 0xc5, 0x3d, 0x23, 0x45, 0x63, 0xb8, 0x37, 0xf5, 0xc6, 0x23, 0x25, 0x78, 0x18, 0x32, 0x41,
1329	0xc6, 0xdc, 0x67, 0xf8, 0x4e, 0x25, 0x53, 0x2b, 0xee, 0xfd, 0xaa, 0xbe, 0xa0, 0xa4, 0xeb, 0xb3,
1330	0x3a, 0xaa, 0x1f, 0xd9, 0xb8, 0x53, 0xeb, 0x13, 0xee, 0x33, 0x77, 0x2b, 0x58, 0x24, 0x46, 0xdf,
1331	0x81, 0x33, 0x3b, 0x57, 0xc8, 0x3c, 0xc5, 0x05, 0xfe, 0xa5, 0x3e, 0x58, 0x69, 0x7a, 0x30, 0x23,
1332	0x46, 0x1d, 0xc8, 0xd1, 0x58, 0x8d, 0x6c, 0xf9, 0x60, 0xd0, 0xa7, 0xd9, 0x59, 0x76, 0x9a, 0xfd,
1333	0x58, 0x8d, 0x4c, 0x51, 0x1d, 0xac, 0xe0, 0x8c, 0x0b, 0x74, 0xfa, 0x8d, 0x8e, 0x60, 0x5d, 0xf8,
1334	0x92, 0x08, 0x36, 0x10, 0x4c, 0x8e, 0x88, 0xcf, 0x42, 0x7a, 0x81, 0x73, 0x4b, 0x5e, 0x5e, 0x7b,
1335	0x29, 0x09, 0x5f, 0xba, 0xc6, 0xac, 0x99, 0x58, 0xa1, 0x67, 0x50, 0x64, 0x91, 0x2e, 0x54, 0x25,
1336	0xa8, 0x17, 0x44, 0x43, 0x9c, 0xd7, 0x05, 0x52, 0x30, 0xd2, 0xbe, 0x11, 0x26, 0x04, 0xa7, 0x9e,
1337	0x97, 0x5c, 0x36, 0xe4, 0x43, 0x32, 0x08, 0x42, 0x86, 0x0b, 0xfa, 0xb2, 0x05, 0x23, 0x6e, 0xf3,
1338	0xe1, 0x61, 0x10, 0xb2, 0xa4, 0x68, 0xe6, 0x71, 0x5c, 0x8c, 0xa9, 0xc2, 0xd8, 0xa4, 0x65, 0x86,
1339	0xd4, 0x62, 0x44, 0x61, 0x63, 0x0e, 0xcb, 0x22, 0x8f, 0xfb, 0x49, 0xfc, 0x07, 0x3a, 0x3d, 0xaf,
1340	0x96, 0xa6, 0x27, 0xf5, 0xd6, 0xb2, 0x86, 0xee, 0x3a, 0xbd, 0x2a, 0x42, 0x4d, 0x78, 0x64, 0x6f,
1341	0xc7, 0xa2, 0xcf, 0xfc, 0x82, 0xcc, 0xc5, 0x4b, 0xc9, 0x54, 0xd3, 0xd7, 0x7d, 0x60, 0x60, 0xad,
1342	0x04, 0x35, 0xf5, 0x9c, 0x32, 0xeb, 0x2d, 0x14, 0x7d, 0x36, 0xa0, 0x71, 0xa8, 0x88, 0x19, 0x11,
1343	0xb8, 0xa8, 0x73, 0x5d, 0x59, 0x78, 0xc6, 0x6e, 0x52, 0xf1, 0xe6, 0x90, 0x6e, 0xc1, 0xda, 0xd9,
1344	0x46, 0xfd, 0x02, 0x0a, 0xa6, 0x1d, 0x52, 0xdf, 0x4f, 0x18, 0x82, 0x9d, 0x24, 0x33, 0xfa, 0x61,
1345	0xf2, 0x5a, 0xb1, 0x6f, 0xe4, 0x09, 0x97, 0x79, 0xac, 0xce, 0x79, 0x1c, 0xf9, 0xc9, 0xbb, 0x0c,
1346	0x06, 0x81, 0x97, 0xb2, 0x67, 0x5d, 0x87, 0x5e, 0xca, 0xe5, 0x8e, 0x35, 0xef, 0x1b, 0x6b, 0x43,
1347	0x1c, 0x77, 0x8b, 0x2f, 0x12, 0xcf, 0xa5, 0xc9, 0x0b, 0x03, 0x16, 0x29, 0x92, 0x74, 0xc7, 0x4b,
1348	0xdd, 0x1e, 0x6f, 0xcc, 0xa7, 0xa9, 0xa1, 0x51, 0xbd, 0xc0, 0x9f, 0xef, 0xfa, 0xe8, 0x29, 0xe4,
1349	0xa5, 0x2f, 0x49, 0xec, 0x4b, 0x32, 0xa1, 0x6a, 0x84, 0x37, 0xa7, 0x97, 0x03, 0xe9, 0xcb, 0x33,
1350	0x5f, 0x76, 0xa9, 0x1a, 0x25, 0xdc, 0x95, 0xd7, 0xb8, 0xbb, 0xf5, 0x3f, 0x71, 0x57, 0x5e, 0xe1,
1351	0xee, 0x3b, 0x28, 0x9a, 0xf7, 0x20, 0x92, 0xc7, 0xc2, 0x63, 0x12, 0xdf, 0xad, 0xac, 0xd6, 0x72,
1352	0x7b, 0x8f, 0x17, 0x26, 0xc7, 0x24, 0xa6, 0xa7, 0x91, 0x6e, 0xc1, 0x9b, 0xfb, 0x92, 0xa8, 0x09,
1353	0x8e, 0x4d, 0x00, 0x8d, 0x15, 0x27, 0x63, 0x15, 0x4a, 0xfc, 0x73, 0x7d, 0xa6, 0xf2, 0xb5, 0x33,
1354	0x1d, 0x70, 0x1e, 0x7e, 0xa0, 0x61, 0xcc, 0x5c, 0x5b, 0x39, 0xfb, 0xb1, 0xe2, 0x27, 0x2a, 0xd4,
1355	0x83, 0xcb, 0x7a, 0x49, 0x6e, 0xa8, 0xf8, 0x27, 0x16, 0x91, 0x31, 0x8f, 0x23, 0x85, 0xef, 0x99,
1356	0xc1, 0x65, 0xb4, 0x3d, 0x5f, 0xf6, 0x13, 0xdd, 0x49, 0xa2, 0x42, 0x3b, 0x80, 0x74, 0xd6, 0x24,
1357	0x23, 0x9f, 0xde, 0x48, 0x22, 0x29, 0xf9, 0xf3, 0x17, 0x85, 0x1f, 0x6a, 0x83, 0x62, 0x92, 0x37,
1358	0xc9, 0xde, 0xbf, 0x91, 0x3d, 0x7a, 0xfc, 0x45, 0xa1, 0xc7, 0x90, 0x57, 0x22, 0x96, 0x8a, 0xf8,
1359	0x7c, 0x4c, 0x83, 0x08, 0x97, 0x75, 0x61, 0xe5, 0xb4, 0xac, 0xa9, 0x45, 0xe8, 0x7b, 0xd8, 0x9c,
1360	0x87, 0x10, 0x1a, 0x06, 0x54, 0x32, 0x89, 0xeb, 0x95, 0xd5, 0xda, 0x1d, 0x17, 0xcd, 0x41, 0xf7,
1361	0x8d, 0x06, 0xfd, 0x16, 0xee, 0xa7, 0xec, 0xb6, 0x35, 0x41, 0xd8, 0x57, 0xbd, 0x19, 0x28, 0x8e,
1362	0x1f, 0x69, 0xb3, 0xbb, 0x16, 0x60, 0x0b, 0xa2, 0xa5, 0xd5, 0x7d, 0x8e, 0xde, 0xc1, 0xe3, 0xd4,
1363	0xf4, 0x73, 0x20, 0x54, 0x4c, 0xc3, 0x05, 0x2e, 0x2a, 0xda, 0xc5, 0x43, 0x0b, 0xfc, 0x60, 0x70,
1364	0x57, 0x3d, 0x1d, 0x43, 0x35, 0xf5, 0x74, 0x75, 0xe7, 0x99, 0x73, 0xf5, 0x58, 0xbb, 0xda, 0xb6,
1365	0xc8, 0xe6, 0x0c, 0xe8, 0xc6, 0xe1, 0xcc, 0xd7, 0x33, 0x28, 0x0a, 0xce, 0x15, 0x89, 0xe8, 0x98,
1366	0xc9, 0x09, 0xf5, 0x18, 0xae, 0x9a, 0x56, 0x95, 0x48, 0x4f, 0x53, 0x21, 0x1a, 0xc0, 0x46, 0xc8,
1367	0x3d, 0x1a, 0x06, 0xea, 0x82, 0x84, 0xe7, 0x44, 0x9a, 0x81, 0x85, 0x9f, 0xe8, 0x67, 0xff, 0xf5,
1368	0x7f, 0x19, 0x7a, 0x6d, 0x6b, 0xd5, 0xe6, 0xd4, 0x3f, 0xa0, 0x21, 0x8d, 0x3c, 0x26, 0xec, 0xb8,
1369	0x73, 0xd7, 0x53, 0x97, 0xed, 0x73, 0x2b, 0x42, 0x0d, 0x70, 0xfc, 0x68, 0x46, 0x78, 0x41, 0x15,
1370	0xc3, 0x4f, 0x97, 0x0e, 0x7d, 0x3f, 0x4a, 0xb9, 0xee, 0x52, 0xc5, 0x92, 0x67, 0x4d, 0x17, 0x2a,
1371	0xbb, 0xb6, 0x9d, 0x53, 0xe5, 0x8d, 0xf0, 0x33, 0xcd, 0x13, 0x64, 0x75, 0x66, 0x83, 0x3a, 0x48,
1372	0x34, 0xe8, 0x37, 0x80, 0xe7, 0x91, 0x64, 0x4c, 0xbf, 0x12, 0x16, 0x29, 0x11, 0x30, 0x89, 0x9f,
1373	0x57, 0x32, 0xb5, 0x82, 0xbb, 0x25, 0x66, 0xf0, 0x13, 0xfa, 0xb5, 0x65, 0x94, 0xa8, 0x0d, 0x5b,
1374	0xd7, 0x0c, 0x93, 0xed, 0x02, 0xbf, 0x58, 0x76, 0x68, 0x74, 0xd9, 0x61, 0xb2, 0x57, 0xa0, 0x3f,
1375	0xc1, 0xfa, 0x68, 0x8f, 0xc4, 0x93, 0xa1, 0xa0, 0xd3, 0x96, 0x82, 0xbf, 0xd3, 0x2d, 0x7e, 0x77,
1376	0x59, 0x0f, 0x7b, 0xb7, 0x77, 0x66, 0xec, 0x6c, 0xf7, 0x2a, 0x8d, 0x2e, 0x0b, 0x12, 0xea, 0x06,
1377	0x91, 0xe9, 0x92, 0x5e, 0x18, 0x4b, 0xc5, 0x04, 0x91, 0x8a, 0x9a, 0x97, 0xc7, 0x2f, 0xf5, 0xa3,
1378	0xdf, 0xb5, 0x80, 0x86, 0xd1, 0xf7, 0x14, 0xd5, 0x14, 0x48, 0x36, 0xd4, 0x69, 0x87, 0xbd, 0x6e,
1379	0xfb, 0x0b, 0x6d, 0x3b, 0xed, 0xc1, 0x57, 0x8d, 0x9b, 0x90, 0xf7, 0x98, 0x50, 0xc1, 0x20, 0xf0,
1380	0xa8, 0x62, 0x12, 0xef, 0xea, 0xb6, 0xb3, 0x78, 0x1c, 0x34, 0x66, 0x40, 0xf7, 0x92, 0x15, 0xfa,
1381	0x03, 0x14, 0xd4, 0x48, 0x04, 0x83, 0xe9, 0x54, 0x79, 0xa5, 0x13, 0xfc, 0x72, 0x59, 0x5a, 0xfa,
1382	0xda, 0xc8, 0x4e, 0x98, 0xbc, 0x9a, 0xfb, 0x42, 0x3f, 0x82, 0x93, 0x16, 0xa0, 0xe5, 0xb3, 0xc4,
1383	0x7b, 0xfa, 0x70, 0x4b, 0x93, 0x6d, 0x2b, 0x32, 0xdd, 0xdb, 0xdc, 0x92, 0xbc, 0x2c, 0x40, 0x2e,
1384	0xdc, 0xb3, 0xdd, 0x6d, 0x22, 0xf8, 0x98, 0xa9, 0x11, 0x8b, 0x25, 0x19, 0x33, 0x31, 0x64, 0xf8,
1385	0xf5, 0xd2, 0x56, 0xb9, 0x65, 0x4c, 0xbb, 0x53, 0xcb, 0x93, 0xc4, 0xb0, 0xfc, 0xb7, 0x0c, 0x6c,
1386	0x2d, 0x9c, 0x54, 0xe8, 0x14, 0xd6, 0xf4, 0xea, 0x96, 0xd1, 0x54, 0xf9, 0xdd, 0x4f, 0x1a, 0x77,
1387	0x75, 0xbd, 0xbf, 0x69, 0x3f, 0xd5, 0x26, 0xac, 0xe9, 0xb5, 0x6d, 0x1d, 0x0a, 0x6e, 0xeb, 0xed,
1388	0x51, 0xaf, 0xef, 0x7e, 0x24, 0x9d, 0xd3, 0xf6, 0x47, 0xe7, 0x06, 0x2a, 0xc0, 0x9d, 0xfd, 0x76,
1389	0xbb, 0xf3, 0x03, 0xd9, 0x3f, 0xfd, 0xe8, 0x64, 0xaa, 0x6b, 0xd9, 0x15, 0x67, 0x65, 0x67, 0xf3,
1390	0xc3, 0x91, 0xdb, 0x3f, 0xdb, 0x6f, 0x93, 0x5e, 0xcb, 0xfd, 0x70, 0xd4, 0x68, 0x69, 0x70, 0xf9,
1391	0x2f, 0x90, 0x9f, 0xcf, 0x3e, 0x7a, 0x0a, 0xc5, 0xa4, 0x9e, 0x49, 0x18, 0x8c, 0x03, 0x45, 0x62,
1392	0x11, 0xda, 0x5f, 0x5d, 0xf9, 0x44, 0xda, 0x4e, 0x84, 0x67, 0x22, 0x44, 0x6f, 0x01, 0xcd, 0xa1,
1393	0xd2, 0x4d, 0x7d, 0x65, 0x59, 0x39, 0x39, 0x53, 0x27, 0x76, 0x43, 0x2f, 0xff, 0x3d, 0x03, 0xa5,
1394	0x2b, 0xef, 0x84, 0xfa, 0x90, 0x9d, 0x3e, 0x75, 0x46, 0xbb, 0x7c, 0xf3, 0x7f, 0x3e, 0x75, 0x7d,
1395	0xfa, 0xe6, 0x53, 0x4f, 0x68, 0x13, 0x6e, 0x8e, 0xb8, 0x54, 0x12, 0xaf, 0xe8, 0x96, 0x6b, 0x3e,
1396	0xca, 0xbb, 0x90, 0x9d, 0xc6, 0x7d, 0x02, 0x85, 0xb4, 0x6e, 0x74, 0xcf, 0xd3, 0xc1, 0xb3, 0x6e,
1397	0xde, 0x0a, 0x75, 0x93, 0xac, 0x1e, 0xc3, 0xd6, 0xc2, 0xa5, 0x1a, 0x95, 0x20, 0x77, 0x76, 0xda,
1398	0xeb, 0xb6, 0x1a, 0x47, 0x87, 0x47, 0xad, 0xa6, 0x73, 0x03, 0xdd, 0x86, 0xd5, 0xce, 0xe1, 0xa1,
1399	0x93, 0x41, 0x39, 0xb8, 0xdd, 0x6c, 0x1d, 0xee, 0x9f, 0xb5, 0xfb, 0xce, 0x0a, 0x02, 0xb8, 0xd5,
1400	0xeb, 0xbb, 0x47, 0x8d, 0xbe, 0xb3, 0x5a, 0x7d, 0x0e, 0x30, 0x5b, 0x89, 0x51, 0x16, 0xd6, 0x4e,
1401	0x3b, 0xa7, 0x2d, 0xe7, 0x06, 0x2a, 0x02, 0x9c, 0x9c, 0xe9, 0xa7, 0xea, 0xb7, 0x7b, 0x4e, 0xa6,
1402	0xfa, 0x02, 0xd6, 0xaf, 0xed, 0x86, 0x09, 0xbc, 0xdf, 0xfa, 0x63, 0xdf, 0xb9, 0x91, 0xfc, 0x75,
1403	0xdc, 0xeb, 0x9c, 0x3a, 0x99, 0xea, 0x1e, 0x94, 0xae, 0x74, 0x18, 0x84, 0xa0, 0xd8, 0xec, 0x90,
1404	0xd3, 0x4e, 0x9f, 0x9c, 0x75, 0xdf, 0xba, 0xfb, 0xcd, 0xc4, 0x7f, 0x0e, 0x6e, 0xa7, 0x1f, 0x99,
1405	0xe3, 0xb5, 0x6c, 0xc9, 0x71, 0x8e, 0xd7, 0xb2, 0xc8, 0xd9, 0xa8, 0xfe, 0x33, 0x03, 0xf9, 0xf9,
1406	0xa5, 0x02, 0x61, 0xb8, 0x9d, 0x2e, 0x76, 0x86, 0x06, 0xe9, 0x27, 0xea, 0x40, 0x5e, 0x85, 0x72,
1407	0x56, 0x93, 0x2b, 0x97, 0x2a, 0x7d, 0xe1, 0x2f, 0x2b, 0xbd, 0x62, 0xf5, 0xdb, 0xbd, 0xe9, 0xe3,
1408	0xe4, 0x54, 0x28, 0xa7, 0xd9, 0xef, 0xc2, 0xa6, 0x8c, 0xcf, 0xa5, 0x27, 0x82, 0x73, 0xe6, 0x13,
1409	0xc1, 0xd2, 0x05, 0x68, 0xb5, 0xb2, 0x5a, 0x2b, 0xee, 0x3d, 0x5c, 0xc8, 0x00, 0xd7, 0xa2, 0xdc,
1410	0x8d, 0x99, 0x69, 0x2a, 0x93, 0xd5, 0xf7, 0x90, 0x9b, 0x6b, 0x55, 0xe8, 0x11, 0xe4, 0x24, 0xf3,
1411	0x04, 0xb3, 0x0d, 0xd1, 0xdc, 0x07, 0x8c, 0x48, 0xf7, 0xc0, 0x07, 0x70, 0x27, 0x19, 0x6b, 0x7a,
1412	0xc8, 0x5a, 0x96, 0x64, 0xfd, 0x48, 0xea, 0xf9, 0xba, 0x53, 0x81, 0x6c, 0xea, 0x19, 0x6d, 0x82,
1413	0x93, 0xd6, 0x50, 0x5a, 0x79, 0xce, 0x8d, 0x83, 0xda, 0x3f, 0xbe, 0x6d, 0x67, 0xfe, 0xf5, 0x6d,
1414	0x3b, 0xf3, 0xef, 0x6f, 0xdb, 0x99, 0x1f, 0xcb, 0xe6, 0xbc, 0x01, 0xdf, 0xa5, 0x93, 0x60, 0xf7,
1415	0xd2, 0x3f, 0x49, 0xce, 0x6f, 0xe9, 0xca, 0x78, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3,
1416	0x71, 0x97, 0x73, 0xad, 0x11, 0x00, 0x00,
1417}
1418
1419func (m *MeshConfig) Marshal() (dAtA []byte, err error) {
1420	size := m.Size()
1421	dAtA = make([]byte, size)
1422	n, err := m.MarshalToSizedBuffer(dAtA[:size])
1423	if err != nil {
1424		return nil, err
1425	}
1426	return dAtA[:n], nil
1427}
1428
1429func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
1430	size := m.Size()
1431	return m.MarshalToSizedBuffer(dAtA[:size])
1432}
1433
1434func (m *MeshConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
1435	i := len(dAtA)
1436	_ = i
1437	var l int
1438	_ = l
1439	if m.XXX_unrecognized != nil {
1440		i -= len(m.XXX_unrecognized)
1441		copy(dAtA[i:], m.XXX_unrecognized)
1442	}
1443	if len(m.IngressSelector) > 0 {
1444		i -= len(m.IngressSelector)
1445		copy(dAtA[i:], m.IngressSelector)
1446		i = encodeVarintConfig(dAtA, i, uint64(len(m.IngressSelector)))
1447		i--
1448		dAtA[i] = 0x3
1449		i--
1450		dAtA[i] = 0xa2
1451	}
1452	if m.EnablePrometheusMerge != nil {
1453		{
1454			size, err := m.EnablePrometheusMerge.MarshalToSizedBuffer(dAtA[:i])
1455			if err != nil {
1456				return 0, err
1457			}
1458			i -= size
1459			i = encodeVarintConfig(dAtA, i, uint64(size))
1460		}
1461		i--
1462		dAtA[i] = 0x3
1463		i--
1464		dAtA[i] = 0x9a
1465	}
1466	if len(m.ServiceSettings) > 0 {
1467		for iNdEx := len(m.ServiceSettings) - 1; iNdEx >= 0; iNdEx-- {
1468			{
1469				size, err := m.ServiceSettings[iNdEx].MarshalToSizedBuffer(dAtA[:i])
1470				if err != nil {
1471					return 0, err
1472				}
1473				i -= size
1474				i = encodeVarintConfig(dAtA, i, uint64(size))
1475			}
1476			i--
1477			dAtA[i] = 0x3
1478			i--
1479			dAtA[i] = 0x92
1480		}
1481	}
1482	if m.ThriftConfig != nil {
1483		{
1484			size, err := m.ThriftConfig.MarshalToSizedBuffer(dAtA[:i])
1485			if err != nil {
1486				return 0, err
1487			}
1488			i -= size
1489			i = encodeVarintConfig(dAtA, i, uint64(size))
1490		}
1491		i--
1492		dAtA[i] = 0x3
1493		i--
1494		dAtA[i] = 0x8a
1495	}
1496	if m.DisableMixerHttpReports {
1497		i--
1498		if m.DisableMixerHttpReports {
1499			dAtA[i] = 1
1500		} else {
1501			dAtA[i] = 0
1502		}
1503		i--
1504		dAtA[i] = 0x3
1505		i--
1506		dAtA[i] = 0x80
1507	}
1508	if len(m.Certificates) > 0 {
1509		for iNdEx := len(m.Certificates) - 1; iNdEx >= 0; iNdEx-- {
1510			{
1511				size, err := m.Certificates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
1512				if err != nil {
1513					return 0, err
1514				}
1515				i -= size
1516				i = encodeVarintConfig(dAtA, i, uint64(size))
1517			}
1518			i--
1519			dAtA[i] = 0x2
1520			i--
1521			dAtA[i] = 0xfa
1522		}
1523	}
1524	if len(m.TrustDomainAliases) > 0 {
1525		for iNdEx := len(m.TrustDomainAliases) - 1; iNdEx >= 0; iNdEx-- {
1526			i -= len(m.TrustDomainAliases[iNdEx])
1527			copy(dAtA[i:], m.TrustDomainAliases[iNdEx])
1528			i = encodeVarintConfig(dAtA, i, uint64(len(m.TrustDomainAliases[iNdEx])))
1529			i--
1530			dAtA[i] = 0x2
1531			i--
1532			dAtA[i] = 0xf2
1533		}
1534	}
1535	if len(m.OutboundClusterStatName) > 0 {
1536		i -= len(m.OutboundClusterStatName)
1537		copy(dAtA[i:], m.OutboundClusterStatName)
1538		i = encodeVarintConfig(dAtA, i, uint64(len(m.OutboundClusterStatName)))
1539		i--
1540		dAtA[i] = 0x2
1541		i--
1542		dAtA[i] = 0xea
1543	}
1544	if len(m.InboundClusterStatName) > 0 {
1545		i -= len(m.InboundClusterStatName)
1546		copy(dAtA[i:], m.InboundClusterStatName)
1547		i = encodeVarintConfig(dAtA, i, uint64(len(m.InboundClusterStatName)))
1548		i--
1549		dAtA[i] = 0x2
1550		i--
1551		dAtA[i] = 0xe2
1552	}
1553	if m.EnableAutoMtls != nil {
1554		{
1555			size, err := m.EnableAutoMtls.MarshalToSizedBuffer(dAtA[:i])
1556			if err != nil {
1557				return 0, err
1558			}
1559			i -= size
1560			i = encodeVarintConfig(dAtA, i, uint64(size))
1561		}
1562		i--
1563		dAtA[i] = 0x2
1564		i--
1565		dAtA[i] = 0xda
1566	}
1567	if m.ProtocolDetectionTimeout != nil {
1568		{
1569			size, err := m.ProtocolDetectionTimeout.MarshalToSizedBuffer(dAtA[:i])
1570			if err != nil {
1571				return 0, err
1572			}
1573			i -= size
1574			i = encodeVarintConfig(dAtA, i, uint64(size))
1575		}
1576		i--
1577		dAtA[i] = 0x2
1578		i--
1579		dAtA[i] = 0xd2
1580	}
1581	if m.H2UpgradePolicy != 0 {
1582		i = encodeVarintConfig(dAtA, i, uint64(m.H2UpgradePolicy))
1583		i--
1584		dAtA[i] = 0x2
1585		i--
1586		dAtA[i] = 0xc8
1587	}
1588	if m.EnableEnvoyAccessLogService {
1589		i--
1590		if m.EnableEnvoyAccessLogService {
1591			dAtA[i] = 1
1592		} else {
1593			dAtA[i] = 0
1594		}
1595		i--
1596		dAtA[i] = 0x2
1597		i--
1598		dAtA[i] = 0xc0
1599	}
1600	if m.ReportBatchMaxTime != nil {
1601		{
1602			size, err := m.ReportBatchMaxTime.MarshalToSizedBuffer(dAtA[:i])
1603			if err != nil {
1604				return 0, err
1605			}
1606			i -= size
1607			i = encodeVarintConfig(dAtA, i, uint64(size))
1608		}
1609		i--
1610		dAtA[i] = 0x2
1611		i--
1612		dAtA[i] = 0xba
1613	}
1614	if m.ReportBatchMaxEntries != 0 {
1615		i = encodeVarintConfig(dAtA, i, uint64(m.ReportBatchMaxEntries))
1616		i--
1617		dAtA[i] = 0x2
1618		i--
1619		dAtA[i] = 0xb0
1620	}
1621	if m.DisableReportBatch {
1622		i--
1623		if m.DisableReportBatch {
1624			dAtA[i] = 1
1625		} else {
1626			dAtA[i] = 0
1627		}
1628		i--
1629		dAtA[i] = 0x2
1630		i--
1631		dAtA[i] = 0xa8
1632	}
1633	if m.DnsRefreshRate != nil {
1634		{
1635			size, err := m.DnsRefreshRate.MarshalToSizedBuffer(dAtA[:i])
1636			if err != nil {
1637				return 0, err
1638			}
1639			i -= size
1640			i = encodeVarintConfig(dAtA, i, uint64(size))
1641		}
1642		i--
1643		dAtA[i] = 0x2
1644		i--
1645		dAtA[i] = 0xa2
1646	}
1647	if m.LocalityLbSetting != nil {
1648		{
1649			size, err := m.LocalityLbSetting.MarshalToSizedBuffer(dAtA[:i])
1650			if err != nil {
1651				return 0, err
1652			}
1653			i -= size
1654			i = encodeVarintConfig(dAtA, i, uint64(size))
1655		}
1656		i--
1657		dAtA[i] = 0x2
1658		i--
1659		dAtA[i] = 0x9a
1660	}
1661	if len(m.RootNamespace) > 0 {
1662		i -= len(m.RootNamespace)
1663		copy(dAtA[i:], m.RootNamespace)
1664		i = encodeVarintConfig(dAtA, i, uint64(len(m.RootNamespace)))
1665		i--
1666		dAtA[i] = 0x2
1667		i--
1668		dAtA[i] = 0x92
1669	}
1670	if len(m.DefaultDestinationRuleExportTo) > 0 {
1671		for iNdEx := len(m.DefaultDestinationRuleExportTo) - 1; iNdEx >= 0; iNdEx-- {
1672			i -= len(m.DefaultDestinationRuleExportTo[iNdEx])
1673			copy(dAtA[i:], m.DefaultDestinationRuleExportTo[iNdEx])
1674			i = encodeVarintConfig(dAtA, i, uint64(len(m.DefaultDestinationRuleExportTo[iNdEx])))
1675			i--
1676			dAtA[i] = 0x2
1677			i--
1678			dAtA[i] = 0x8a
1679		}
1680	}
1681	if len(m.DefaultVirtualServiceExportTo) > 0 {
1682		for iNdEx := len(m.DefaultVirtualServiceExportTo) - 1; iNdEx >= 0; iNdEx-- {
1683			i -= len(m.DefaultVirtualServiceExportTo[iNdEx])
1684			copy(dAtA[i:], m.DefaultVirtualServiceExportTo[iNdEx])
1685			i = encodeVarintConfig(dAtA, i, uint64(len(m.DefaultVirtualServiceExportTo[iNdEx])))
1686			i--
1687			dAtA[i] = 0x2
1688			i--
1689			dAtA[i] = 0x82
1690		}
1691	}
1692	if len(m.DefaultServiceExportTo) > 0 {
1693		for iNdEx := len(m.DefaultServiceExportTo) - 1; iNdEx >= 0; iNdEx-- {
1694			i -= len(m.DefaultServiceExportTo[iNdEx])
1695			copy(dAtA[i:], m.DefaultServiceExportTo[iNdEx])
1696			i = encodeVarintConfig(dAtA, i, uint64(len(m.DefaultServiceExportTo[iNdEx])))
1697			i--
1698			dAtA[i] = 0x1
1699			i--
1700			dAtA[i] = 0xfa
1701		}
1702	}
1703	if m.SidecarToTelemetrySessionAffinity {
1704		i--
1705		if m.SidecarToTelemetrySessionAffinity {
1706			dAtA[i] = 1
1707		} else {
1708			dAtA[i] = 0
1709		}
1710		i--
1711		dAtA[i] = 0x1
1712		i--
1713		dAtA[i] = 0xf0
1714	}
1715	if m.SdsUseK8SSaJwt {
1716		i--
1717		if m.SdsUseK8SSaJwt {
1718			dAtA[i] = 1
1719		} else {
1720			dAtA[i] = 0
1721		}
1722		i--
1723		dAtA[i] = 0x1
1724		i--
1725		dAtA[i] = 0xe8
1726	}
1727	if m.TcpKeepalive != nil {
1728		{
1729			size, err := m.TcpKeepalive.MarshalToSizedBuffer(dAtA[:i])
1730			if err != nil {
1731				return 0, err
1732			}
1733			i -= size
1734			i = encodeVarintConfig(dAtA, i, uint64(size))
1735		}
1736		i--
1737		dAtA[i] = 0x1
1738		i--
1739		dAtA[i] = 0xe2
1740	}
1741	if m.AccessLogEncoding != 0 {
1742		i = encodeVarintConfig(dAtA, i, uint64(m.AccessLogEncoding))
1743		i--
1744		dAtA[i] = 0x1
1745		i--
1746		dAtA[i] = 0xd8
1747	}
1748	if len(m.TrustDomain) > 0 {
1749		i -= len(m.TrustDomain)
1750		copy(dAtA[i:], m.TrustDomain)
1751		i = encodeVarintConfig(dAtA, i, uint64(len(m.TrustDomain)))
1752		i--
1753		dAtA[i] = 0x1
1754		i--
1755		dAtA[i] = 0xd2
1756	}
1757	if m.PolicyCheckFailOpen {
1758		i--
1759		if m.PolicyCheckFailOpen {
1760			dAtA[i] = 1
1761		} else {
1762			dAtA[i] = 0
1763		}
1764		i--
1765		dAtA[i] = 0x1
1766		i--
1767		dAtA[i] = 0xc8
1768	}
1769	if len(m.AccessLogFormat) > 0 {
1770		i -= len(m.AccessLogFormat)
1771		copy(dAtA[i:], m.AccessLogFormat)
1772		i = encodeVarintConfig(dAtA, i, uint64(len(m.AccessLogFormat)))
1773		i--
1774		dAtA[i] = 0x1
1775		i--
1776		dAtA[i] = 0xc2
1777	}
1778	if m.EnableSdsTokenMount {
1779		i--
1780		if m.EnableSdsTokenMount {
1781			dAtA[i] = 1
1782		} else {
1783			dAtA[i] = 0
1784		}
1785		i--
1786		dAtA[i] = 0x1
1787		i--
1788		dAtA[i] = 0xb8
1789	}
1790	if len(m.ConfigSources) > 0 {
1791		for iNdEx := len(m.ConfigSources) - 1; iNdEx >= 0; iNdEx-- {
1792			{
1793				size, err := m.ConfigSources[iNdEx].MarshalToSizedBuffer(dAtA[:i])
1794				if err != nil {
1795					return 0, err
1796				}
1797				i -= size
1798				i = encodeVarintConfig(dAtA, i, uint64(size))
1799			}
1800			i--
1801			dAtA[i] = 0x1
1802			i--
1803			dAtA[i] = 0xb2
1804		}
1805	}
1806	if m.SdsRefreshDelay != nil {
1807		{
1808			size, err := m.SdsRefreshDelay.MarshalToSizedBuffer(dAtA[:i])
1809			if err != nil {
1810				return 0, err
1811			}
1812			i -= size
1813			i = encodeVarintConfig(dAtA, i, uint64(size))
1814		}
1815		i--
1816		dAtA[i] = 0x1
1817		i--
1818		dAtA[i] = 0xaa
1819	}
1820	if len(m.SdsUdsPath) > 0 {
1821		i -= len(m.SdsUdsPath)
1822		copy(dAtA[i:], m.SdsUdsPath)
1823		i = encodeVarintConfig(dAtA, i, uint64(len(m.SdsUdsPath)))
1824		i--
1825		dAtA[i] = 0x1
1826		i--
1827		dAtA[i] = 0xa2
1828	}
1829	if m.EnableClientSidePolicyCheck {
1830		i--
1831		if m.EnableClientSidePolicyCheck {
1832			dAtA[i] = 1
1833		} else {
1834			dAtA[i] = 0
1835		}
1836		i--
1837		dAtA[i] = 0x1
1838		i--
1839		dAtA[i] = 0x98
1840	}
1841	if m.OutboundTrafficPolicy != nil {
1842		{
1843			size, err := m.OutboundTrafficPolicy.MarshalToSizedBuffer(dAtA[:i])
1844			if err != nil {
1845				return 0, err
1846			}
1847			i -= size
1848			i = encodeVarintConfig(dAtA, i, uint64(size))
1849		}
1850		i--
1851		dAtA[i] = 0x1
1852		i--
1853		dAtA[i] = 0x8a
1854	}
1855	if len(m.MixerAddress) > 0 {
1856		i -= len(m.MixerAddress)
1857		copy(dAtA[i:], m.MixerAddress)
1858		i = encodeVarintConfig(dAtA, i, uint64(len(m.MixerAddress)))
1859		i--
1860		dAtA[i] = 0x1
1861		i--
1862		dAtA[i] = 0x82
1863	}
1864	if m.DefaultConfig != nil {
1865		{
1866			size, err := m.DefaultConfig.MarshalToSizedBuffer(dAtA[:i])
1867			if err != nil {
1868				return 0, err
1869			}
1870			i -= size
1871			i = encodeVarintConfig(dAtA, i, uint64(size))
1872		}
1873		i--
1874		dAtA[i] = 0x72
1875	}
1876	if len(m.AccessLogFile) > 0 {
1877		i -= len(m.AccessLogFile)
1878		copy(dAtA[i:], m.AccessLogFile)
1879		i = encodeVarintConfig(dAtA, i, uint64(len(m.AccessLogFile)))
1880		i--
1881		dAtA[i] = 0x6a
1882	}
1883	if m.EnableTracing {
1884		i--
1885		if m.EnableTracing {
1886			dAtA[i] = 1
1887		} else {
1888			dAtA[i] = 0
1889		}
1890		i--
1891		dAtA[i] = 0x60
1892	}
1893	if m.RdsRefreshDelay != nil {
1894		{
1895			size, err := m.RdsRefreshDelay.MarshalToSizedBuffer(dAtA[:i])
1896			if err != nil {
1897				return 0, err
1898			}
1899			i -= size
1900			i = encodeVarintConfig(dAtA, i, uint64(size))
1901		}
1902		i--
1903		dAtA[i] = 0x5a
1904	}
1905	if m.AuthPolicy != 0 {
1906		i = encodeVarintConfig(dAtA, i, uint64(m.AuthPolicy))
1907		i--
1908		dAtA[i] = 0x50
1909	}
1910	if m.IngressControllerMode != 0 {
1911		i = encodeVarintConfig(dAtA, i, uint64(m.IngressControllerMode))
1912		i--
1913		dAtA[i] = 0x48
1914	}
1915	if len(m.IngressService) > 0 {
1916		i -= len(m.IngressService)
1917		copy(dAtA[i:], m.IngressService)
1918		i = encodeVarintConfig(dAtA, i, uint64(len(m.IngressService)))
1919		i--
1920		dAtA[i] = 0x42
1921	}
1922	if len(m.IngressClass) > 0 {
1923		i -= len(m.IngressClass)
1924		copy(dAtA[i:], m.IngressClass)
1925		i = encodeVarintConfig(dAtA, i, uint64(len(m.IngressClass)))
1926		i--
1927		dAtA[i] = 0x3a
1928	}
1929	if m.ConnectTimeout != nil {
1930		{
1931			size, err := m.ConnectTimeout.MarshalToSizedBuffer(dAtA[:i])
1932			if err != nil {
1933				return 0, err
1934			}
1935			i -= size
1936			i = encodeVarintConfig(dAtA, i, uint64(size))
1937		}
1938		i--
1939		dAtA[i] = 0x32
1940	}
1941	if m.ProxyHttpPort != 0 {
1942		i = encodeVarintConfig(dAtA, i, uint64(m.ProxyHttpPort))
1943		i--
1944		dAtA[i] = 0x28
1945	}
1946	if m.ProxyListenPort != 0 {
1947		i = encodeVarintConfig(dAtA, i, uint64(m.ProxyListenPort))
1948		i--
1949		dAtA[i] = 0x20
1950	}
1951	if m.DisablePolicyChecks {
1952		i--
1953		if m.DisablePolicyChecks {
1954			dAtA[i] = 1
1955		} else {
1956			dAtA[i] = 0
1957		}
1958		i--
1959		dAtA[i] = 0x18
1960	}
1961	if len(m.MixerReportServer) > 0 {
1962		i -= len(m.MixerReportServer)
1963		copy(dAtA[i:], m.MixerReportServer)
1964		i = encodeVarintConfig(dAtA, i, uint64(len(m.MixerReportServer)))
1965		i--
1966		dAtA[i] = 0x12
1967	}
1968	if len(m.MixerCheckServer) > 0 {
1969		i -= len(m.MixerCheckServer)
1970		copy(dAtA[i:], m.MixerCheckServer)
1971		i = encodeVarintConfig(dAtA, i, uint64(len(m.MixerCheckServer)))
1972		i--
1973		dAtA[i] = 0xa
1974	}
1975	return len(dAtA) - i, nil
1976}
1977
1978func (m *MeshConfig_OutboundTrafficPolicy) Marshal() (dAtA []byte, err error) {
1979	size := m.Size()
1980	dAtA = make([]byte, size)
1981	n, err := m.MarshalToSizedBuffer(dAtA[:size])
1982	if err != nil {
1983		return nil, err
1984	}
1985	return dAtA[:n], nil
1986}
1987
1988func (m *MeshConfig_OutboundTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
1989	size := m.Size()
1990	return m.MarshalToSizedBuffer(dAtA[:size])
1991}
1992
1993func (m *MeshConfig_OutboundTrafficPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {
1994	i := len(dAtA)
1995	_ = i
1996	var l int
1997	_ = l
1998	if m.XXX_unrecognized != nil {
1999		i -= len(m.XXX_unrecognized)
2000		copy(dAtA[i:], m.XXX_unrecognized)
2001	}
2002	if m.Mode != 0 {
2003		i = encodeVarintConfig(dAtA, i, uint64(m.Mode))
2004		i--
2005		dAtA[i] = 0x8
2006	}
2007	return len(dAtA) - i, nil
2008}
2009
2010func (m *MeshConfig_ThriftConfig) Marshal() (dAtA []byte, err error) {
2011	size := m.Size()
2012	dAtA = make([]byte, size)
2013	n, err := m.MarshalToSizedBuffer(dAtA[:size])
2014	if err != nil {
2015		return nil, err
2016	}
2017	return dAtA[:n], nil
2018}
2019
2020func (m *MeshConfig_ThriftConfig) MarshalTo(dAtA []byte) (int, error) {
2021	size := m.Size()
2022	return m.MarshalToSizedBuffer(dAtA[:size])
2023}
2024
2025func (m *MeshConfig_ThriftConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
2026	i := len(dAtA)
2027	_ = i
2028	var l int
2029	_ = l
2030	if m.XXX_unrecognized != nil {
2031		i -= len(m.XXX_unrecognized)
2032		copy(dAtA[i:], m.XXX_unrecognized)
2033	}
2034	if m.RateLimitTimeout != nil {
2035		{
2036			size, err := m.RateLimitTimeout.MarshalToSizedBuffer(dAtA[:i])
2037			if err != nil {
2038				return 0, err
2039			}
2040			i -= size
2041			i = encodeVarintConfig(dAtA, i, uint64(size))
2042		}
2043		i--
2044		dAtA[i] = 0x12
2045	}
2046	if len(m.RateLimitUrl) > 0 {
2047		i -= len(m.RateLimitUrl)
2048		copy(dAtA[i:], m.RateLimitUrl)
2049		i = encodeVarintConfig(dAtA, i, uint64(len(m.RateLimitUrl)))
2050		i--
2051		dAtA[i] = 0xa
2052	}
2053	return len(dAtA) - i, nil
2054}
2055
2056func (m *MeshConfig_ServiceSettings) Marshal() (dAtA []byte, err error) {
2057	size := m.Size()
2058	dAtA = make([]byte, size)
2059	n, err := m.MarshalToSizedBuffer(dAtA[:size])
2060	if err != nil {
2061		return nil, err
2062	}
2063	return dAtA[:n], nil
2064}
2065
2066func (m *MeshConfig_ServiceSettings) MarshalTo(dAtA []byte) (int, error) {
2067	size := m.Size()
2068	return m.MarshalToSizedBuffer(dAtA[:size])
2069}
2070
2071func (m *MeshConfig_ServiceSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) {
2072	i := len(dAtA)
2073	_ = i
2074	var l int
2075	_ = l
2076	if m.XXX_unrecognized != nil {
2077		i -= len(m.XXX_unrecognized)
2078		copy(dAtA[i:], m.XXX_unrecognized)
2079	}
2080	if len(m.Hosts) > 0 {
2081		for iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {
2082			i -= len(m.Hosts[iNdEx])
2083			copy(dAtA[i:], m.Hosts[iNdEx])
2084			i = encodeVarintConfig(dAtA, i, uint64(len(m.Hosts[iNdEx])))
2085			i--
2086			dAtA[i] = 0x12
2087		}
2088	}
2089	if m.Settings != nil {
2090		{
2091			size, err := m.Settings.MarshalToSizedBuffer(dAtA[:i])
2092			if err != nil {
2093				return 0, err
2094			}
2095			i -= size
2096			i = encodeVarintConfig(dAtA, i, uint64(size))
2097		}
2098		i--
2099		dAtA[i] = 0xa
2100	}
2101	return len(dAtA) - i, nil
2102}
2103
2104func (m *MeshConfig_ServiceSettings_Settings) Marshal() (dAtA []byte, err error) {
2105	size := m.Size()
2106	dAtA = make([]byte, size)
2107	n, err := m.MarshalToSizedBuffer(dAtA[:size])
2108	if err != nil {
2109		return nil, err
2110	}
2111	return dAtA[:n], nil
2112}
2113
2114func (m *MeshConfig_ServiceSettings_Settings) MarshalTo(dAtA []byte) (int, error) {
2115	size := m.Size()
2116	return m.MarshalToSizedBuffer(dAtA[:size])
2117}
2118
2119func (m *MeshConfig_ServiceSettings_Settings) MarshalToSizedBuffer(dAtA []byte) (int, error) {
2120	i := len(dAtA)
2121	_ = i
2122	var l int
2123	_ = l
2124	if m.XXX_unrecognized != nil {
2125		i -= len(m.XXX_unrecognized)
2126		copy(dAtA[i:], m.XXX_unrecognized)
2127	}
2128	if m.ClusterLocal {
2129		i--
2130		if m.ClusterLocal {
2131			dAtA[i] = 1
2132		} else {
2133			dAtA[i] = 0
2134		}
2135		i--
2136		dAtA[i] = 0x8
2137	}
2138	return len(dAtA) - i, nil
2139}
2140
2141func (m *ConfigSource) Marshal() (dAtA []byte, err error) {
2142	size := m.Size()
2143	dAtA = make([]byte, size)
2144	n, err := m.MarshalToSizedBuffer(dAtA[:size])
2145	if err != nil {
2146		return nil, err
2147	}
2148	return dAtA[:n], nil
2149}
2150
2151func (m *ConfigSource) MarshalTo(dAtA []byte) (int, error) {
2152	size := m.Size()
2153	return m.MarshalToSizedBuffer(dAtA[:size])
2154}
2155
2156func (m *ConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {
2157	i := len(dAtA)
2158	_ = i
2159	var l int
2160	_ = l
2161	if m.XXX_unrecognized != nil {
2162		i -= len(m.XXX_unrecognized)
2163		copy(dAtA[i:], m.XXX_unrecognized)
2164	}
2165	if len(m.SubscribedResources) > 0 {
2166		dAtA17 := make([]byte, len(m.SubscribedResources)*10)
2167		var j16 int
2168		for _, num := range m.SubscribedResources {
2169			for num >= 1<<7 {
2170				dAtA17[j16] = uint8(uint64(num)&0x7f | 0x80)
2171				num >>= 7
2172				j16++
2173			}
2174			dAtA17[j16] = uint8(num)
2175			j16++
2176		}
2177		i -= j16
2178		copy(dAtA[i:], dAtA17[:j16])
2179		i = encodeVarintConfig(dAtA, i, uint64(j16))
2180		i--
2181		dAtA[i] = 0x1a
2182	}
2183	if m.TlsSettings != nil {
2184		{
2185			size, err := m.TlsSettings.MarshalToSizedBuffer(dAtA[:i])
2186			if err != nil {
2187				return 0, err
2188			}
2189			i -= size
2190			i = encodeVarintConfig(dAtA, i, uint64(size))
2191		}
2192		i--
2193		dAtA[i] = 0x12
2194	}
2195	if len(m.Address) > 0 {
2196		i -= len(m.Address)
2197		copy(dAtA[i:], m.Address)
2198		i = encodeVarintConfig(dAtA, i, uint64(len(m.Address)))
2199		i--
2200		dAtA[i] = 0xa
2201	}
2202	return len(dAtA) - i, nil
2203}
2204
2205func (m *Certificate) Marshal() (dAtA []byte, err error) {
2206	size := m.Size()
2207	dAtA = make([]byte, size)
2208	n, err := m.MarshalToSizedBuffer(dAtA[:size])
2209	if err != nil {
2210		return nil, err
2211	}
2212	return dAtA[:n], nil
2213}
2214
2215func (m *Certificate) MarshalTo(dAtA []byte) (int, error) {
2216	size := m.Size()
2217	return m.MarshalToSizedBuffer(dAtA[:size])
2218}
2219
2220func (m *Certificate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
2221	i := len(dAtA)
2222	_ = i
2223	var l int
2224	_ = l
2225	if m.XXX_unrecognized != nil {
2226		i -= len(m.XXX_unrecognized)
2227		copy(dAtA[i:], m.XXX_unrecognized)
2228	}
2229	if len(m.DnsNames) > 0 {
2230		for iNdEx := len(m.DnsNames) - 1; iNdEx >= 0; iNdEx-- {
2231			i -= len(m.DnsNames[iNdEx])
2232			copy(dAtA[i:], m.DnsNames[iNdEx])
2233			i = encodeVarintConfig(dAtA, i, uint64(len(m.DnsNames[iNdEx])))
2234			i--
2235			dAtA[i] = 0x12
2236		}
2237	}
2238	if len(m.SecretName) > 0 {
2239		i -= len(m.SecretName)
2240		copy(dAtA[i:], m.SecretName)
2241		i = encodeVarintConfig(dAtA, i, uint64(len(m.SecretName)))
2242		i--
2243		dAtA[i] = 0xa
2244	}
2245	return len(dAtA) - i, nil
2246}
2247
2248func encodeVarintConfig(dAtA []byte, offset int, v uint64) int {
2249	offset -= sovConfig(v)
2250	base := offset
2251	for v >= 1<<7 {
2252		dAtA[offset] = uint8(v&0x7f | 0x80)
2253		v >>= 7
2254		offset++
2255	}
2256	dAtA[offset] = uint8(v)
2257	return base
2258}
2259func (m *MeshConfig) Size() (n int) {
2260	if m == nil {
2261		return 0
2262	}
2263	var l int
2264	_ = l
2265	l = len(m.MixerCheckServer)
2266	if l > 0 {
2267		n += 1 + l + sovConfig(uint64(l))
2268	}
2269	l = len(m.MixerReportServer)
2270	if l > 0 {
2271		n += 1 + l + sovConfig(uint64(l))
2272	}
2273	if m.DisablePolicyChecks {
2274		n += 2
2275	}
2276	if m.ProxyListenPort != 0 {
2277		n += 1 + sovConfig(uint64(m.ProxyListenPort))
2278	}
2279	if m.ProxyHttpPort != 0 {
2280		n += 1 + sovConfig(uint64(m.ProxyHttpPort))
2281	}
2282	if m.ConnectTimeout != nil {
2283		l = m.ConnectTimeout.Size()
2284		n += 1 + l + sovConfig(uint64(l))
2285	}
2286	l = len(m.IngressClass)
2287	if l > 0 {
2288		n += 1 + l + sovConfig(uint64(l))
2289	}
2290	l = len(m.IngressService)
2291	if l > 0 {
2292		n += 1 + l + sovConfig(uint64(l))
2293	}
2294	if m.IngressControllerMode != 0 {
2295		n += 1 + sovConfig(uint64(m.IngressControllerMode))
2296	}
2297	if m.AuthPolicy != 0 {
2298		n += 1 + sovConfig(uint64(m.AuthPolicy))
2299	}
2300	if m.RdsRefreshDelay != nil {
2301		l = m.RdsRefreshDelay.Size()
2302		n += 1 + l + sovConfig(uint64(l))
2303	}
2304	if m.EnableTracing {
2305		n += 2
2306	}
2307	l = len(m.AccessLogFile)
2308	if l > 0 {
2309		n += 1 + l + sovConfig(uint64(l))
2310	}
2311	if m.DefaultConfig != nil {
2312		l = m.DefaultConfig.Size()
2313		n += 1 + l + sovConfig(uint64(l))
2314	}
2315	l = len(m.MixerAddress)
2316	if l > 0 {
2317		n += 2 + l + sovConfig(uint64(l))
2318	}
2319	if m.OutboundTrafficPolicy != nil {
2320		l = m.OutboundTrafficPolicy.Size()
2321		n += 2 + l + sovConfig(uint64(l))
2322	}
2323	if m.EnableClientSidePolicyCheck {
2324		n += 3
2325	}
2326	l = len(m.SdsUdsPath)
2327	if l > 0 {
2328		n += 2 + l + sovConfig(uint64(l))
2329	}
2330	if m.SdsRefreshDelay != nil {
2331		l = m.SdsRefreshDelay.Size()
2332		n += 2 + l + sovConfig(uint64(l))
2333	}
2334	if len(m.ConfigSources) > 0 {
2335		for _, e := range m.ConfigSources {
2336			l = e.Size()
2337			n += 2 + l + sovConfig(uint64(l))
2338		}
2339	}
2340	if m.EnableSdsTokenMount {
2341		n += 3
2342	}
2343	l = len(m.AccessLogFormat)
2344	if l > 0 {
2345		n += 2 + l + sovConfig(uint64(l))
2346	}
2347	if m.PolicyCheckFailOpen {
2348		n += 3
2349	}
2350	l = len(m.TrustDomain)
2351	if l > 0 {
2352		n += 2 + l + sovConfig(uint64(l))
2353	}
2354	if m.AccessLogEncoding != 0 {
2355		n += 2 + sovConfig(uint64(m.AccessLogEncoding))
2356	}
2357	if m.TcpKeepalive != nil {
2358		l = m.TcpKeepalive.Size()
2359		n += 2 + l + sovConfig(uint64(l))
2360	}
2361	if m.SdsUseK8SSaJwt {
2362		n += 3
2363	}
2364	if m.SidecarToTelemetrySessionAffinity {
2365		n += 3
2366	}
2367	if len(m.DefaultServiceExportTo) > 0 {
2368		for _, s := range m.DefaultServiceExportTo {
2369			l = len(s)
2370			n += 2 + l + sovConfig(uint64(l))
2371		}
2372	}
2373	if len(m.DefaultVirtualServiceExportTo) > 0 {
2374		for _, s := range m.DefaultVirtualServiceExportTo {
2375			l = len(s)
2376			n += 2 + l + sovConfig(uint64(l))
2377		}
2378	}
2379	if len(m.DefaultDestinationRuleExportTo) > 0 {
2380		for _, s := range m.DefaultDestinationRuleExportTo {
2381			l = len(s)
2382			n += 2 + l + sovConfig(uint64(l))
2383		}
2384	}
2385	l = len(m.RootNamespace)
2386	if l > 0 {
2387		n += 2 + l + sovConfig(uint64(l))
2388	}
2389	if m.LocalityLbSetting != nil {
2390		l = m.LocalityLbSetting.Size()
2391		n += 2 + l + sovConfig(uint64(l))
2392	}
2393	if m.DnsRefreshRate != nil {
2394		l = m.DnsRefreshRate.Size()
2395		n += 2 + l + sovConfig(uint64(l))
2396	}
2397	if m.DisableReportBatch {
2398		n += 3
2399	}
2400	if m.ReportBatchMaxEntries != 0 {
2401		n += 2 + sovConfig(uint64(m.ReportBatchMaxEntries))
2402	}
2403	if m.ReportBatchMaxTime != nil {
2404		l = m.ReportBatchMaxTime.Size()
2405		n += 2 + l + sovConfig(uint64(l))
2406	}
2407	if m.EnableEnvoyAccessLogService {
2408		n += 3
2409	}
2410	if m.H2UpgradePolicy != 0 {
2411		n += 2 + sovConfig(uint64(m.H2UpgradePolicy))
2412	}
2413	if m.ProtocolDetectionTimeout != nil {
2414		l = m.ProtocolDetectionTimeout.Size()
2415		n += 2 + l + sovConfig(uint64(l))
2416	}
2417	if m.EnableAutoMtls != nil {
2418		l = m.EnableAutoMtls.Size()
2419		n += 2 + l + sovConfig(uint64(l))
2420	}
2421	l = len(m.InboundClusterStatName)
2422	if l > 0 {
2423		n += 2 + l + sovConfig(uint64(l))
2424	}
2425	l = len(m.OutboundClusterStatName)
2426	if l > 0 {
2427		n += 2 + l + sovConfig(uint64(l))
2428	}
2429	if len(m.TrustDomainAliases) > 0 {
2430		for _, s := range m.TrustDomainAliases {
2431			l = len(s)
2432			n += 2 + l + sovConfig(uint64(l))
2433		}
2434	}
2435	if len(m.Certificates) > 0 {
2436		for _, e := range m.Certificates {
2437			l = e.Size()
2438			n += 2 + l + sovConfig(uint64(l))
2439		}
2440	}
2441	if m.DisableMixerHttpReports {
2442		n += 3
2443	}
2444	if m.ThriftConfig != nil {
2445		l = m.ThriftConfig.Size()
2446		n += 2 + l + sovConfig(uint64(l))
2447	}
2448	if len(m.ServiceSettings) > 0 {
2449		for _, e := range m.ServiceSettings {
2450			l = e.Size()
2451			n += 2 + l + sovConfig(uint64(l))
2452		}
2453	}
2454	if m.EnablePrometheusMerge != nil {
2455		l = m.EnablePrometheusMerge.Size()
2456		n += 2 + l + sovConfig(uint64(l))
2457	}
2458	l = len(m.IngressSelector)
2459	if l > 0 {
2460		n += 2 + l + sovConfig(uint64(l))
2461	}
2462	if m.XXX_unrecognized != nil {
2463		n += len(m.XXX_unrecognized)
2464	}
2465	return n
2466}
2467
2468func (m *MeshConfig_OutboundTrafficPolicy) Size() (n int) {
2469	if m == nil {
2470		return 0
2471	}
2472	var l int
2473	_ = l
2474	if m.Mode != 0 {
2475		n += 1 + sovConfig(uint64(m.Mode))
2476	}
2477	if m.XXX_unrecognized != nil {
2478		n += len(m.XXX_unrecognized)
2479	}
2480	return n
2481}
2482
2483func (m *MeshConfig_ThriftConfig) Size() (n int) {
2484	if m == nil {
2485		return 0
2486	}
2487	var l int
2488	_ = l
2489	l = len(m.RateLimitUrl)
2490	if l > 0 {
2491		n += 1 + l + sovConfig(uint64(l))
2492	}
2493	if m.RateLimitTimeout != nil {
2494		l = m.RateLimitTimeout.Size()
2495		n += 1 + l + sovConfig(uint64(l))
2496	}
2497	if m.XXX_unrecognized != nil {
2498		n += len(m.XXX_unrecognized)
2499	}
2500	return n
2501}
2502
2503func (m *MeshConfig_ServiceSettings) Size() (n int) {
2504	if m == nil {
2505		return 0
2506	}
2507	var l int
2508	_ = l
2509	if m.Settings != nil {
2510		l = m.Settings.Size()
2511		n += 1 + l + sovConfig(uint64(l))
2512	}
2513	if len(m.Hosts) > 0 {
2514		for _, s := range m.Hosts {
2515			l = len(s)
2516			n += 1 + l + sovConfig(uint64(l))
2517		}
2518	}
2519	if m.XXX_unrecognized != nil {
2520		n += len(m.XXX_unrecognized)
2521	}
2522	return n
2523}
2524
2525func (m *MeshConfig_ServiceSettings_Settings) Size() (n int) {
2526	if m == nil {
2527		return 0
2528	}
2529	var l int
2530	_ = l
2531	if m.ClusterLocal {
2532		n += 2
2533	}
2534	if m.XXX_unrecognized != nil {
2535		n += len(m.XXX_unrecognized)
2536	}
2537	return n
2538}
2539
2540func (m *ConfigSource) Size() (n int) {
2541	if m == nil {
2542		return 0
2543	}
2544	var l int
2545	_ = l
2546	l = len(m.Address)
2547	if l > 0 {
2548		n += 1 + l + sovConfig(uint64(l))
2549	}
2550	if m.TlsSettings != nil {
2551		l = m.TlsSettings.Size()
2552		n += 1 + l + sovConfig(uint64(l))
2553	}
2554	if len(m.SubscribedResources) > 0 {
2555		l = 0
2556		for _, e := range m.SubscribedResources {
2557			l += sovConfig(uint64(e))
2558		}
2559		n += 1 + sovConfig(uint64(l)) + l
2560	}
2561	if m.XXX_unrecognized != nil {
2562		n += len(m.XXX_unrecognized)
2563	}
2564	return n
2565}
2566
2567func (m *Certificate) Size() (n int) {
2568	if m == nil {
2569		return 0
2570	}
2571	var l int
2572	_ = l
2573	l = len(m.SecretName)
2574	if l > 0 {
2575		n += 1 + l + sovConfig(uint64(l))
2576	}
2577	if len(m.DnsNames) > 0 {
2578		for _, s := range m.DnsNames {
2579			l = len(s)
2580			n += 1 + l + sovConfig(uint64(l))
2581		}
2582	}
2583	if m.XXX_unrecognized != nil {
2584		n += len(m.XXX_unrecognized)
2585	}
2586	return n
2587}
2588
2589func sovConfig(x uint64) (n int) {
2590	return (math_bits.Len64(x|1) + 6) / 7
2591}
2592func sozConfig(x uint64) (n int) {
2593	return sovConfig(uint64((x << 1) ^ uint64((int64(x) >> 63))))
2594}
2595func (m *MeshConfig) Unmarshal(dAtA []byte) error {
2596	l := len(dAtA)
2597	iNdEx := 0
2598	for iNdEx < l {
2599		preIndex := iNdEx
2600		var wire uint64
2601		for shift := uint(0); ; shift += 7 {
2602			if shift >= 64 {
2603				return ErrIntOverflowConfig
2604			}
2605			if iNdEx >= l {
2606				return io.ErrUnexpectedEOF
2607			}
2608			b := dAtA[iNdEx]
2609			iNdEx++
2610			wire |= uint64(b&0x7F) << shift
2611			if b < 0x80 {
2612				break
2613			}
2614		}
2615		fieldNum := int32(wire >> 3)
2616		wireType := int(wire & 0x7)
2617		if wireType == 4 {
2618			return fmt.Errorf("proto: MeshConfig: wiretype end group for non-group")
2619		}
2620		if fieldNum <= 0 {
2621			return fmt.Errorf("proto: MeshConfig: illegal tag %d (wire type %d)", fieldNum, wire)
2622		}
2623		switch fieldNum {
2624		case 1:
2625			if wireType != 2 {
2626				return fmt.Errorf("proto: wrong wireType = %d for field MixerCheckServer", wireType)
2627			}
2628			var stringLen uint64
2629			for shift := uint(0); ; shift += 7 {
2630				if shift >= 64 {
2631					return ErrIntOverflowConfig
2632				}
2633				if iNdEx >= l {
2634					return io.ErrUnexpectedEOF
2635				}
2636				b := dAtA[iNdEx]
2637				iNdEx++
2638				stringLen |= uint64(b&0x7F) << shift
2639				if b < 0x80 {
2640					break
2641				}
2642			}
2643			intStringLen := int(stringLen)
2644			if intStringLen < 0 {
2645				return ErrInvalidLengthConfig
2646			}
2647			postIndex := iNdEx + intStringLen
2648			if postIndex < 0 {
2649				return ErrInvalidLengthConfig
2650			}
2651			if postIndex > l {
2652				return io.ErrUnexpectedEOF
2653			}
2654			m.MixerCheckServer = string(dAtA[iNdEx:postIndex])
2655			iNdEx = postIndex
2656		case 2:
2657			if wireType != 2 {
2658				return fmt.Errorf("proto: wrong wireType = %d for field MixerReportServer", wireType)
2659			}
2660			var stringLen uint64
2661			for shift := uint(0); ; shift += 7 {
2662				if shift >= 64 {
2663					return ErrIntOverflowConfig
2664				}
2665				if iNdEx >= l {
2666					return io.ErrUnexpectedEOF
2667				}
2668				b := dAtA[iNdEx]
2669				iNdEx++
2670				stringLen |= uint64(b&0x7F) << shift
2671				if b < 0x80 {
2672					break
2673				}
2674			}
2675			intStringLen := int(stringLen)
2676			if intStringLen < 0 {
2677				return ErrInvalidLengthConfig
2678			}
2679			postIndex := iNdEx + intStringLen
2680			if postIndex < 0 {
2681				return ErrInvalidLengthConfig
2682			}
2683			if postIndex > l {
2684				return io.ErrUnexpectedEOF
2685			}
2686			m.MixerReportServer = string(dAtA[iNdEx:postIndex])
2687			iNdEx = postIndex
2688		case 3:
2689			if wireType != 0 {
2690				return fmt.Errorf("proto: wrong wireType = %d for field DisablePolicyChecks", wireType)
2691			}
2692			var v int
2693			for shift := uint(0); ; shift += 7 {
2694				if shift >= 64 {
2695					return ErrIntOverflowConfig
2696				}
2697				if iNdEx >= l {
2698					return io.ErrUnexpectedEOF
2699				}
2700				b := dAtA[iNdEx]
2701				iNdEx++
2702				v |= int(b&0x7F) << shift
2703				if b < 0x80 {
2704					break
2705				}
2706			}
2707			m.DisablePolicyChecks = bool(v != 0)
2708		case 4:
2709			if wireType != 0 {
2710				return fmt.Errorf("proto: wrong wireType = %d for field ProxyListenPort", wireType)
2711			}
2712			m.ProxyListenPort = 0
2713			for shift := uint(0); ; shift += 7 {
2714				if shift >= 64 {
2715					return ErrIntOverflowConfig
2716				}
2717				if iNdEx >= l {
2718					return io.ErrUnexpectedEOF
2719				}
2720				b := dAtA[iNdEx]
2721				iNdEx++
2722				m.ProxyListenPort |= int32(b&0x7F) << shift
2723				if b < 0x80 {
2724					break
2725				}
2726			}
2727		case 5:
2728			if wireType != 0 {
2729				return fmt.Errorf("proto: wrong wireType = %d for field ProxyHttpPort", wireType)
2730			}
2731			m.ProxyHttpPort = 0
2732			for shift := uint(0); ; shift += 7 {
2733				if shift >= 64 {
2734					return ErrIntOverflowConfig
2735				}
2736				if iNdEx >= l {
2737					return io.ErrUnexpectedEOF
2738				}
2739				b := dAtA[iNdEx]
2740				iNdEx++
2741				m.ProxyHttpPort |= int32(b&0x7F) << shift
2742				if b < 0x80 {
2743					break
2744				}
2745			}
2746		case 6:
2747			if wireType != 2 {
2748				return fmt.Errorf("proto: wrong wireType = %d for field ConnectTimeout", wireType)
2749			}
2750			var msglen int
2751			for shift := uint(0); ; shift += 7 {
2752				if shift >= 64 {
2753					return ErrIntOverflowConfig
2754				}
2755				if iNdEx >= l {
2756					return io.ErrUnexpectedEOF
2757				}
2758				b := dAtA[iNdEx]
2759				iNdEx++
2760				msglen |= int(b&0x7F) << shift
2761				if b < 0x80 {
2762					break
2763				}
2764			}
2765			if msglen < 0 {
2766				return ErrInvalidLengthConfig
2767			}
2768			postIndex := iNdEx + msglen
2769			if postIndex < 0 {
2770				return ErrInvalidLengthConfig
2771			}
2772			if postIndex > l {
2773				return io.ErrUnexpectedEOF
2774			}
2775			if m.ConnectTimeout == nil {
2776				m.ConnectTimeout = &types.Duration{}
2777			}
2778			if err := m.ConnectTimeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2779				return err
2780			}
2781			iNdEx = postIndex
2782		case 7:
2783			if wireType != 2 {
2784				return fmt.Errorf("proto: wrong wireType = %d for field IngressClass", wireType)
2785			}
2786			var stringLen uint64
2787			for shift := uint(0); ; shift += 7 {
2788				if shift >= 64 {
2789					return ErrIntOverflowConfig
2790				}
2791				if iNdEx >= l {
2792					return io.ErrUnexpectedEOF
2793				}
2794				b := dAtA[iNdEx]
2795				iNdEx++
2796				stringLen |= uint64(b&0x7F) << shift
2797				if b < 0x80 {
2798					break
2799				}
2800			}
2801			intStringLen := int(stringLen)
2802			if intStringLen < 0 {
2803				return ErrInvalidLengthConfig
2804			}
2805			postIndex := iNdEx + intStringLen
2806			if postIndex < 0 {
2807				return ErrInvalidLengthConfig
2808			}
2809			if postIndex > l {
2810				return io.ErrUnexpectedEOF
2811			}
2812			m.IngressClass = string(dAtA[iNdEx:postIndex])
2813			iNdEx = postIndex
2814		case 8:
2815			if wireType != 2 {
2816				return fmt.Errorf("proto: wrong wireType = %d for field IngressService", wireType)
2817			}
2818			var stringLen uint64
2819			for shift := uint(0); ; shift += 7 {
2820				if shift >= 64 {
2821					return ErrIntOverflowConfig
2822				}
2823				if iNdEx >= l {
2824					return io.ErrUnexpectedEOF
2825				}
2826				b := dAtA[iNdEx]
2827				iNdEx++
2828				stringLen |= uint64(b&0x7F) << shift
2829				if b < 0x80 {
2830					break
2831				}
2832			}
2833			intStringLen := int(stringLen)
2834			if intStringLen < 0 {
2835				return ErrInvalidLengthConfig
2836			}
2837			postIndex := iNdEx + intStringLen
2838			if postIndex < 0 {
2839				return ErrInvalidLengthConfig
2840			}
2841			if postIndex > l {
2842				return io.ErrUnexpectedEOF
2843			}
2844			m.IngressService = string(dAtA[iNdEx:postIndex])
2845			iNdEx = postIndex
2846		case 9:
2847			if wireType != 0 {
2848				return fmt.Errorf("proto: wrong wireType = %d for field IngressControllerMode", wireType)
2849			}
2850			m.IngressControllerMode = 0
2851			for shift := uint(0); ; shift += 7 {
2852				if shift >= 64 {
2853					return ErrIntOverflowConfig
2854				}
2855				if iNdEx >= l {
2856					return io.ErrUnexpectedEOF
2857				}
2858				b := dAtA[iNdEx]
2859				iNdEx++
2860				m.IngressControllerMode |= MeshConfig_IngressControllerMode(b&0x7F) << shift
2861				if b < 0x80 {
2862					break
2863				}
2864			}
2865		case 10:
2866			if wireType != 0 {
2867				return fmt.Errorf("proto: wrong wireType = %d for field AuthPolicy", wireType)
2868			}
2869			m.AuthPolicy = 0
2870			for shift := uint(0); ; shift += 7 {
2871				if shift >= 64 {
2872					return ErrIntOverflowConfig
2873				}
2874				if iNdEx >= l {
2875					return io.ErrUnexpectedEOF
2876				}
2877				b := dAtA[iNdEx]
2878				iNdEx++
2879				m.AuthPolicy |= MeshConfig_AuthPolicy(b&0x7F) << shift
2880				if b < 0x80 {
2881					break
2882				}
2883			}
2884		case 11:
2885			if wireType != 2 {
2886				return fmt.Errorf("proto: wrong wireType = %d for field RdsRefreshDelay", wireType)
2887			}
2888			var msglen int
2889			for shift := uint(0); ; shift += 7 {
2890				if shift >= 64 {
2891					return ErrIntOverflowConfig
2892				}
2893				if iNdEx >= l {
2894					return io.ErrUnexpectedEOF
2895				}
2896				b := dAtA[iNdEx]
2897				iNdEx++
2898				msglen |= int(b&0x7F) << shift
2899				if b < 0x80 {
2900					break
2901				}
2902			}
2903			if msglen < 0 {
2904				return ErrInvalidLengthConfig
2905			}
2906			postIndex := iNdEx + msglen
2907			if postIndex < 0 {
2908				return ErrInvalidLengthConfig
2909			}
2910			if postIndex > l {
2911				return io.ErrUnexpectedEOF
2912			}
2913			if m.RdsRefreshDelay == nil {
2914				m.RdsRefreshDelay = &types.Duration{}
2915			}
2916			if err := m.RdsRefreshDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2917				return err
2918			}
2919			iNdEx = postIndex
2920		case 12:
2921			if wireType != 0 {
2922				return fmt.Errorf("proto: wrong wireType = %d for field EnableTracing", wireType)
2923			}
2924			var v int
2925			for shift := uint(0); ; shift += 7 {
2926				if shift >= 64 {
2927					return ErrIntOverflowConfig
2928				}
2929				if iNdEx >= l {
2930					return io.ErrUnexpectedEOF
2931				}
2932				b := dAtA[iNdEx]
2933				iNdEx++
2934				v |= int(b&0x7F) << shift
2935				if b < 0x80 {
2936					break
2937				}
2938			}
2939			m.EnableTracing = bool(v != 0)
2940		case 13:
2941			if wireType != 2 {
2942				return fmt.Errorf("proto: wrong wireType = %d for field AccessLogFile", wireType)
2943			}
2944			var stringLen uint64
2945			for shift := uint(0); ; shift += 7 {
2946				if shift >= 64 {
2947					return ErrIntOverflowConfig
2948				}
2949				if iNdEx >= l {
2950					return io.ErrUnexpectedEOF
2951				}
2952				b := dAtA[iNdEx]
2953				iNdEx++
2954				stringLen |= uint64(b&0x7F) << shift
2955				if b < 0x80 {
2956					break
2957				}
2958			}
2959			intStringLen := int(stringLen)
2960			if intStringLen < 0 {
2961				return ErrInvalidLengthConfig
2962			}
2963			postIndex := iNdEx + intStringLen
2964			if postIndex < 0 {
2965				return ErrInvalidLengthConfig
2966			}
2967			if postIndex > l {
2968				return io.ErrUnexpectedEOF
2969			}
2970			m.AccessLogFile = string(dAtA[iNdEx:postIndex])
2971			iNdEx = postIndex
2972		case 14:
2973			if wireType != 2 {
2974				return fmt.Errorf("proto: wrong wireType = %d for field DefaultConfig", wireType)
2975			}
2976			var msglen int
2977			for shift := uint(0); ; shift += 7 {
2978				if shift >= 64 {
2979					return ErrIntOverflowConfig
2980				}
2981				if iNdEx >= l {
2982					return io.ErrUnexpectedEOF
2983				}
2984				b := dAtA[iNdEx]
2985				iNdEx++
2986				msglen |= int(b&0x7F) << shift
2987				if b < 0x80 {
2988					break
2989				}
2990			}
2991			if msglen < 0 {
2992				return ErrInvalidLengthConfig
2993			}
2994			postIndex := iNdEx + msglen
2995			if postIndex < 0 {
2996				return ErrInvalidLengthConfig
2997			}
2998			if postIndex > l {
2999				return io.ErrUnexpectedEOF
3000			}
3001			if m.DefaultConfig == nil {
3002				m.DefaultConfig = &ProxyConfig{}
3003			}
3004			if err := m.DefaultConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3005				return err
3006			}
3007			iNdEx = postIndex
3008		case 16:
3009			if wireType != 2 {
3010				return fmt.Errorf("proto: wrong wireType = %d for field MixerAddress", wireType)
3011			}
3012			var stringLen uint64
3013			for shift := uint(0); ; shift += 7 {
3014				if shift >= 64 {
3015					return ErrIntOverflowConfig
3016				}
3017				if iNdEx >= l {
3018					return io.ErrUnexpectedEOF
3019				}
3020				b := dAtA[iNdEx]
3021				iNdEx++
3022				stringLen |= uint64(b&0x7F) << shift
3023				if b < 0x80 {
3024					break
3025				}
3026			}
3027			intStringLen := int(stringLen)
3028			if intStringLen < 0 {
3029				return ErrInvalidLengthConfig
3030			}
3031			postIndex := iNdEx + intStringLen
3032			if postIndex < 0 {
3033				return ErrInvalidLengthConfig
3034			}
3035			if postIndex > l {
3036				return io.ErrUnexpectedEOF
3037			}
3038			m.MixerAddress = string(dAtA[iNdEx:postIndex])
3039			iNdEx = postIndex
3040		case 17:
3041			if wireType != 2 {
3042				return fmt.Errorf("proto: wrong wireType = %d for field OutboundTrafficPolicy", wireType)
3043			}
3044			var msglen int
3045			for shift := uint(0); ; shift += 7 {
3046				if shift >= 64 {
3047					return ErrIntOverflowConfig
3048				}
3049				if iNdEx >= l {
3050					return io.ErrUnexpectedEOF
3051				}
3052				b := dAtA[iNdEx]
3053				iNdEx++
3054				msglen |= int(b&0x7F) << shift
3055				if b < 0x80 {
3056					break
3057				}
3058			}
3059			if msglen < 0 {
3060				return ErrInvalidLengthConfig
3061			}
3062			postIndex := iNdEx + msglen
3063			if postIndex < 0 {
3064				return ErrInvalidLengthConfig
3065			}
3066			if postIndex > l {
3067				return io.ErrUnexpectedEOF
3068			}
3069			if m.OutboundTrafficPolicy == nil {
3070				m.OutboundTrafficPolicy = &MeshConfig_OutboundTrafficPolicy{}
3071			}
3072			if err := m.OutboundTrafficPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3073				return err
3074			}
3075			iNdEx = postIndex
3076		case 19:
3077			if wireType != 0 {
3078				return fmt.Errorf("proto: wrong wireType = %d for field EnableClientSidePolicyCheck", wireType)
3079			}
3080			var v int
3081			for shift := uint(0); ; shift += 7 {
3082				if shift >= 64 {
3083					return ErrIntOverflowConfig
3084				}
3085				if iNdEx >= l {
3086					return io.ErrUnexpectedEOF
3087				}
3088				b := dAtA[iNdEx]
3089				iNdEx++
3090				v |= int(b&0x7F) << shift
3091				if b < 0x80 {
3092					break
3093				}
3094			}
3095			m.EnableClientSidePolicyCheck = bool(v != 0)
3096		case 20:
3097			if wireType != 2 {
3098				return fmt.Errorf("proto: wrong wireType = %d for field SdsUdsPath", wireType)
3099			}
3100			var stringLen uint64
3101			for shift := uint(0); ; shift += 7 {
3102				if shift >= 64 {
3103					return ErrIntOverflowConfig
3104				}
3105				if iNdEx >= l {
3106					return io.ErrUnexpectedEOF
3107				}
3108				b := dAtA[iNdEx]
3109				iNdEx++
3110				stringLen |= uint64(b&0x7F) << shift
3111				if b < 0x80 {
3112					break
3113				}
3114			}
3115			intStringLen := int(stringLen)
3116			if intStringLen < 0 {
3117				return ErrInvalidLengthConfig
3118			}
3119			postIndex := iNdEx + intStringLen
3120			if postIndex < 0 {
3121				return ErrInvalidLengthConfig
3122			}
3123			if postIndex > l {
3124				return io.ErrUnexpectedEOF
3125			}
3126			m.SdsUdsPath = string(dAtA[iNdEx:postIndex])
3127			iNdEx = postIndex
3128		case 21:
3129			if wireType != 2 {
3130				return fmt.Errorf("proto: wrong wireType = %d for field SdsRefreshDelay", wireType)
3131			}
3132			var msglen int
3133			for shift := uint(0); ; shift += 7 {
3134				if shift >= 64 {
3135					return ErrIntOverflowConfig
3136				}
3137				if iNdEx >= l {
3138					return io.ErrUnexpectedEOF
3139				}
3140				b := dAtA[iNdEx]
3141				iNdEx++
3142				msglen |= int(b&0x7F) << shift
3143				if b < 0x80 {
3144					break
3145				}
3146			}
3147			if msglen < 0 {
3148				return ErrInvalidLengthConfig
3149			}
3150			postIndex := iNdEx + msglen
3151			if postIndex < 0 {
3152				return ErrInvalidLengthConfig
3153			}
3154			if postIndex > l {
3155				return io.ErrUnexpectedEOF
3156			}
3157			if m.SdsRefreshDelay == nil {
3158				m.SdsRefreshDelay = &types.Duration{}
3159			}
3160			if err := m.SdsRefreshDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3161				return err
3162			}
3163			iNdEx = postIndex
3164		case 22:
3165			if wireType != 2 {
3166				return fmt.Errorf("proto: wrong wireType = %d for field ConfigSources", wireType)
3167			}
3168			var msglen int
3169			for shift := uint(0); ; shift += 7 {
3170				if shift >= 64 {
3171					return ErrIntOverflowConfig
3172				}
3173				if iNdEx >= l {
3174					return io.ErrUnexpectedEOF
3175				}
3176				b := dAtA[iNdEx]
3177				iNdEx++
3178				msglen |= int(b&0x7F) << shift
3179				if b < 0x80 {
3180					break
3181				}
3182			}
3183			if msglen < 0 {
3184				return ErrInvalidLengthConfig
3185			}
3186			postIndex := iNdEx + msglen
3187			if postIndex < 0 {
3188				return ErrInvalidLengthConfig
3189			}
3190			if postIndex > l {
3191				return io.ErrUnexpectedEOF
3192			}
3193			m.ConfigSources = append(m.ConfigSources, &ConfigSource{})
3194			if err := m.ConfigSources[len(m.ConfigSources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3195				return err
3196			}
3197			iNdEx = postIndex
3198		case 23:
3199			if wireType != 0 {
3200				return fmt.Errorf("proto: wrong wireType = %d for field EnableSdsTokenMount", wireType)
3201			}
3202			var v int
3203			for shift := uint(0); ; shift += 7 {
3204				if shift >= 64 {
3205					return ErrIntOverflowConfig
3206				}
3207				if iNdEx >= l {
3208					return io.ErrUnexpectedEOF
3209				}
3210				b := dAtA[iNdEx]
3211				iNdEx++
3212				v |= int(b&0x7F) << shift
3213				if b < 0x80 {
3214					break
3215				}
3216			}
3217			m.EnableSdsTokenMount = bool(v != 0)
3218		case 24:
3219			if wireType != 2 {
3220				return fmt.Errorf("proto: wrong wireType = %d for field AccessLogFormat", wireType)
3221			}
3222			var stringLen uint64
3223			for shift := uint(0); ; shift += 7 {
3224				if shift >= 64 {
3225					return ErrIntOverflowConfig
3226				}
3227				if iNdEx >= l {
3228					return io.ErrUnexpectedEOF
3229				}
3230				b := dAtA[iNdEx]
3231				iNdEx++
3232				stringLen |= uint64(b&0x7F) << shift
3233				if b < 0x80 {
3234					break
3235				}
3236			}
3237			intStringLen := int(stringLen)
3238			if intStringLen < 0 {
3239				return ErrInvalidLengthConfig
3240			}
3241			postIndex := iNdEx + intStringLen
3242			if postIndex < 0 {
3243				return ErrInvalidLengthConfig
3244			}
3245			if postIndex > l {
3246				return io.ErrUnexpectedEOF
3247			}
3248			m.AccessLogFormat = string(dAtA[iNdEx:postIndex])
3249			iNdEx = postIndex
3250		case 25:
3251			if wireType != 0 {
3252				return fmt.Errorf("proto: wrong wireType = %d for field PolicyCheckFailOpen", wireType)
3253			}
3254			var v int
3255			for shift := uint(0); ; shift += 7 {
3256				if shift >= 64 {
3257					return ErrIntOverflowConfig
3258				}
3259				if iNdEx >= l {
3260					return io.ErrUnexpectedEOF
3261				}
3262				b := dAtA[iNdEx]
3263				iNdEx++
3264				v |= int(b&0x7F) << shift
3265				if b < 0x80 {
3266					break
3267				}
3268			}
3269			m.PolicyCheckFailOpen = bool(v != 0)
3270		case 26:
3271			if wireType != 2 {
3272				return fmt.Errorf("proto: wrong wireType = %d for field TrustDomain", wireType)
3273			}
3274			var stringLen uint64
3275			for shift := uint(0); ; shift += 7 {
3276				if shift >= 64 {
3277					return ErrIntOverflowConfig
3278				}
3279				if iNdEx >= l {
3280					return io.ErrUnexpectedEOF
3281				}
3282				b := dAtA[iNdEx]
3283				iNdEx++
3284				stringLen |= uint64(b&0x7F) << shift
3285				if b < 0x80 {
3286					break
3287				}
3288			}
3289			intStringLen := int(stringLen)
3290			if intStringLen < 0 {
3291				return ErrInvalidLengthConfig
3292			}
3293			postIndex := iNdEx + intStringLen
3294			if postIndex < 0 {
3295				return ErrInvalidLengthConfig
3296			}
3297			if postIndex > l {
3298				return io.ErrUnexpectedEOF
3299			}
3300			m.TrustDomain = string(dAtA[iNdEx:postIndex])
3301			iNdEx = postIndex
3302		case 27:
3303			if wireType != 0 {
3304				return fmt.Errorf("proto: wrong wireType = %d for field AccessLogEncoding", wireType)
3305			}
3306			m.AccessLogEncoding = 0
3307			for shift := uint(0); ; shift += 7 {
3308				if shift >= 64 {
3309					return ErrIntOverflowConfig
3310				}
3311				if iNdEx >= l {
3312					return io.ErrUnexpectedEOF
3313				}
3314				b := dAtA[iNdEx]
3315				iNdEx++
3316				m.AccessLogEncoding |= MeshConfig_AccessLogEncoding(b&0x7F) << shift
3317				if b < 0x80 {
3318					break
3319				}
3320			}
3321		case 28:
3322			if wireType != 2 {
3323				return fmt.Errorf("proto: wrong wireType = %d for field TcpKeepalive", wireType)
3324			}
3325			var msglen int
3326			for shift := uint(0); ; shift += 7 {
3327				if shift >= 64 {
3328					return ErrIntOverflowConfig
3329				}
3330				if iNdEx >= l {
3331					return io.ErrUnexpectedEOF
3332				}
3333				b := dAtA[iNdEx]
3334				iNdEx++
3335				msglen |= int(b&0x7F) << shift
3336				if b < 0x80 {
3337					break
3338				}
3339			}
3340			if msglen < 0 {
3341				return ErrInvalidLengthConfig
3342			}
3343			postIndex := iNdEx + msglen
3344			if postIndex < 0 {
3345				return ErrInvalidLengthConfig
3346			}
3347			if postIndex > l {
3348				return io.ErrUnexpectedEOF
3349			}
3350			if m.TcpKeepalive == nil {
3351				m.TcpKeepalive = &v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive{}
3352			}
3353			if err := m.TcpKeepalive.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3354				return err
3355			}
3356			iNdEx = postIndex
3357		case 29:
3358			if wireType != 0 {
3359				return fmt.Errorf("proto: wrong wireType = %d for field SdsUseK8SSaJwt", wireType)
3360			}
3361			var v int
3362			for shift := uint(0); ; shift += 7 {
3363				if shift >= 64 {
3364					return ErrIntOverflowConfig
3365				}
3366				if iNdEx >= l {
3367					return io.ErrUnexpectedEOF
3368				}
3369				b := dAtA[iNdEx]
3370				iNdEx++
3371				v |= int(b&0x7F) << shift
3372				if b < 0x80 {
3373					break
3374				}
3375			}
3376			m.SdsUseK8SSaJwt = bool(v != 0)
3377		case 30:
3378			if wireType != 0 {
3379				return fmt.Errorf("proto: wrong wireType = %d for field SidecarToTelemetrySessionAffinity", wireType)
3380			}
3381			var v int
3382			for shift := uint(0); ; shift += 7 {
3383				if shift >= 64 {
3384					return ErrIntOverflowConfig
3385				}
3386				if iNdEx >= l {
3387					return io.ErrUnexpectedEOF
3388				}
3389				b := dAtA[iNdEx]
3390				iNdEx++
3391				v |= int(b&0x7F) << shift
3392				if b < 0x80 {
3393					break
3394				}
3395			}
3396			m.SidecarToTelemetrySessionAffinity = bool(v != 0)
3397		case 31:
3398			if wireType != 2 {
3399				return fmt.Errorf("proto: wrong wireType = %d for field DefaultServiceExportTo", wireType)
3400			}
3401			var stringLen uint64
3402			for shift := uint(0); ; shift += 7 {
3403				if shift >= 64 {
3404					return ErrIntOverflowConfig
3405				}
3406				if iNdEx >= l {
3407					return io.ErrUnexpectedEOF
3408				}
3409				b := dAtA[iNdEx]
3410				iNdEx++
3411				stringLen |= uint64(b&0x7F) << shift
3412				if b < 0x80 {
3413					break
3414				}
3415			}
3416			intStringLen := int(stringLen)
3417			if intStringLen < 0 {
3418				return ErrInvalidLengthConfig
3419			}
3420			postIndex := iNdEx + intStringLen
3421			if postIndex < 0 {
3422				return ErrInvalidLengthConfig
3423			}
3424			if postIndex > l {
3425				return io.ErrUnexpectedEOF
3426			}
3427			m.DefaultServiceExportTo = append(m.DefaultServiceExportTo, string(dAtA[iNdEx:postIndex]))
3428			iNdEx = postIndex
3429		case 32:
3430			if wireType != 2 {
3431				return fmt.Errorf("proto: wrong wireType = %d for field DefaultVirtualServiceExportTo", wireType)
3432			}
3433			var stringLen uint64
3434			for shift := uint(0); ; shift += 7 {
3435				if shift >= 64 {
3436					return ErrIntOverflowConfig
3437				}
3438				if iNdEx >= l {
3439					return io.ErrUnexpectedEOF
3440				}
3441				b := dAtA[iNdEx]
3442				iNdEx++
3443				stringLen |= uint64(b&0x7F) << shift
3444				if b < 0x80 {
3445					break
3446				}
3447			}
3448			intStringLen := int(stringLen)
3449			if intStringLen < 0 {
3450				return ErrInvalidLengthConfig
3451			}
3452			postIndex := iNdEx + intStringLen
3453			if postIndex < 0 {
3454				return ErrInvalidLengthConfig
3455			}
3456			if postIndex > l {
3457				return io.ErrUnexpectedEOF
3458			}
3459			m.DefaultVirtualServiceExportTo = append(m.DefaultVirtualServiceExportTo, string(dAtA[iNdEx:postIndex]))
3460			iNdEx = postIndex
3461		case 33:
3462			if wireType != 2 {
3463				return fmt.Errorf("proto: wrong wireType = %d for field DefaultDestinationRuleExportTo", wireType)
3464			}
3465			var stringLen uint64
3466			for shift := uint(0); ; shift += 7 {
3467				if shift >= 64 {
3468					return ErrIntOverflowConfig
3469				}
3470				if iNdEx >= l {
3471					return io.ErrUnexpectedEOF
3472				}
3473				b := dAtA[iNdEx]
3474				iNdEx++
3475				stringLen |= uint64(b&0x7F) << shift
3476				if b < 0x80 {
3477					break
3478				}
3479			}
3480			intStringLen := int(stringLen)
3481			if intStringLen < 0 {
3482				return ErrInvalidLengthConfig
3483			}
3484			postIndex := iNdEx + intStringLen
3485			if postIndex < 0 {
3486				return ErrInvalidLengthConfig
3487			}
3488			if postIndex > l {
3489				return io.ErrUnexpectedEOF
3490			}
3491			m.DefaultDestinationRuleExportTo = append(m.DefaultDestinationRuleExportTo, string(dAtA[iNdEx:postIndex]))
3492			iNdEx = postIndex
3493		case 34:
3494			if wireType != 2 {
3495				return fmt.Errorf("proto: wrong wireType = %d for field RootNamespace", wireType)
3496			}
3497			var stringLen uint64
3498			for shift := uint(0); ; shift += 7 {
3499				if shift >= 64 {
3500					return ErrIntOverflowConfig
3501				}
3502				if iNdEx >= l {
3503					return io.ErrUnexpectedEOF
3504				}
3505				b := dAtA[iNdEx]
3506				iNdEx++
3507				stringLen |= uint64(b&0x7F) << shift
3508				if b < 0x80 {
3509					break
3510				}
3511			}
3512			intStringLen := int(stringLen)
3513			if intStringLen < 0 {
3514				return ErrInvalidLengthConfig
3515			}
3516			postIndex := iNdEx + intStringLen
3517			if postIndex < 0 {
3518				return ErrInvalidLengthConfig
3519			}
3520			if postIndex > l {
3521				return io.ErrUnexpectedEOF
3522			}
3523			m.RootNamespace = string(dAtA[iNdEx:postIndex])
3524			iNdEx = postIndex
3525		case 35:
3526			if wireType != 2 {
3527				return fmt.Errorf("proto: wrong wireType = %d for field LocalityLbSetting", wireType)
3528			}
3529			var msglen int
3530			for shift := uint(0); ; shift += 7 {
3531				if shift >= 64 {
3532					return ErrIntOverflowConfig
3533				}
3534				if iNdEx >= l {
3535					return io.ErrUnexpectedEOF
3536				}
3537				b := dAtA[iNdEx]
3538				iNdEx++
3539				msglen |= int(b&0x7F) << shift
3540				if b < 0x80 {
3541					break
3542				}
3543			}
3544			if msglen < 0 {
3545				return ErrInvalidLengthConfig
3546			}
3547			postIndex := iNdEx + msglen
3548			if postIndex < 0 {
3549				return ErrInvalidLengthConfig
3550			}
3551			if postIndex > l {
3552				return io.ErrUnexpectedEOF
3553			}
3554			if m.LocalityLbSetting == nil {
3555				m.LocalityLbSetting = &v1alpha3.LocalityLoadBalancerSetting{}
3556			}
3557			if err := m.LocalityLbSetting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3558				return err
3559			}
3560			iNdEx = postIndex
3561		case 36:
3562			if wireType != 2 {
3563				return fmt.Errorf("proto: wrong wireType = %d for field DnsRefreshRate", wireType)
3564			}
3565			var msglen int
3566			for shift := uint(0); ; shift += 7 {
3567				if shift >= 64 {
3568					return ErrIntOverflowConfig
3569				}
3570				if iNdEx >= l {
3571					return io.ErrUnexpectedEOF
3572				}
3573				b := dAtA[iNdEx]
3574				iNdEx++
3575				msglen |= int(b&0x7F) << shift
3576				if b < 0x80 {
3577					break
3578				}
3579			}
3580			if msglen < 0 {
3581				return ErrInvalidLengthConfig
3582			}
3583			postIndex := iNdEx + msglen
3584			if postIndex < 0 {
3585				return ErrInvalidLengthConfig
3586			}
3587			if postIndex > l {
3588				return io.ErrUnexpectedEOF
3589			}
3590			if m.DnsRefreshRate == nil {
3591				m.DnsRefreshRate = &types.Duration{}
3592			}
3593			if err := m.DnsRefreshRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3594				return err
3595			}
3596			iNdEx = postIndex
3597		case 37:
3598			if wireType != 0 {
3599				return fmt.Errorf("proto: wrong wireType = %d for field DisableReportBatch", wireType)
3600			}
3601			var v int
3602			for shift := uint(0); ; shift += 7 {
3603				if shift >= 64 {
3604					return ErrIntOverflowConfig
3605				}
3606				if iNdEx >= l {
3607					return io.ErrUnexpectedEOF
3608				}
3609				b := dAtA[iNdEx]
3610				iNdEx++
3611				v |= int(b&0x7F) << shift
3612				if b < 0x80 {
3613					break
3614				}
3615			}
3616			m.DisableReportBatch = bool(v != 0)
3617		case 38:
3618			if wireType != 0 {
3619				return fmt.Errorf("proto: wrong wireType = %d for field ReportBatchMaxEntries", wireType)
3620			}
3621			m.ReportBatchMaxEntries = 0
3622			for shift := uint(0); ; shift += 7 {
3623				if shift >= 64 {
3624					return ErrIntOverflowConfig
3625				}
3626				if iNdEx >= l {
3627					return io.ErrUnexpectedEOF
3628				}
3629				b := dAtA[iNdEx]
3630				iNdEx++
3631				m.ReportBatchMaxEntries |= uint32(b&0x7F) << shift
3632				if b < 0x80 {
3633					break
3634				}
3635			}
3636		case 39:
3637			if wireType != 2 {
3638				return fmt.Errorf("proto: wrong wireType = %d for field ReportBatchMaxTime", wireType)
3639			}
3640			var msglen int
3641			for shift := uint(0); ; shift += 7 {
3642				if shift >= 64 {
3643					return ErrIntOverflowConfig
3644				}
3645				if iNdEx >= l {
3646					return io.ErrUnexpectedEOF
3647				}
3648				b := dAtA[iNdEx]
3649				iNdEx++
3650				msglen |= int(b&0x7F) << shift
3651				if b < 0x80 {
3652					break
3653				}
3654			}
3655			if msglen < 0 {
3656				return ErrInvalidLengthConfig
3657			}
3658			postIndex := iNdEx + msglen
3659			if postIndex < 0 {
3660				return ErrInvalidLengthConfig
3661			}
3662			if postIndex > l {
3663				return io.ErrUnexpectedEOF
3664			}
3665			if m.ReportBatchMaxTime == nil {
3666				m.ReportBatchMaxTime = &types.Duration{}
3667			}
3668			if err := m.ReportBatchMaxTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3669				return err
3670			}
3671			iNdEx = postIndex
3672		case 40:
3673			if wireType != 0 {
3674				return fmt.Errorf("proto: wrong wireType = %d for field EnableEnvoyAccessLogService", wireType)
3675			}
3676			var v int
3677			for shift := uint(0); ; shift += 7 {
3678				if shift >= 64 {
3679					return ErrIntOverflowConfig
3680				}
3681				if iNdEx >= l {
3682					return io.ErrUnexpectedEOF
3683				}
3684				b := dAtA[iNdEx]
3685				iNdEx++
3686				v |= int(b&0x7F) << shift
3687				if b < 0x80 {
3688					break
3689				}
3690			}
3691			m.EnableEnvoyAccessLogService = bool(v != 0)
3692		case 41:
3693			if wireType != 0 {
3694				return fmt.Errorf("proto: wrong wireType = %d for field H2UpgradePolicy", wireType)
3695			}
3696			m.H2UpgradePolicy = 0
3697			for shift := uint(0); ; shift += 7 {
3698				if shift >= 64 {
3699					return ErrIntOverflowConfig
3700				}
3701				if iNdEx >= l {
3702					return io.ErrUnexpectedEOF
3703				}
3704				b := dAtA[iNdEx]
3705				iNdEx++
3706				m.H2UpgradePolicy |= MeshConfig_H2UpgradePolicy(b&0x7F) << shift
3707				if b < 0x80 {
3708					break
3709				}
3710			}
3711		case 42:
3712			if wireType != 2 {
3713				return fmt.Errorf("proto: wrong wireType = %d for field ProtocolDetectionTimeout", wireType)
3714			}
3715			var msglen int
3716			for shift := uint(0); ; shift += 7 {
3717				if shift >= 64 {
3718					return ErrIntOverflowConfig
3719				}
3720				if iNdEx >= l {
3721					return io.ErrUnexpectedEOF
3722				}
3723				b := dAtA[iNdEx]
3724				iNdEx++
3725				msglen |= int(b&0x7F) << shift
3726				if b < 0x80 {
3727					break
3728				}
3729			}
3730			if msglen < 0 {
3731				return ErrInvalidLengthConfig
3732			}
3733			postIndex := iNdEx + msglen
3734			if postIndex < 0 {
3735				return ErrInvalidLengthConfig
3736			}
3737			if postIndex > l {
3738				return io.ErrUnexpectedEOF
3739			}
3740			if m.ProtocolDetectionTimeout == nil {
3741				m.ProtocolDetectionTimeout = &types.Duration{}
3742			}
3743			if err := m.ProtocolDetectionTimeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3744				return err
3745			}
3746			iNdEx = postIndex
3747		case 43:
3748			if wireType != 2 {
3749				return fmt.Errorf("proto: wrong wireType = %d for field EnableAutoMtls", wireType)
3750			}
3751			var msglen int
3752			for shift := uint(0); ; shift += 7 {
3753				if shift >= 64 {
3754					return ErrIntOverflowConfig
3755				}
3756				if iNdEx >= l {
3757					return io.ErrUnexpectedEOF
3758				}
3759				b := dAtA[iNdEx]
3760				iNdEx++
3761				msglen |= int(b&0x7F) << shift
3762				if b < 0x80 {
3763					break
3764				}
3765			}
3766			if msglen < 0 {
3767				return ErrInvalidLengthConfig
3768			}
3769			postIndex := iNdEx + msglen
3770			if postIndex < 0 {
3771				return ErrInvalidLengthConfig
3772			}
3773			if postIndex > l {
3774				return io.ErrUnexpectedEOF
3775			}
3776			if m.EnableAutoMtls == nil {
3777				m.EnableAutoMtls = &types.BoolValue{}
3778			}
3779			if err := m.EnableAutoMtls.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3780				return err
3781			}
3782			iNdEx = postIndex
3783		case 44:
3784			if wireType != 2 {
3785				return fmt.Errorf("proto: wrong wireType = %d for field InboundClusterStatName", wireType)
3786			}
3787			var stringLen uint64
3788			for shift := uint(0); ; shift += 7 {
3789				if shift >= 64 {
3790					return ErrIntOverflowConfig
3791				}
3792				if iNdEx >= l {
3793					return io.ErrUnexpectedEOF
3794				}
3795				b := dAtA[iNdEx]
3796				iNdEx++
3797				stringLen |= uint64(b&0x7F) << shift
3798				if b < 0x80 {
3799					break
3800				}
3801			}
3802			intStringLen := int(stringLen)
3803			if intStringLen < 0 {
3804				return ErrInvalidLengthConfig
3805			}
3806			postIndex := iNdEx + intStringLen
3807			if postIndex < 0 {
3808				return ErrInvalidLengthConfig
3809			}
3810			if postIndex > l {
3811				return io.ErrUnexpectedEOF
3812			}
3813			m.InboundClusterStatName = string(dAtA[iNdEx:postIndex])
3814			iNdEx = postIndex
3815		case 45:
3816			if wireType != 2 {
3817				return fmt.Errorf("proto: wrong wireType = %d for field OutboundClusterStatName", wireType)
3818			}
3819			var stringLen uint64
3820			for shift := uint(0); ; shift += 7 {
3821				if shift >= 64 {
3822					return ErrIntOverflowConfig
3823				}
3824				if iNdEx >= l {
3825					return io.ErrUnexpectedEOF
3826				}
3827				b := dAtA[iNdEx]
3828				iNdEx++
3829				stringLen |= uint64(b&0x7F) << shift
3830				if b < 0x80 {
3831					break
3832				}
3833			}
3834			intStringLen := int(stringLen)
3835			if intStringLen < 0 {
3836				return ErrInvalidLengthConfig
3837			}
3838			postIndex := iNdEx + intStringLen
3839			if postIndex < 0 {
3840				return ErrInvalidLengthConfig
3841			}
3842			if postIndex > l {
3843				return io.ErrUnexpectedEOF
3844			}
3845			m.OutboundClusterStatName = string(dAtA[iNdEx:postIndex])
3846			iNdEx = postIndex
3847		case 46:
3848			if wireType != 2 {
3849				return fmt.Errorf("proto: wrong wireType = %d for field TrustDomainAliases", wireType)
3850			}
3851			var stringLen uint64
3852			for shift := uint(0); ; shift += 7 {
3853				if shift >= 64 {
3854					return ErrIntOverflowConfig
3855				}
3856				if iNdEx >= l {
3857					return io.ErrUnexpectedEOF
3858				}
3859				b := dAtA[iNdEx]
3860				iNdEx++
3861				stringLen |= uint64(b&0x7F) << shift
3862				if b < 0x80 {
3863					break
3864				}
3865			}
3866			intStringLen := int(stringLen)
3867			if intStringLen < 0 {
3868				return ErrInvalidLengthConfig
3869			}
3870			postIndex := iNdEx + intStringLen
3871			if postIndex < 0 {
3872				return ErrInvalidLengthConfig
3873			}
3874			if postIndex > l {
3875				return io.ErrUnexpectedEOF
3876			}
3877			m.TrustDomainAliases = append(m.TrustDomainAliases, string(dAtA[iNdEx:postIndex]))
3878			iNdEx = postIndex
3879		case 47:
3880			if wireType != 2 {
3881				return fmt.Errorf("proto: wrong wireType = %d for field Certificates", wireType)
3882			}
3883			var msglen int
3884			for shift := uint(0); ; shift += 7 {
3885				if shift >= 64 {
3886					return ErrIntOverflowConfig
3887				}
3888				if iNdEx >= l {
3889					return io.ErrUnexpectedEOF
3890				}
3891				b := dAtA[iNdEx]
3892				iNdEx++
3893				msglen |= int(b&0x7F) << shift
3894				if b < 0x80 {
3895					break
3896				}
3897			}
3898			if msglen < 0 {
3899				return ErrInvalidLengthConfig
3900			}
3901			postIndex := iNdEx + msglen
3902			if postIndex < 0 {
3903				return ErrInvalidLengthConfig
3904			}
3905			if postIndex > l {
3906				return io.ErrUnexpectedEOF
3907			}
3908			m.Certificates = append(m.Certificates, &Certificate{})
3909			if err := m.Certificates[len(m.Certificates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3910				return err
3911			}
3912			iNdEx = postIndex
3913		case 48:
3914			if wireType != 0 {
3915				return fmt.Errorf("proto: wrong wireType = %d for field DisableMixerHttpReports", wireType)
3916			}
3917			var v int
3918			for shift := uint(0); ; shift += 7 {
3919				if shift >= 64 {
3920					return ErrIntOverflowConfig
3921				}
3922				if iNdEx >= l {
3923					return io.ErrUnexpectedEOF
3924				}
3925				b := dAtA[iNdEx]
3926				iNdEx++
3927				v |= int(b&0x7F) << shift
3928				if b < 0x80 {
3929					break
3930				}
3931			}
3932			m.DisableMixerHttpReports = bool(v != 0)
3933		case 49:
3934			if wireType != 2 {
3935				return fmt.Errorf("proto: wrong wireType = %d for field ThriftConfig", wireType)
3936			}
3937			var msglen int
3938			for shift := uint(0); ; shift += 7 {
3939				if shift >= 64 {
3940					return ErrIntOverflowConfig
3941				}
3942				if iNdEx >= l {
3943					return io.ErrUnexpectedEOF
3944				}
3945				b := dAtA[iNdEx]
3946				iNdEx++
3947				msglen |= int(b&0x7F) << shift
3948				if b < 0x80 {
3949					break
3950				}
3951			}
3952			if msglen < 0 {
3953				return ErrInvalidLengthConfig
3954			}
3955			postIndex := iNdEx + msglen
3956			if postIndex < 0 {
3957				return ErrInvalidLengthConfig
3958			}
3959			if postIndex > l {
3960				return io.ErrUnexpectedEOF
3961			}
3962			if m.ThriftConfig == nil {
3963				m.ThriftConfig = &MeshConfig_ThriftConfig{}
3964			}
3965			if err := m.ThriftConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3966				return err
3967			}
3968			iNdEx = postIndex
3969		case 50:
3970			if wireType != 2 {
3971				return fmt.Errorf("proto: wrong wireType = %d for field ServiceSettings", wireType)
3972			}
3973			var msglen int
3974			for shift := uint(0); ; shift += 7 {
3975				if shift >= 64 {
3976					return ErrIntOverflowConfig
3977				}
3978				if iNdEx >= l {
3979					return io.ErrUnexpectedEOF
3980				}
3981				b := dAtA[iNdEx]
3982				iNdEx++
3983				msglen |= int(b&0x7F) << shift
3984				if b < 0x80 {
3985					break
3986				}
3987			}
3988			if msglen < 0 {
3989				return ErrInvalidLengthConfig
3990			}
3991			postIndex := iNdEx + msglen
3992			if postIndex < 0 {
3993				return ErrInvalidLengthConfig
3994			}
3995			if postIndex > l {
3996				return io.ErrUnexpectedEOF
3997			}
3998			m.ServiceSettings = append(m.ServiceSettings, &MeshConfig_ServiceSettings{})
3999			if err := m.ServiceSettings[len(m.ServiceSettings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4000				return err
4001			}
4002			iNdEx = postIndex
4003		case 51:
4004			if wireType != 2 {
4005				return fmt.Errorf("proto: wrong wireType = %d for field EnablePrometheusMerge", wireType)
4006			}
4007			var msglen int
4008			for shift := uint(0); ; shift += 7 {
4009				if shift >= 64 {
4010					return ErrIntOverflowConfig
4011				}
4012				if iNdEx >= l {
4013					return io.ErrUnexpectedEOF
4014				}
4015				b := dAtA[iNdEx]
4016				iNdEx++
4017				msglen |= int(b&0x7F) << shift
4018				if b < 0x80 {
4019					break
4020				}
4021			}
4022			if msglen < 0 {
4023				return ErrInvalidLengthConfig
4024			}
4025			postIndex := iNdEx + msglen
4026			if postIndex < 0 {
4027				return ErrInvalidLengthConfig
4028			}
4029			if postIndex > l {
4030				return io.ErrUnexpectedEOF
4031			}
4032			if m.EnablePrometheusMerge == nil {
4033				m.EnablePrometheusMerge = &types.BoolValue{}
4034			}
4035			if err := m.EnablePrometheusMerge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4036				return err
4037			}
4038			iNdEx = postIndex
4039		case 52:
4040			if wireType != 2 {
4041				return fmt.Errorf("proto: wrong wireType = %d for field IngressSelector", wireType)
4042			}
4043			var stringLen uint64
4044			for shift := uint(0); ; shift += 7 {
4045				if shift >= 64 {
4046					return ErrIntOverflowConfig
4047				}
4048				if iNdEx >= l {
4049					return io.ErrUnexpectedEOF
4050				}
4051				b := dAtA[iNdEx]
4052				iNdEx++
4053				stringLen |= uint64(b&0x7F) << shift
4054				if b < 0x80 {
4055					break
4056				}
4057			}
4058			intStringLen := int(stringLen)
4059			if intStringLen < 0 {
4060				return ErrInvalidLengthConfig
4061			}
4062			postIndex := iNdEx + intStringLen
4063			if postIndex < 0 {
4064				return ErrInvalidLengthConfig
4065			}
4066			if postIndex > l {
4067				return io.ErrUnexpectedEOF
4068			}
4069			m.IngressSelector = string(dAtA[iNdEx:postIndex])
4070			iNdEx = postIndex
4071		default:
4072			iNdEx = preIndex
4073			skippy, err := skipConfig(dAtA[iNdEx:])
4074			if err != nil {
4075				return err
4076			}
4077			if skippy < 0 {
4078				return ErrInvalidLengthConfig
4079			}
4080			if (iNdEx + skippy) < 0 {
4081				return ErrInvalidLengthConfig
4082			}
4083			if (iNdEx + skippy) > l {
4084				return io.ErrUnexpectedEOF
4085			}
4086			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4087			iNdEx += skippy
4088		}
4089	}
4090
4091	if iNdEx > l {
4092		return io.ErrUnexpectedEOF
4093	}
4094	return nil
4095}
4096func (m *MeshConfig_OutboundTrafficPolicy) Unmarshal(dAtA []byte) error {
4097	l := len(dAtA)
4098	iNdEx := 0
4099	for iNdEx < l {
4100		preIndex := iNdEx
4101		var wire uint64
4102		for shift := uint(0); ; shift += 7 {
4103			if shift >= 64 {
4104				return ErrIntOverflowConfig
4105			}
4106			if iNdEx >= l {
4107				return io.ErrUnexpectedEOF
4108			}
4109			b := dAtA[iNdEx]
4110			iNdEx++
4111			wire |= uint64(b&0x7F) << shift
4112			if b < 0x80 {
4113				break
4114			}
4115		}
4116		fieldNum := int32(wire >> 3)
4117		wireType := int(wire & 0x7)
4118		if wireType == 4 {
4119			return fmt.Errorf("proto: OutboundTrafficPolicy: wiretype end group for non-group")
4120		}
4121		if fieldNum <= 0 {
4122			return fmt.Errorf("proto: OutboundTrafficPolicy: illegal tag %d (wire type %d)", fieldNum, wire)
4123		}
4124		switch fieldNum {
4125		case 1:
4126			if wireType != 0 {
4127				return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
4128			}
4129			m.Mode = 0
4130			for shift := uint(0); ; shift += 7 {
4131				if shift >= 64 {
4132					return ErrIntOverflowConfig
4133				}
4134				if iNdEx >= l {
4135					return io.ErrUnexpectedEOF
4136				}
4137				b := dAtA[iNdEx]
4138				iNdEx++
4139				m.Mode |= MeshConfig_OutboundTrafficPolicy_Mode(b&0x7F) << shift
4140				if b < 0x80 {
4141					break
4142				}
4143			}
4144		default:
4145			iNdEx = preIndex
4146			skippy, err := skipConfig(dAtA[iNdEx:])
4147			if err != nil {
4148				return err
4149			}
4150			if skippy < 0 {
4151				return ErrInvalidLengthConfig
4152			}
4153			if (iNdEx + skippy) < 0 {
4154				return ErrInvalidLengthConfig
4155			}
4156			if (iNdEx + skippy) > l {
4157				return io.ErrUnexpectedEOF
4158			}
4159			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4160			iNdEx += skippy
4161		}
4162	}
4163
4164	if iNdEx > l {
4165		return io.ErrUnexpectedEOF
4166	}
4167	return nil
4168}
4169func (m *MeshConfig_ThriftConfig) Unmarshal(dAtA []byte) error {
4170	l := len(dAtA)
4171	iNdEx := 0
4172	for iNdEx < l {
4173		preIndex := iNdEx
4174		var wire uint64
4175		for shift := uint(0); ; shift += 7 {
4176			if shift >= 64 {
4177				return ErrIntOverflowConfig
4178			}
4179			if iNdEx >= l {
4180				return io.ErrUnexpectedEOF
4181			}
4182			b := dAtA[iNdEx]
4183			iNdEx++
4184			wire |= uint64(b&0x7F) << shift
4185			if b < 0x80 {
4186				break
4187			}
4188		}
4189		fieldNum := int32(wire >> 3)
4190		wireType := int(wire & 0x7)
4191		if wireType == 4 {
4192			return fmt.Errorf("proto: ThriftConfig: wiretype end group for non-group")
4193		}
4194		if fieldNum <= 0 {
4195			return fmt.Errorf("proto: ThriftConfig: illegal tag %d (wire type %d)", fieldNum, wire)
4196		}
4197		switch fieldNum {
4198		case 1:
4199			if wireType != 2 {
4200				return fmt.Errorf("proto: wrong wireType = %d for field RateLimitUrl", wireType)
4201			}
4202			var stringLen uint64
4203			for shift := uint(0); ; shift += 7 {
4204				if shift >= 64 {
4205					return ErrIntOverflowConfig
4206				}
4207				if iNdEx >= l {
4208					return io.ErrUnexpectedEOF
4209				}
4210				b := dAtA[iNdEx]
4211				iNdEx++
4212				stringLen |= uint64(b&0x7F) << shift
4213				if b < 0x80 {
4214					break
4215				}
4216			}
4217			intStringLen := int(stringLen)
4218			if intStringLen < 0 {
4219				return ErrInvalidLengthConfig
4220			}
4221			postIndex := iNdEx + intStringLen
4222			if postIndex < 0 {
4223				return ErrInvalidLengthConfig
4224			}
4225			if postIndex > l {
4226				return io.ErrUnexpectedEOF
4227			}
4228			m.RateLimitUrl = string(dAtA[iNdEx:postIndex])
4229			iNdEx = postIndex
4230		case 2:
4231			if wireType != 2 {
4232				return fmt.Errorf("proto: wrong wireType = %d for field RateLimitTimeout", wireType)
4233			}
4234			var msglen int
4235			for shift := uint(0); ; shift += 7 {
4236				if shift >= 64 {
4237					return ErrIntOverflowConfig
4238				}
4239				if iNdEx >= l {
4240					return io.ErrUnexpectedEOF
4241				}
4242				b := dAtA[iNdEx]
4243				iNdEx++
4244				msglen |= int(b&0x7F) << shift
4245				if b < 0x80 {
4246					break
4247				}
4248			}
4249			if msglen < 0 {
4250				return ErrInvalidLengthConfig
4251			}
4252			postIndex := iNdEx + msglen
4253			if postIndex < 0 {
4254				return ErrInvalidLengthConfig
4255			}
4256			if postIndex > l {
4257				return io.ErrUnexpectedEOF
4258			}
4259			if m.RateLimitTimeout == nil {
4260				m.RateLimitTimeout = &types.Duration{}
4261			}
4262			if err := m.RateLimitTimeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4263				return err
4264			}
4265			iNdEx = postIndex
4266		default:
4267			iNdEx = preIndex
4268			skippy, err := skipConfig(dAtA[iNdEx:])
4269			if err != nil {
4270				return err
4271			}
4272			if skippy < 0 {
4273				return ErrInvalidLengthConfig
4274			}
4275			if (iNdEx + skippy) < 0 {
4276				return ErrInvalidLengthConfig
4277			}
4278			if (iNdEx + skippy) > l {
4279				return io.ErrUnexpectedEOF
4280			}
4281			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4282			iNdEx += skippy
4283		}
4284	}
4285
4286	if iNdEx > l {
4287		return io.ErrUnexpectedEOF
4288	}
4289	return nil
4290}
4291func (m *MeshConfig_ServiceSettings) Unmarshal(dAtA []byte) error {
4292	l := len(dAtA)
4293	iNdEx := 0
4294	for iNdEx < l {
4295		preIndex := iNdEx
4296		var wire uint64
4297		for shift := uint(0); ; shift += 7 {
4298			if shift >= 64 {
4299				return ErrIntOverflowConfig
4300			}
4301			if iNdEx >= l {
4302				return io.ErrUnexpectedEOF
4303			}
4304			b := dAtA[iNdEx]
4305			iNdEx++
4306			wire |= uint64(b&0x7F) << shift
4307			if b < 0x80 {
4308				break
4309			}
4310		}
4311		fieldNum := int32(wire >> 3)
4312		wireType := int(wire & 0x7)
4313		if wireType == 4 {
4314			return fmt.Errorf("proto: ServiceSettings: wiretype end group for non-group")
4315		}
4316		if fieldNum <= 0 {
4317			return fmt.Errorf("proto: ServiceSettings: illegal tag %d (wire type %d)", fieldNum, wire)
4318		}
4319		switch fieldNum {
4320		case 1:
4321			if wireType != 2 {
4322				return fmt.Errorf("proto: wrong wireType = %d for field Settings", wireType)
4323			}
4324			var msglen int
4325			for shift := uint(0); ; shift += 7 {
4326				if shift >= 64 {
4327					return ErrIntOverflowConfig
4328				}
4329				if iNdEx >= l {
4330					return io.ErrUnexpectedEOF
4331				}
4332				b := dAtA[iNdEx]
4333				iNdEx++
4334				msglen |= int(b&0x7F) << shift
4335				if b < 0x80 {
4336					break
4337				}
4338			}
4339			if msglen < 0 {
4340				return ErrInvalidLengthConfig
4341			}
4342			postIndex := iNdEx + msglen
4343			if postIndex < 0 {
4344				return ErrInvalidLengthConfig
4345			}
4346			if postIndex > l {
4347				return io.ErrUnexpectedEOF
4348			}
4349			if m.Settings == nil {
4350				m.Settings = &MeshConfig_ServiceSettings_Settings{}
4351			}
4352			if err := m.Settings.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4353				return err
4354			}
4355			iNdEx = postIndex
4356		case 2:
4357			if wireType != 2 {
4358				return fmt.Errorf("proto: wrong wireType = %d for field Hosts", wireType)
4359			}
4360			var stringLen uint64
4361			for shift := uint(0); ; shift += 7 {
4362				if shift >= 64 {
4363					return ErrIntOverflowConfig
4364				}
4365				if iNdEx >= l {
4366					return io.ErrUnexpectedEOF
4367				}
4368				b := dAtA[iNdEx]
4369				iNdEx++
4370				stringLen |= uint64(b&0x7F) << shift
4371				if b < 0x80 {
4372					break
4373				}
4374			}
4375			intStringLen := int(stringLen)
4376			if intStringLen < 0 {
4377				return ErrInvalidLengthConfig
4378			}
4379			postIndex := iNdEx + intStringLen
4380			if postIndex < 0 {
4381				return ErrInvalidLengthConfig
4382			}
4383			if postIndex > l {
4384				return io.ErrUnexpectedEOF
4385			}
4386			m.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))
4387			iNdEx = postIndex
4388		default:
4389			iNdEx = preIndex
4390			skippy, err := skipConfig(dAtA[iNdEx:])
4391			if err != nil {
4392				return err
4393			}
4394			if skippy < 0 {
4395				return ErrInvalidLengthConfig
4396			}
4397			if (iNdEx + skippy) < 0 {
4398				return ErrInvalidLengthConfig
4399			}
4400			if (iNdEx + skippy) > l {
4401				return io.ErrUnexpectedEOF
4402			}
4403			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4404			iNdEx += skippy
4405		}
4406	}
4407
4408	if iNdEx > l {
4409		return io.ErrUnexpectedEOF
4410	}
4411	return nil
4412}
4413func (m *MeshConfig_ServiceSettings_Settings) Unmarshal(dAtA []byte) error {
4414	l := len(dAtA)
4415	iNdEx := 0
4416	for iNdEx < l {
4417		preIndex := iNdEx
4418		var wire uint64
4419		for shift := uint(0); ; shift += 7 {
4420			if shift >= 64 {
4421				return ErrIntOverflowConfig
4422			}
4423			if iNdEx >= l {
4424				return io.ErrUnexpectedEOF
4425			}
4426			b := dAtA[iNdEx]
4427			iNdEx++
4428			wire |= uint64(b&0x7F) << shift
4429			if b < 0x80 {
4430				break
4431			}
4432		}
4433		fieldNum := int32(wire >> 3)
4434		wireType := int(wire & 0x7)
4435		if wireType == 4 {
4436			return fmt.Errorf("proto: Settings: wiretype end group for non-group")
4437		}
4438		if fieldNum <= 0 {
4439			return fmt.Errorf("proto: Settings: illegal tag %d (wire type %d)", fieldNum, wire)
4440		}
4441		switch fieldNum {
4442		case 1:
4443			if wireType != 0 {
4444				return fmt.Errorf("proto: wrong wireType = %d for field ClusterLocal", wireType)
4445			}
4446			var v int
4447			for shift := uint(0); ; shift += 7 {
4448				if shift >= 64 {
4449					return ErrIntOverflowConfig
4450				}
4451				if iNdEx >= l {
4452					return io.ErrUnexpectedEOF
4453				}
4454				b := dAtA[iNdEx]
4455				iNdEx++
4456				v |= int(b&0x7F) << shift
4457				if b < 0x80 {
4458					break
4459				}
4460			}
4461			m.ClusterLocal = bool(v != 0)
4462		default:
4463			iNdEx = preIndex
4464			skippy, err := skipConfig(dAtA[iNdEx:])
4465			if err != nil {
4466				return err
4467			}
4468			if skippy < 0 {
4469				return ErrInvalidLengthConfig
4470			}
4471			if (iNdEx + skippy) < 0 {
4472				return ErrInvalidLengthConfig
4473			}
4474			if (iNdEx + skippy) > l {
4475				return io.ErrUnexpectedEOF
4476			}
4477			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4478			iNdEx += skippy
4479		}
4480	}
4481
4482	if iNdEx > l {
4483		return io.ErrUnexpectedEOF
4484	}
4485	return nil
4486}
4487func (m *ConfigSource) Unmarshal(dAtA []byte) error {
4488	l := len(dAtA)
4489	iNdEx := 0
4490	for iNdEx < l {
4491		preIndex := iNdEx
4492		var wire uint64
4493		for shift := uint(0); ; shift += 7 {
4494			if shift >= 64 {
4495				return ErrIntOverflowConfig
4496			}
4497			if iNdEx >= l {
4498				return io.ErrUnexpectedEOF
4499			}
4500			b := dAtA[iNdEx]
4501			iNdEx++
4502			wire |= uint64(b&0x7F) << shift
4503			if b < 0x80 {
4504				break
4505			}
4506		}
4507		fieldNum := int32(wire >> 3)
4508		wireType := int(wire & 0x7)
4509		if wireType == 4 {
4510			return fmt.Errorf("proto: ConfigSource: wiretype end group for non-group")
4511		}
4512		if fieldNum <= 0 {
4513			return fmt.Errorf("proto: ConfigSource: illegal tag %d (wire type %d)", fieldNum, wire)
4514		}
4515		switch fieldNum {
4516		case 1:
4517			if wireType != 2 {
4518				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
4519			}
4520			var stringLen uint64
4521			for shift := uint(0); ; shift += 7 {
4522				if shift >= 64 {
4523					return ErrIntOverflowConfig
4524				}
4525				if iNdEx >= l {
4526					return io.ErrUnexpectedEOF
4527				}
4528				b := dAtA[iNdEx]
4529				iNdEx++
4530				stringLen |= uint64(b&0x7F) << shift
4531				if b < 0x80 {
4532					break
4533				}
4534			}
4535			intStringLen := int(stringLen)
4536			if intStringLen < 0 {
4537				return ErrInvalidLengthConfig
4538			}
4539			postIndex := iNdEx + intStringLen
4540			if postIndex < 0 {
4541				return ErrInvalidLengthConfig
4542			}
4543			if postIndex > l {
4544				return io.ErrUnexpectedEOF
4545			}
4546			m.Address = string(dAtA[iNdEx:postIndex])
4547			iNdEx = postIndex
4548		case 2:
4549			if wireType != 2 {
4550				return fmt.Errorf("proto: wrong wireType = %d for field TlsSettings", wireType)
4551			}
4552			var msglen int
4553			for shift := uint(0); ; shift += 7 {
4554				if shift >= 64 {
4555					return ErrIntOverflowConfig
4556				}
4557				if iNdEx >= l {
4558					return io.ErrUnexpectedEOF
4559				}
4560				b := dAtA[iNdEx]
4561				iNdEx++
4562				msglen |= int(b&0x7F) << shift
4563				if b < 0x80 {
4564					break
4565				}
4566			}
4567			if msglen < 0 {
4568				return ErrInvalidLengthConfig
4569			}
4570			postIndex := iNdEx + msglen
4571			if postIndex < 0 {
4572				return ErrInvalidLengthConfig
4573			}
4574			if postIndex > l {
4575				return io.ErrUnexpectedEOF
4576			}
4577			if m.TlsSettings == nil {
4578				m.TlsSettings = &v1alpha3.ClientTLSSettings{}
4579			}
4580			if err := m.TlsSettings.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4581				return err
4582			}
4583			iNdEx = postIndex
4584		case 3:
4585			if wireType == 0 {
4586				var v Resource
4587				for shift := uint(0); ; shift += 7 {
4588					if shift >= 64 {
4589						return ErrIntOverflowConfig
4590					}
4591					if iNdEx >= l {
4592						return io.ErrUnexpectedEOF
4593					}
4594					b := dAtA[iNdEx]
4595					iNdEx++
4596					v |= Resource(b&0x7F) << shift
4597					if b < 0x80 {
4598						break
4599					}
4600				}
4601				m.SubscribedResources = append(m.SubscribedResources, v)
4602			} else if wireType == 2 {
4603				var packedLen int
4604				for shift := uint(0); ; shift += 7 {
4605					if shift >= 64 {
4606						return ErrIntOverflowConfig
4607					}
4608					if iNdEx >= l {
4609						return io.ErrUnexpectedEOF
4610					}
4611					b := dAtA[iNdEx]
4612					iNdEx++
4613					packedLen |= int(b&0x7F) << shift
4614					if b < 0x80 {
4615						break
4616					}
4617				}
4618				if packedLen < 0 {
4619					return ErrInvalidLengthConfig
4620				}
4621				postIndex := iNdEx + packedLen
4622				if postIndex < 0 {
4623					return ErrInvalidLengthConfig
4624				}
4625				if postIndex > l {
4626					return io.ErrUnexpectedEOF
4627				}
4628				var elementCount int
4629				if elementCount != 0 && len(m.SubscribedResources) == 0 {
4630					m.SubscribedResources = make([]Resource, 0, elementCount)
4631				}
4632				for iNdEx < postIndex {
4633					var v Resource
4634					for shift := uint(0); ; shift += 7 {
4635						if shift >= 64 {
4636							return ErrIntOverflowConfig
4637						}
4638						if iNdEx >= l {
4639							return io.ErrUnexpectedEOF
4640						}
4641						b := dAtA[iNdEx]
4642						iNdEx++
4643						v |= Resource(b&0x7F) << shift
4644						if b < 0x80 {
4645							break
4646						}
4647					}
4648					m.SubscribedResources = append(m.SubscribedResources, v)
4649				}
4650			} else {
4651				return fmt.Errorf("proto: wrong wireType = %d for field SubscribedResources", wireType)
4652			}
4653		default:
4654			iNdEx = preIndex
4655			skippy, err := skipConfig(dAtA[iNdEx:])
4656			if err != nil {
4657				return err
4658			}
4659			if skippy < 0 {
4660				return ErrInvalidLengthConfig
4661			}
4662			if (iNdEx + skippy) < 0 {
4663				return ErrInvalidLengthConfig
4664			}
4665			if (iNdEx + skippy) > l {
4666				return io.ErrUnexpectedEOF
4667			}
4668			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4669			iNdEx += skippy
4670		}
4671	}
4672
4673	if iNdEx > l {
4674		return io.ErrUnexpectedEOF
4675	}
4676	return nil
4677}
4678func (m *Certificate) Unmarshal(dAtA []byte) error {
4679	l := len(dAtA)
4680	iNdEx := 0
4681	for iNdEx < l {
4682		preIndex := iNdEx
4683		var wire uint64
4684		for shift := uint(0); ; shift += 7 {
4685			if shift >= 64 {
4686				return ErrIntOverflowConfig
4687			}
4688			if iNdEx >= l {
4689				return io.ErrUnexpectedEOF
4690			}
4691			b := dAtA[iNdEx]
4692			iNdEx++
4693			wire |= uint64(b&0x7F) << shift
4694			if b < 0x80 {
4695				break
4696			}
4697		}
4698		fieldNum := int32(wire >> 3)
4699		wireType := int(wire & 0x7)
4700		if wireType == 4 {
4701			return fmt.Errorf("proto: Certificate: wiretype end group for non-group")
4702		}
4703		if fieldNum <= 0 {
4704			return fmt.Errorf("proto: Certificate: illegal tag %d (wire type %d)", fieldNum, wire)
4705		}
4706		switch fieldNum {
4707		case 1:
4708			if wireType != 2 {
4709				return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType)
4710			}
4711			var stringLen uint64
4712			for shift := uint(0); ; shift += 7 {
4713				if shift >= 64 {
4714					return ErrIntOverflowConfig
4715				}
4716				if iNdEx >= l {
4717					return io.ErrUnexpectedEOF
4718				}
4719				b := dAtA[iNdEx]
4720				iNdEx++
4721				stringLen |= uint64(b&0x7F) << shift
4722				if b < 0x80 {
4723					break
4724				}
4725			}
4726			intStringLen := int(stringLen)
4727			if intStringLen < 0 {
4728				return ErrInvalidLengthConfig
4729			}
4730			postIndex := iNdEx + intStringLen
4731			if postIndex < 0 {
4732				return ErrInvalidLengthConfig
4733			}
4734			if postIndex > l {
4735				return io.ErrUnexpectedEOF
4736			}
4737			m.SecretName = string(dAtA[iNdEx:postIndex])
4738			iNdEx = postIndex
4739		case 2:
4740			if wireType != 2 {
4741				return fmt.Errorf("proto: wrong wireType = %d for field DnsNames", wireType)
4742			}
4743			var stringLen uint64
4744			for shift := uint(0); ; shift += 7 {
4745				if shift >= 64 {
4746					return ErrIntOverflowConfig
4747				}
4748				if iNdEx >= l {
4749					return io.ErrUnexpectedEOF
4750				}
4751				b := dAtA[iNdEx]
4752				iNdEx++
4753				stringLen |= uint64(b&0x7F) << shift
4754				if b < 0x80 {
4755					break
4756				}
4757			}
4758			intStringLen := int(stringLen)
4759			if intStringLen < 0 {
4760				return ErrInvalidLengthConfig
4761			}
4762			postIndex := iNdEx + intStringLen
4763			if postIndex < 0 {
4764				return ErrInvalidLengthConfig
4765			}
4766			if postIndex > l {
4767				return io.ErrUnexpectedEOF
4768			}
4769			m.DnsNames = append(m.DnsNames, string(dAtA[iNdEx:postIndex]))
4770			iNdEx = postIndex
4771		default:
4772			iNdEx = preIndex
4773			skippy, err := skipConfig(dAtA[iNdEx:])
4774			if err != nil {
4775				return err
4776			}
4777			if skippy < 0 {
4778				return ErrInvalidLengthConfig
4779			}
4780			if (iNdEx + skippy) < 0 {
4781				return ErrInvalidLengthConfig
4782			}
4783			if (iNdEx + skippy) > l {
4784				return io.ErrUnexpectedEOF
4785			}
4786			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4787			iNdEx += skippy
4788		}
4789	}
4790
4791	if iNdEx > l {
4792		return io.ErrUnexpectedEOF
4793	}
4794	return nil
4795}
4796func skipConfig(dAtA []byte) (n int, err error) {
4797	l := len(dAtA)
4798	iNdEx := 0
4799	for iNdEx < l {
4800		var wire uint64
4801		for shift := uint(0); ; shift += 7 {
4802			if shift >= 64 {
4803				return 0, ErrIntOverflowConfig
4804			}
4805			if iNdEx >= l {
4806				return 0, io.ErrUnexpectedEOF
4807			}
4808			b := dAtA[iNdEx]
4809			iNdEx++
4810			wire |= (uint64(b) & 0x7F) << shift
4811			if b < 0x80 {
4812				break
4813			}
4814		}
4815		wireType := int(wire & 0x7)
4816		switch wireType {
4817		case 0:
4818			for shift := uint(0); ; shift += 7 {
4819				if shift >= 64 {
4820					return 0, ErrIntOverflowConfig
4821				}
4822				if iNdEx >= l {
4823					return 0, io.ErrUnexpectedEOF
4824				}
4825				iNdEx++
4826				if dAtA[iNdEx-1] < 0x80 {
4827					break
4828				}
4829			}
4830			return iNdEx, nil
4831		case 1:
4832			iNdEx += 8
4833			return iNdEx, nil
4834		case 2:
4835			var length int
4836			for shift := uint(0); ; shift += 7 {
4837				if shift >= 64 {
4838					return 0, ErrIntOverflowConfig
4839				}
4840				if iNdEx >= l {
4841					return 0, io.ErrUnexpectedEOF
4842				}
4843				b := dAtA[iNdEx]
4844				iNdEx++
4845				length |= (int(b) & 0x7F) << shift
4846				if b < 0x80 {
4847					break
4848				}
4849			}
4850			if length < 0 {
4851				return 0, ErrInvalidLengthConfig
4852			}
4853			iNdEx += length
4854			if iNdEx < 0 {
4855				return 0, ErrInvalidLengthConfig
4856			}
4857			return iNdEx, nil
4858		case 3:
4859			for {
4860				var innerWire uint64
4861				var start int = iNdEx
4862				for shift := uint(0); ; shift += 7 {
4863					if shift >= 64 {
4864						return 0, ErrIntOverflowConfig
4865					}
4866					if iNdEx >= l {
4867						return 0, io.ErrUnexpectedEOF
4868					}
4869					b := dAtA[iNdEx]
4870					iNdEx++
4871					innerWire |= (uint64(b) & 0x7F) << shift
4872					if b < 0x80 {
4873						break
4874					}
4875				}
4876				innerWireType := int(innerWire & 0x7)
4877				if innerWireType == 4 {
4878					break
4879				}
4880				next, err := skipConfig(dAtA[start:])
4881				if err != nil {
4882					return 0, err
4883				}
4884				iNdEx = start + next
4885				if iNdEx < 0 {
4886					return 0, ErrInvalidLengthConfig
4887				}
4888			}
4889			return iNdEx, nil
4890		case 4:
4891			return iNdEx, nil
4892		case 5:
4893			iNdEx += 4
4894			return iNdEx, nil
4895		default:
4896			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
4897		}
4898	}
4899	panic("unreachable")
4900}
4901
4902var (
4903	ErrInvalidLengthConfig = fmt.Errorf("proto: negative length found during unmarshaling")
4904	ErrIntOverflowConfig   = fmt.Errorf("proto: integer overflow")
4905)
4906