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

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        (unknown)
// source: api/v1alpha1/istiocontrolplane.proto

// $schema: istio-operator.api.v1alpha1.IstioControlPlaneSpec
// $title: Istio ControlPlane Spec
// $description: Istio control plane descriptor

package v1alpha1

import (
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	v1alpha1 "istio.io/api/mesh/v1alpha1"
	v1 "k8s.io/api/core/v1"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ModeType int32

const (
	ModeType_ModeType_UNSPECIFIED ModeType = 0
	ModeType_ACTIVE               ModeType = 1
	ModeType_PASSIVE              ModeType = 2
)

// Enum value maps for ModeType.
var (
	ModeType_name = map[int32]string{
		0: "ModeType_UNSPECIFIED",
		1: "ACTIVE",
		2: "PASSIVE",
	}
	ModeType_value = map[string]int32{
		"ModeType_UNSPECIFIED": 0,
		"ACTIVE":               1,
		"PASSIVE":              2,
	}
)

func (x ModeType) Enum() *ModeType {
	p := new(ModeType)
	*p = x
	return p
}

func (x ModeType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ModeType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1alpha1_istiocontrolplane_proto_enumTypes[0].Descriptor()
}

func (ModeType) Type() protoreflect.EnumType {
	return &file_api_v1alpha1_istiocontrolplane_proto_enumTypes[0]
}

func (x ModeType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ModeType.Descriptor instead.
func (ModeType) EnumDescriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{0}
}

type ProxyLogLevel int32

const (
	ProxyLogLevel_ProxyLogLevel_UNSPECIFIED ProxyLogLevel = 0
	ProxyLogLevel_TRACE                     ProxyLogLevel = 1
	ProxyLogLevel_DEBUG                     ProxyLogLevel = 2
	ProxyLogLevel_INFO                      ProxyLogLevel = 3
	ProxyLogLevel_WARNING                   ProxyLogLevel = 4
	ProxyLogLevel_ERROR                     ProxyLogLevel = 5
	ProxyLogLevel_CRITICAL                  ProxyLogLevel = 6
	ProxyLogLevel_OFF                       ProxyLogLevel = 7
)

// Enum value maps for ProxyLogLevel.
var (
	ProxyLogLevel_name = map[int32]string{
		0: "ProxyLogLevel_UNSPECIFIED",
		1: "TRACE",
		2: "DEBUG",
		3: "INFO",
		4: "WARNING",
		5: "ERROR",
		6: "CRITICAL",
		7: "OFF",
	}
	ProxyLogLevel_value = map[string]int32{
		"ProxyLogLevel_UNSPECIFIED": 0,
		"TRACE":                     1,
		"DEBUG":                     2,
		"INFO":                      3,
		"WARNING":                   4,
		"ERROR":                     5,
		"CRITICAL":                  6,
		"OFF":                       7,
	}
)

func (x ProxyLogLevel) Enum() *ProxyLogLevel {
	p := new(ProxyLogLevel)
	*p = x
	return p
}

func (x ProxyLogLevel) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ProxyLogLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1alpha1_istiocontrolplane_proto_enumTypes[1].Descriptor()
}

func (ProxyLogLevel) Type() protoreflect.EnumType {
	return &file_api_v1alpha1_istiocontrolplane_proto_enumTypes[1]
}

func (x ProxyLogLevel) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ProxyLogLevel.Descriptor instead.
func (ProxyLogLevel) EnumDescriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{1}
}

type PilotCertProviderType int32

const (
	PilotCertProviderType_PilotCertProviderType_UNSPECIFIED PilotCertProviderType = 0
	PilotCertProviderType_KUBERNETES                        PilotCertProviderType = 1
	PilotCertProviderType_ISTIOD                            PilotCertProviderType = 2
)

// Enum value maps for PilotCertProviderType.
var (
	PilotCertProviderType_name = map[int32]string{
		0: "PilotCertProviderType_UNSPECIFIED",
		1: "KUBERNETES",
		2: "ISTIOD",
	}
	PilotCertProviderType_value = map[string]int32{
		"PilotCertProviderType_UNSPECIFIED": 0,
		"KUBERNETES":                        1,
		"ISTIOD":                            2,
	}
)

func (x PilotCertProviderType) Enum() *PilotCertProviderType {
	p := new(PilotCertProviderType)
	*p = x
	return p
}

func (x PilotCertProviderType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PilotCertProviderType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1alpha1_istiocontrolplane_proto_enumTypes[2].Descriptor()
}

func (PilotCertProviderType) Type() protoreflect.EnumType {
	return &file_api_v1alpha1_istiocontrolplane_proto_enumTypes[2]
}

func (x PilotCertProviderType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PilotCertProviderType.Descriptor instead.
func (PilotCertProviderType) EnumDescriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{2}
}

type JWTPolicyType int32

const (
	JWTPolicyType_JWTPolicyType_UNSPECIFIED JWTPolicyType = 0
	JWTPolicyType_THIRD_PARTY_JWT           JWTPolicyType = 1
	JWTPolicyType_FIRST_PARTY_JWT           JWTPolicyType = 2
)

// Enum value maps for JWTPolicyType.
var (
	JWTPolicyType_name = map[int32]string{
		0: "JWTPolicyType_UNSPECIFIED",
		1: "THIRD_PARTY_JWT",
		2: "FIRST_PARTY_JWT",
	}
	JWTPolicyType_value = map[string]int32{
		"JWTPolicyType_UNSPECIFIED": 0,
		"THIRD_PARTY_JWT":           1,
		"FIRST_PARTY_JWT":           2,
	}
)

func (x JWTPolicyType) Enum() *JWTPolicyType {
	p := new(JWTPolicyType)
	*p = x
	return p
}

func (x JWTPolicyType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (JWTPolicyType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_v1alpha1_istiocontrolplane_proto_enumTypes[3].Descriptor()
}

func (JWTPolicyType) Type() protoreflect.EnumType {
	return &file_api_v1alpha1_istiocontrolplane_proto_enumTypes[3]
}

func (x JWTPolicyType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use JWTPolicyType.Descriptor instead.
func (JWTPolicyType) EnumDescriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{3}
}

// IstioControlPlane defines an Istio control plane
//
// <!-- crd generation tags
// +cue-gen:IstioControlPlane:groupName:servicemesh.cisco.com
// +cue-gen:IstioControlPlane:version:v1alpha1
// +cue-gen:IstioControlPlane:storageVersion
// +cue-gen:IstioControlPlane:annotations:helm.sh/resource-policy=keep
// +cue-gen:IstioControlPlane:subresource:status
// +cue-gen:IstioControlPlane:scope:Namespaced
// +cue-gen:IstioControlPlane:resource:shortNames=icp,istiocp
// +cue-gen:IstioControlPlane:printerColumn:name="Mode",type="string",JSONPath=".spec.mode",description="Mode for the Istio control plane"
// +cue-gen:IstioControlPlane:printerColumn:name="Network",type="string",JSONPath=".spec.networkName",description="The network this cluster belongs to"
// +cue-gen:IstioControlPlane:printerColumn:name="Status",type="string",JSONPath=".status.status",description="Status of the resource"
// +cue-gen:IstioControlPlane:printerColumn:name="Mesh expansion",type="string",JSONPath=".spec.meshExpansion.enabled",description="Whether mesh expansion is enabled"
// +cue-gen:IstioControlPlane:printerColumn:name="Expansion GW IPs",type="string",JSONPath=".status.gatewayAddress",description="IP addresses of the mesh expansion gateway"
// +cue-gen:IstioControlPlane:printerColumn:name="Error",type="string",JSONPath=".status.errorMessage",description="Error message"
// +cue-gen:IstioControlPlane:printerColumn:name=Age,type=date,JSONPath=.metadata.creationTimestamp,description="CreationTimestamp is a timestamp
// representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations.
// Clients may not set this value. It is represented in RFC3339 form and is in UTC.
// Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
// +cue-gen:IstioControlPlane:preserveUnknownFields:false
// +cue-gen:IstioControlPlane:aliases:PeerIstioControlPlane
// -->
//
// <!-- go code generation tags
// +genclient
// +k8s:deepcopy-gen=true
// -->
type IstioControlPlaneSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Contains the intended version for the Istio control plane.
	// +kubebuilder:validation:Pattern=^1\.
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// Configure the mode for this control plane.
	// Currently, two options are supported: "ACTIVE" and "PASSIVE".
	// ACTIVE mode means that a full-fledged Istio control plane will be deployed and operated
	// (usually called primary cluster in upstream Istio terminology).
	// PASSIVE mode means that only a few resources will be installed for sidecar injection and cross-cluster
	// communication, it is used for multi cluster setups (this is the remote cluster in upstream Istio terminology).
	// +kubebuilder:validation:Enum=ACTIVE;PASSIVE
	Mode ModeType `protobuf:"varint,2,opt,name=mode,proto3,enum=istio_operator.v2.api.v1alpha1.ModeType" json:"mode,omitempty"`
	// Logging configurations.
	Logging *LoggingConfiguration `protobuf:"bytes,3,opt,name=logging,proto3" json:"logging,omitempty"`
	// Use the user-specified, secret volume mounted key and certs for Pilot and workloads.
	MountMtlsCerts *wrappers.BoolValue `protobuf:"bytes,4,opt,name=mountMtlsCerts,proto3" json:"mountMtlsCerts,omitempty"`
	// Istiod configuration.
	Istiod *IstiodConfiguration `protobuf:"bytes,5,opt,name=istiod,proto3" json:"istiod,omitempty"`
	// Proxy configuration options.
	Proxy *ProxyConfiguration `protobuf:"bytes,6,opt,name=proxy,proto3" json:"proxy,omitempty"`
	// Proxy Init configuration options.
	ProxyInit *ProxyInitConfiguration `protobuf:"bytes,7,opt,name=proxyInit,proto3" json:"proxyInit,omitempty"`
	// Telemetry V2 configuration.
	TelemetryV2 *TelemetryV2Configuration `protobuf:"bytes,8,opt,name=telemetryV2,proto3" json:"telemetryV2,omitempty"`
	// If SDS is configured, mTLS certificates for the sidecars will be distributed through the
	// SecretDiscoveryService instead of using K8S secrets to mount the certificates.
	Sds *SDSConfiguration `protobuf:"bytes,9,opt,name=sds,proto3" json:"sds,omitempty"`
	// ProxyWasm configuration options.
	ProxyWasm *ProxyWasmConfiguration `protobuf:"bytes,10,opt,name=proxyWasm,proto3" json:"proxyWasm,omitempty"`
	// Whether to restrict the applications namespace the controller manages.
	// If not set, controller watches all namespaces
	WatchOneNamespace *wrappers.BoolValue `protobuf:"bytes,11,opt,name=watchOneNamespace,proto3" json:"watchOneNamespace,omitempty"`
	// Configure the policy for validating JWT.
	// Currently, two options are supported: "third-party-jwt" and "first-party-jwt".
	// +kubebuilder:validation:Enum=THIRD_PARTY_JWT;FIRST_PARTY_JWT
	JwtPolicy JWTPolicyType `protobuf:"varint,12,opt,name=jwtPolicy,proto3,enum=istio_operator.v2.api.v1alpha1.JWTPolicyType" json:"jwtPolicy,omitempty"`
	// The customized CA address to retrieve certificates for the pods in the cluster.
	// CSR clients such as the Istio Agent and ingress gateways can use this to specify the CA endpoint.
	CaAddress string `protobuf:"bytes,13,opt,name=caAddress,proto3" json:"caAddress,omitempty"`
	// The name of the CA for workload certificates.
	CaProvider string `protobuf:"bytes,14,opt,name=caProvider,proto3" json:"caProvider,omitempty"`
	// Contains the intended distribution for the Istio control plane.
	// The official distribution is used by default unless special preserved distribution value is set.
	// The only preserved distribution is "cisco" as of now.
	Distribution string `protobuf:"bytes,15,opt,name=distribution,proto3" json:"distribution,omitempty"`
	// Upstream HTTP proxy properties to be injected as environment variables to the pod containers.
	HttpProxyEnvs *HTTPProxyEnvsConfiguration `protobuf:"bytes,16,opt,name=httpProxyEnvs,proto3" json:"httpProxyEnvs,omitempty"`
	// Defines mesh-wide settings for the Istio control plane.
	MeshConfig *v1alpha1.MeshConfig `protobuf:"bytes,17,opt,name=meshConfig,proto3" json:"meshConfig,omitempty"`
	// K8s resource overlay patches
	K8SResourceOverlays []*K8SResourceOverlayPatch `protobuf:"bytes,18,rep,name=k8sResourceOverlays,proto3" json:"k8sResourceOverlays,omitempty"`
	// Name of the Mesh to which this control plane belongs.
	MeshID string `protobuf:"bytes,19,opt,name=meshID,proto3" json:"meshID,omitempty"`
	// Global configuration for container images.
	ContainerImageConfiguration *ContainerImageConfiguration `protobuf:"bytes,20,opt,name=containerImageConfiguration,proto3" json:"containerImageConfiguration,omitempty"`
	// Mesh expansion configuration
	MeshExpansion *MeshExpansionConfiguration `protobuf:"bytes,21,opt,name=meshExpansion,proto3" json:"meshExpansion,omitempty"`
	// Cluster ID
	ClusterID string `protobuf:"bytes,22,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	// Network defines the network this cluster belongs to. This name
	// corresponds to the networks in the map of mesh networks.
	// +default=network1
	NetworkName string `protobuf:"bytes,23,opt,name=networkName,proto3" json:"networkName,omitempty"`
	// Standalone sidecar injector configuration.
	SidecarInjector *SidecarInjectorConfiguration `protobuf:"bytes,24,opt,name=sidecarInjector,proto3" json:"sidecarInjector,omitempty"`
	// Tracing defines configuration for the tracing performed by Envoy instances.
	Tracer *v1alpha1.Tracing `protobuf:"bytes,25,opt,name=tracer,proto3" json:"tracer,omitempty"`
}

func (x *IstioControlPlaneSpec) Reset() {
	*x = IstioControlPlaneSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IstioControlPlaneSpec) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IstioControlPlaneSpec) ProtoMessage() {}

func (x *IstioControlPlaneSpec) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IstioControlPlaneSpec.ProtoReflect.Descriptor instead.
func (*IstioControlPlaneSpec) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{0}
}

func (x *IstioControlPlaneSpec) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetMode() ModeType {
	if x != nil {
		return x.Mode
	}
	return ModeType_ModeType_UNSPECIFIED
}

func (x *IstioControlPlaneSpec) GetLogging() *LoggingConfiguration {
	if x != nil {
		return x.Logging
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetMountMtlsCerts() *wrappers.BoolValue {
	if x != nil {
		return x.MountMtlsCerts
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetIstiod() *IstiodConfiguration {
	if x != nil {
		return x.Istiod
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetProxy() *ProxyConfiguration {
	if x != nil {
		return x.Proxy
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetProxyInit() *ProxyInitConfiguration {
	if x != nil {
		return x.ProxyInit
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetTelemetryV2() *TelemetryV2Configuration {
	if x != nil {
		return x.TelemetryV2
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetSds() *SDSConfiguration {
	if x != nil {
		return x.Sds
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetProxyWasm() *ProxyWasmConfiguration {
	if x != nil {
		return x.ProxyWasm
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetWatchOneNamespace() *wrappers.BoolValue {
	if x != nil {
		return x.WatchOneNamespace
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetJwtPolicy() JWTPolicyType {
	if x != nil {
		return x.JwtPolicy
	}
	return JWTPolicyType_JWTPolicyType_UNSPECIFIED
}

func (x *IstioControlPlaneSpec) GetCaAddress() string {
	if x != nil {
		return x.CaAddress
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetCaProvider() string {
	if x != nil {
		return x.CaProvider
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetDistribution() string {
	if x != nil {
		return x.Distribution
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetHttpProxyEnvs() *HTTPProxyEnvsConfiguration {
	if x != nil {
		return x.HttpProxyEnvs
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetMeshConfig() *v1alpha1.MeshConfig {
	if x != nil {
		return x.MeshConfig
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetK8SResourceOverlays() []*K8SResourceOverlayPatch {
	if x != nil {
		return x.K8SResourceOverlays
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetMeshID() string {
	if x != nil {
		return x.MeshID
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetContainerImageConfiguration() *ContainerImageConfiguration {
	if x != nil {
		return x.ContainerImageConfiguration
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetMeshExpansion() *MeshExpansionConfiguration {
	if x != nil {
		return x.MeshExpansion
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetNetworkName() string {
	if x != nil {
		return x.NetworkName
	}
	return ""
}

func (x *IstioControlPlaneSpec) GetSidecarInjector() *SidecarInjectorConfiguration {
	if x != nil {
		return x.SidecarInjector
	}
	return nil
}

func (x *IstioControlPlaneSpec) GetTracer() *v1alpha1.Tracing {
	if x != nil {
		return x.Tracer
	}
	return nil
}

type SidecarInjectorConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Deployment spec
	Deployment *BaseKubernetesResourceConfig `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	// Service spec
	Service *Service `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
	// Fields to introduce sidecar injection template customizations
	Templates *SidecarInjectionTemplates `protobuf:"bytes,3,opt,name=templates,proto3" json:"templates,omitempty"`
}

func (x *SidecarInjectorConfiguration) Reset() {
	*x = SidecarInjectorConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SidecarInjectorConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SidecarInjectorConfiguration) ProtoMessage() {}

func (x *SidecarInjectorConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SidecarInjectorConfiguration.ProtoReflect.Descriptor instead.
func (*SidecarInjectorConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{1}
}

func (x *SidecarInjectorConfiguration) GetDeployment() *BaseKubernetesResourceConfig {
	if x != nil {
		return x.Deployment
	}
	return nil
}

func (x *SidecarInjectorConfiguration) GetService() *Service {
	if x != nil {
		return x.Service
	}
	return nil
}

func (x *SidecarInjectorConfiguration) GetTemplates() *SidecarInjectionTemplates {
	if x != nil {
		return x.Templates
	}
	return nil
}

type SidecarInjectionTemplates struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Overrides for the default "sidecar" injection template. This template will be merged with the default "sidecar" template, overwriting values, if existing.
	Sidecar string `protobuf:"bytes,1,opt,name=sidecar,proto3" json:"sidecar,omitempty"`
	// Overrides for the default "gateway" injection template. This template will be merged with the default "gateway" template, overwriting values, if existing.
	Gateway string `protobuf:"bytes,2,opt,name=gateway,proto3" json:"gateway,omitempty"`
	// Custom templates can be defined for sidecar injection. These templates can be applied by annotating pods with "inject.istio.io/templates=<name of custom template>". See https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#custom-templates-experimental.
	CustomTemplates []*CustomSidecarInjectionTemplates `protobuf:"bytes,3,rep,name=customTemplates,proto3" json:"customTemplates,omitempty"`
}

func (x *SidecarInjectionTemplates) Reset() {
	*x = SidecarInjectionTemplates{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SidecarInjectionTemplates) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SidecarInjectionTemplates) ProtoMessage() {}

func (x *SidecarInjectionTemplates) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SidecarInjectionTemplates.ProtoReflect.Descriptor instead.
func (*SidecarInjectionTemplates) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{2}
}

func (x *SidecarInjectionTemplates) GetSidecar() string {
	if x != nil {
		return x.Sidecar
	}
	return ""
}

func (x *SidecarInjectionTemplates) GetGateway() string {
	if x != nil {
		return x.Gateway
	}
	return ""
}

func (x *SidecarInjectionTemplates) GetCustomTemplates() []*CustomSidecarInjectionTemplates {
	if x != nil {
		return x.CustomTemplates
	}
	return nil
}

type CustomSidecarInjectionTemplates struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name     string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"`
}

func (x *CustomSidecarInjectionTemplates) Reset() {
	*x = CustomSidecarInjectionTemplates{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CustomSidecarInjectionTemplates) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CustomSidecarInjectionTemplates) ProtoMessage() {}

func (x *CustomSidecarInjectionTemplates) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CustomSidecarInjectionTemplates.ProtoReflect.Descriptor instead.
func (*CustomSidecarInjectionTemplates) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{3}
}

func (x *CustomSidecarInjectionTemplates) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CustomSidecarInjectionTemplates) GetTemplate() string {
	if x != nil {
		return x.Template
	}
	return ""
}

type MeshExpansionConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue                                       `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Gateway *MeshExpansionConfiguration_IstioMeshGatewayConfiguration `protobuf:"bytes,2,opt,name=gateway,proto3" json:"gateway,omitempty"`
	// istiod component configuration
	Istiod *MeshExpansionConfiguration_Istiod `protobuf:"bytes,3,opt,name=istiod,proto3" json:"istiod,omitempty"`
	// webhook component configuration
	Webhook *MeshExpansionConfiguration_Webhook `protobuf:"bytes,4,opt,name=webhook,proto3" json:"webhook,omitempty"`
	// cluster services configuration
	ClusterServices *MeshExpansionConfiguration_ClusterServices `protobuf:"bytes,5,opt,name=clusterServices,proto3" json:"clusterServices,omitempty"`
}

func (x *MeshExpansionConfiguration) Reset() {
	*x = MeshExpansionConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MeshExpansionConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeshExpansionConfiguration) ProtoMessage() {}

func (x *MeshExpansionConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeshExpansionConfiguration.ProtoReflect.Descriptor instead.
func (*MeshExpansionConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{4}
}

func (x *MeshExpansionConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *MeshExpansionConfiguration) GetGateway() *MeshExpansionConfiguration_IstioMeshGatewayConfiguration {
	if x != nil {
		return x.Gateway
	}
	return nil
}

func (x *MeshExpansionConfiguration) GetIstiod() *MeshExpansionConfiguration_Istiod {
	if x != nil {
		return x.Istiod
	}
	return nil
}

func (x *MeshExpansionConfiguration) GetWebhook() *MeshExpansionConfiguration_Webhook {
	if x != nil {
		return x.Webhook
	}
	return nil
}

func (x *MeshExpansionConfiguration) GetClusterServices() *MeshExpansionConfiguration_ClusterServices {
	if x != nil {
		return x.ClusterServices
	}
	return nil
}

// Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level>
// The control plane has different scopes depending on component, but can configure default log level across all components
// If empty, default scope and level will be used as configured in code
type LoggingConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// +kubebuilder:validation:Pattern=`^([a-zA-Z]+:[a-zA-Z]+,?)+$`
	Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty"`
}

func (x *LoggingConfiguration) Reset() {
	*x = LoggingConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LoggingConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoggingConfiguration) ProtoMessage() {}

func (x *LoggingConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LoggingConfiguration.ProtoReflect.Descriptor instead.
func (*LoggingConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{5}
}

func (x *LoggingConfiguration) GetLevel() string {
	if x != nil {
		return x.Level
	}
	return ""
}

// SDSConfiguration defines Secret Discovery Service config options
type SDSConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The JWT token for SDS and the aud field of such JWT. See RFC 7519, section 4.1.3.
	// When a CSR is sent from Citadel Agent to the CA (e.g. Citadel), this aud is to make sure the
	//
	//	JWT is intended for the CA.
	TokenAudience string `protobuf:"bytes,1,opt,name=tokenAudience,proto3" json:"tokenAudience,omitempty"`
}

func (x *SDSConfiguration) Reset() {
	*x = SDSConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SDSConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SDSConfiguration) ProtoMessage() {}

func (x *SDSConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SDSConfiguration.ProtoReflect.Descriptor instead.
func (*SDSConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{6}
}

func (x *SDSConfiguration) GetTokenAudience() string {
	if x != nil {
		return x.TokenAudience
	}
	return ""
}

// ProxyConfiguration defines config options for Proxy
type ProxyConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	// If set to true, istio-proxy container will have privileged securityContext
	Privileged *wrappers.BoolValue `protobuf:"bytes,2,opt,name=privileged,proto3" json:"privileged,omitempty"`
	// If set, newly injected sidecars will have core dumps enabled.
	EnableCoreDump *wrappers.BoolValue `protobuf:"bytes,3,opt,name=enableCoreDump,proto3" json:"enableCoreDump,omitempty"`
	// Log level for proxy, applies to gateways and sidecars. If left empty, "warning" is used.
	// Expected values are: trace|debug|info|warning|error|critical|off
	// +kubebuilder:validation:Enum=TRACE;DEBUG;INFO;WARNING;ERROR;CRITICAL;OFF
	LogLevel ProxyLogLevel `protobuf:"varint,4,opt,name=logLevel,proto3,enum=istio_operator.v2.api.v1alpha1.ProxyLogLevel" json:"logLevel,omitempty"`
	// Per Component log level for proxy, applies to gateways and sidecars. If a component level is
	// not set, then the "LogLevel" will be used. If left empty, "misc:error" is used.
	ComponentLogLevel string `protobuf:"bytes,5,opt,name=componentLogLevel,proto3" json:"componentLogLevel,omitempty"`
	// cluster domain. Default value is "cluster.local"
	ClusterDomain string `protobuf:"bytes,6,opt,name=clusterDomain,proto3" json:"clusterDomain,omitempty"`
	// Controls if sidecar is injected at the front of the container list and blocks
	// the start of the other containers until the proxy is ready
	// Default value is 'false'.
	HoldApplicationUntilProxyStarts *wrappers.BoolValue   `protobuf:"bytes,7,opt,name=holdApplicationUntilProxyStarts,proto3" json:"holdApplicationUntilProxyStarts,omitempty"`
	Lifecycle                       *v1.Lifecycle         `protobuf:"bytes,8,opt,name=lifecycle,proto3" json:"lifecycle,omitempty"`
	Resources                       *ResourceRequirements `protobuf:"bytes,9,opt,name=resources,proto3" json:"resources,omitempty"`
	// IncludeIPRanges the range where to capture egress traffic
	IncludeIPRanges string `protobuf:"bytes,10,opt,name=includeIPRanges,proto3" json:"includeIPRanges,omitempty"`
	// ExcludeIPRanges the range where not to capture egress traffic
	ExcludeIPRanges string `protobuf:"bytes,11,opt,name=excludeIPRanges,proto3" json:"excludeIPRanges,omitempty"`
	// ExcludeInboundPorts the comma separated list of inbound ports to be excluded from redirection to Envoy
	ExcludeInboundPorts string `protobuf:"bytes,12,opt,name=excludeInboundPorts,proto3" json:"excludeInboundPorts,omitempty"`
	// ExcludeOutboundPorts the comma separated list of outbound ports to be excluded from redirection to Envoy
	ExcludeOutboundPorts string `protobuf:"bytes,13,opt,name=excludeOutboundPorts,proto3" json:"excludeOutboundPorts,omitempty"`
	// Specify which tracer to use. One of: zipkin, lightstep, datadog, stackdriver
	Tracer *string `protobuf:"bytes,14,opt,name=tracer,proto3,oneof" json:"tracer,omitempty"`
}

func (x *ProxyConfiguration) Reset() {
	*x = ProxyConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProxyConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProxyConfiguration) ProtoMessage() {}

func (x *ProxyConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProxyConfiguration.ProtoReflect.Descriptor instead.
func (*ProxyConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{7}
}

func (x *ProxyConfiguration) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *ProxyConfiguration) GetPrivileged() *wrappers.BoolValue {
	if x != nil {
		return x.Privileged
	}
	return nil
}

func (x *ProxyConfiguration) GetEnableCoreDump() *wrappers.BoolValue {
	if x != nil {
		return x.EnableCoreDump
	}
	return nil
}

func (x *ProxyConfiguration) GetLogLevel() ProxyLogLevel {
	if x != nil {
		return x.LogLevel
	}
	return ProxyLogLevel_ProxyLogLevel_UNSPECIFIED
}

func (x *ProxyConfiguration) GetComponentLogLevel() string {
	if x != nil {
		return x.ComponentLogLevel
	}
	return ""
}

func (x *ProxyConfiguration) GetClusterDomain() string {
	if x != nil {
		return x.ClusterDomain
	}
	return ""
}

func (x *ProxyConfiguration) GetHoldApplicationUntilProxyStarts() *wrappers.BoolValue {
	if x != nil {
		return x.HoldApplicationUntilProxyStarts
	}
	return nil
}

func (x *ProxyConfiguration) GetLifecycle() *v1.Lifecycle {
	if x != nil {
		return x.Lifecycle
	}
	return nil
}

func (x *ProxyConfiguration) GetResources() *ResourceRequirements {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *ProxyConfiguration) GetIncludeIPRanges() string {
	if x != nil {
		return x.IncludeIPRanges
	}
	return ""
}

func (x *ProxyConfiguration) GetExcludeIPRanges() string {
	if x != nil {
		return x.ExcludeIPRanges
	}
	return ""
}

func (x *ProxyConfiguration) GetExcludeInboundPorts() string {
	if x != nil {
		return x.ExcludeInboundPorts
	}
	return ""
}

func (x *ProxyConfiguration) GetExcludeOutboundPorts() string {
	if x != nil {
		return x.ExcludeOutboundPorts
	}
	return ""
}

func (x *ProxyConfiguration) GetTracer() string {
	if x != nil && x.Tracer != nil {
		return *x.Tracer
	}
	return ""
}

// ProxyInitConfiguration defines config options for Proxy Init containers
type ProxyInitConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Image     string                `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	Resources *ResourceRequirements `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
	Cni       *CNIConfiguration     `protobuf:"bytes,3,opt,name=cni,proto3" json:"cni,omitempty"`
}

func (x *ProxyInitConfiguration) Reset() {
	*x = ProxyInitConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProxyInitConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProxyInitConfiguration) ProtoMessage() {}

func (x *ProxyInitConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProxyInitConfiguration.ProtoReflect.Descriptor instead.
func (*ProxyInitConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{8}
}

func (x *ProxyInitConfiguration) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *ProxyInitConfiguration) GetResources() *ResourceRequirements {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *ProxyInitConfiguration) GetCni() *CNIConfiguration {
	if x != nil {
		return x.Cni
	}
	return nil
}

type CNIConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled            *wrappers.BoolValue                   `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Chained            *wrappers.BoolValue                   `protobuf:"bytes,2,opt,name=chained,proto3" json:"chained,omitempty"`
	BinDir             string                                `protobuf:"bytes,4,opt,name=binDir,proto3" json:"binDir,omitempty"`
	ConfDir            string                                `protobuf:"bytes,5,opt,name=confDir,proto3" json:"confDir,omitempty"`
	ExcludeNamespaces  []string                              `protobuf:"bytes,6,rep,name=excludeNamespaces,proto3" json:"excludeNamespaces,omitempty"`
	IncludeNamespaces  []string                              `protobuf:"bytes,7,rep,name=includeNamespaces,proto3" json:"includeNamespaces,omitempty"`
	LogLevel           string                                `protobuf:"bytes,8,opt,name=logLevel,proto3" json:"logLevel,omitempty"`
	ConfFileName       string                                `protobuf:"bytes,9,opt,name=confFileName,proto3" json:"confFileName,omitempty"`
	PspClusterRoleName string                                `protobuf:"bytes,10,opt,name=pspClusterRoleName,proto3" json:"pspClusterRoleName,omitempty"`
	Repair             *CNIConfiguration_RepairConfiguration `protobuf:"bytes,11,opt,name=repair,proto3" json:"repair,omitempty"`
	Taint              *CNIConfiguration_TaintConfiguration  `protobuf:"bytes,12,opt,name=taint,proto3" json:"taint,omitempty"`
	ResourceQuotas     *CNIConfiguration_ResourceQuotas      `protobuf:"bytes,13,opt,name=resourceQuotas,proto3" json:"resourceQuotas,omitempty"`
	Daemonset          *BaseKubernetesResourceConfig         `protobuf:"bytes,14,opt,name=daemonset,proto3" json:"daemonset,omitempty"`
}

func (x *CNIConfiguration) Reset() {
	*x = CNIConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CNIConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CNIConfiguration) ProtoMessage() {}

func (x *CNIConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CNIConfiguration.ProtoReflect.Descriptor instead.
func (*CNIConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{9}
}

func (x *CNIConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *CNIConfiguration) GetChained() *wrappers.BoolValue {
	if x != nil {
		return x.Chained
	}
	return nil
}

func (x *CNIConfiguration) GetBinDir() string {
	if x != nil {
		return x.BinDir
	}
	return ""
}

func (x *CNIConfiguration) GetConfDir() string {
	if x != nil {
		return x.ConfDir
	}
	return ""
}

func (x *CNIConfiguration) GetExcludeNamespaces() []string {
	if x != nil {
		return x.ExcludeNamespaces
	}
	return nil
}

func (x *CNIConfiguration) GetIncludeNamespaces() []string {
	if x != nil {
		return x.IncludeNamespaces
	}
	return nil
}

func (x *CNIConfiguration) GetLogLevel() string {
	if x != nil {
		return x.LogLevel
	}
	return ""
}

func (x *CNIConfiguration) GetConfFileName() string {
	if x != nil {
		return x.ConfFileName
	}
	return ""
}

func (x *CNIConfiguration) GetPspClusterRoleName() string {
	if x != nil {
		return x.PspClusterRoleName
	}
	return ""
}

func (x *CNIConfiguration) GetRepair() *CNIConfiguration_RepairConfiguration {
	if x != nil {
		return x.Repair
	}
	return nil
}

func (x *CNIConfiguration) GetTaint() *CNIConfiguration_TaintConfiguration {
	if x != nil {
		return x.Taint
	}
	return nil
}

func (x *CNIConfiguration) GetResourceQuotas() *CNIConfiguration_ResourceQuotas {
	if x != nil {
		return x.ResourceQuotas
	}
	return nil
}

func (x *CNIConfiguration) GetDaemonset() *BaseKubernetesResourceConfig {
	if x != nil {
		return x.Daemonset
	}
	return nil
}

// IstiodConfiguration defines config options for Istiod
type IstiodConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Deployment spec
	Deployment *BaseKubernetesResourceConfig `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	// If enabled, pilot will run Istio analyzers and write analysis errors to the Status field of any Istio Resources
	EnableAnalysis *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enableAnalysis,proto3" json:"enableAnalysis,omitempty"`
	// If enabled, pilot will update the CRD Status field of all Istio resources with reconciliation status
	EnableStatus *wrappers.BoolValue `protobuf:"bytes,3,opt,name=enableStatus,proto3" json:"enableStatus,omitempty"`
	// Settings for local istiod to control remote clusters as well
	ExternalIstiod *ExternalIstiodConfiguration `protobuf:"bytes,4,opt,name=externalIstiod,proto3" json:"externalIstiod,omitempty"`
	TraceSampling  *wrappers.FloatValue         `protobuf:"bytes,5,opt,name=traceSampling,proto3" json:"traceSampling,omitempty"`
	// If enabled, protocol sniffing will be used for outbound listeners whose port protocol is not specified or unsupported
	EnableProtocolSniffingOutbound *wrappers.BoolValue `protobuf:"bytes,6,opt,name=enableProtocolSniffingOutbound,proto3" json:"enableProtocolSniffingOutbound,omitempty"`
	// If enabled, protocol sniffing will be used for inbound listeners whose port protocol is not specified or unsupported
	EnableProtocolSniffingInbound *wrappers.BoolValue `protobuf:"bytes,7,opt,name=enableProtocolSniffingInbound,proto3" json:"enableProtocolSniffingInbound,omitempty"`
	// Configure the certificate provider for control plane communication.
	// Currently, two providers are supported: "kubernetes" and "istiod".
	// As some platforms may not have kubernetes signing APIs,
	// Istiod is the default
	// +kubebuilder:validation:Enum=KUBERNETES;ISTIOD
	CertProvider PilotCertProviderType `protobuf:"varint,8,opt,name=certProvider,proto3,enum=istio_operator.v2.api.v1alpha1.PilotCertProviderType" json:"certProvider,omitempty"`
	// SPIFFE configuration of Pilot
	Spiffe *SPIFFEConfiguration `protobuf:"bytes,9,opt,name=spiffe,proto3" json:"spiffe,omitempty"`
}

func (x *IstiodConfiguration) Reset() {
	*x = IstiodConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IstiodConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IstiodConfiguration) ProtoMessage() {}

func (x *IstiodConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IstiodConfiguration.ProtoReflect.Descriptor instead.
func (*IstiodConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{10}
}

func (x *IstiodConfiguration) GetDeployment() *BaseKubernetesResourceConfig {
	if x != nil {
		return x.Deployment
	}
	return nil
}

func (x *IstiodConfiguration) GetEnableAnalysis() *wrappers.BoolValue {
	if x != nil {
		return x.EnableAnalysis
	}
	return nil
}

func (x *IstiodConfiguration) GetEnableStatus() *wrappers.BoolValue {
	if x != nil {
		return x.EnableStatus
	}
	return nil
}

func (x *IstiodConfiguration) GetExternalIstiod() *ExternalIstiodConfiguration {
	if x != nil {
		return x.ExternalIstiod
	}
	return nil
}

func (x *IstiodConfiguration) GetTraceSampling() *wrappers.FloatValue {
	if x != nil {
		return x.TraceSampling
	}
	return nil
}

func (x *IstiodConfiguration) GetEnableProtocolSniffingOutbound() *wrappers.BoolValue {
	if x != nil {
		return x.EnableProtocolSniffingOutbound
	}
	return nil
}

func (x *IstiodConfiguration) GetEnableProtocolSniffingInbound() *wrappers.BoolValue {
	if x != nil {
		return x.EnableProtocolSniffingInbound
	}
	return nil
}

func (x *IstiodConfiguration) GetCertProvider() PilotCertProviderType {
	if x != nil {
		return x.CertProvider
	}
	return PilotCertProviderType_PilotCertProviderType_UNSPECIFIED
}

func (x *IstiodConfiguration) GetSpiffe() *SPIFFEConfiguration {
	if x != nil {
		return x.Spiffe
	}
	return nil
}

// ExternalIstiodConfiguration defines settings for local istiod to control remote clusters as well
type ExternalIstiodConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *ExternalIstiodConfiguration) Reset() {
	*x = ExternalIstiodConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExternalIstiodConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExternalIstiodConfiguration) ProtoMessage() {}

func (x *ExternalIstiodConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ExternalIstiodConfiguration.ProtoReflect.Descriptor instead.
func (*ExternalIstiodConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{11}
}

func (x *ExternalIstiodConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

// SPIFFEConfiguration is for SPIFFE configuration of Pilot
type SPIFFEConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OperatorEndpoints *OperatorEndpointsConfiguration `protobuf:"bytes,1,opt,name=operatorEndpoints,proto3" json:"operatorEndpoints,omitempty"`
}

func (x *SPIFFEConfiguration) Reset() {
	*x = SPIFFEConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SPIFFEConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SPIFFEConfiguration) ProtoMessage() {}

func (x *SPIFFEConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SPIFFEConfiguration.ProtoReflect.Descriptor instead.
func (*SPIFFEConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{12}
}

func (x *SPIFFEConfiguration) GetOperatorEndpoints() *OperatorEndpointsConfiguration {
	if x != nil {
		return x.OperatorEndpoints
	}
	return nil
}

// OperatorEndpointsConfiguration defines config options for automatic SPIFFE endpoints
type OperatorEndpointsConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *OperatorEndpointsConfiguration) Reset() {
	*x = OperatorEndpointsConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OperatorEndpointsConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OperatorEndpointsConfiguration) ProtoMessage() {}

func (x *OperatorEndpointsConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OperatorEndpointsConfiguration.ProtoReflect.Descriptor instead.
func (*OperatorEndpointsConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{13}
}

func (x *OperatorEndpointsConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

type TelemetryV2Configuration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *TelemetryV2Configuration) Reset() {
	*x = TelemetryV2Configuration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TelemetryV2Configuration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TelemetryV2Configuration) ProtoMessage() {}

func (x *TelemetryV2Configuration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TelemetryV2Configuration.ProtoReflect.Descriptor instead.
func (*TelemetryV2Configuration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{14}
}

func (x *TelemetryV2Configuration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

// ProxyWasmConfiguration defines config options for Envoy wasm
type ProxyWasmConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *ProxyWasmConfiguration) Reset() {
	*x = ProxyWasmConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProxyWasmConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProxyWasmConfiguration) ProtoMessage() {}

func (x *ProxyWasmConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProxyWasmConfiguration.ProtoReflect.Descriptor instead.
func (*ProxyWasmConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{15}
}

func (x *ProxyWasmConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

// PDBConfiguration holds Pod Disruption Budget related config options
type PDBConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *PDBConfiguration) Reset() {
	*x = PDBConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PDBConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PDBConfiguration) ProtoMessage() {}

func (x *PDBConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PDBConfiguration.ProtoReflect.Descriptor instead.
func (*PDBConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{16}
}

func (x *PDBConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

type HTTPProxyEnvsConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HttpProxy  string `protobuf:"bytes,1,opt,name=httpProxy,proto3" json:"httpProxy,omitempty"`
	HttpsProxy string `protobuf:"bytes,2,opt,name=httpsProxy,proto3" json:"httpsProxy,omitempty"`
	NoProxy    string `protobuf:"bytes,3,opt,name=noProxy,proto3" json:"noProxy,omitempty"`
}

func (x *HTTPProxyEnvsConfiguration) Reset() {
	*x = HTTPProxyEnvsConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HTTPProxyEnvsConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPProxyEnvsConfiguration) ProtoMessage() {}

func (x *HTTPProxyEnvsConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPProxyEnvsConfiguration.ProtoReflect.Descriptor instead.
func (*HTTPProxyEnvsConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{17}
}

func (x *HTTPProxyEnvsConfiguration) GetHttpProxy() string {
	if x != nil {
		return x.HttpProxy
	}
	return ""
}

func (x *HTTPProxyEnvsConfiguration) GetHttpsProxy() string {
	if x != nil {
		return x.HttpsProxy
	}
	return ""
}

func (x *HTTPProxyEnvsConfiguration) GetNoProxy() string {
	if x != nil {
		return x.NoProxy
	}
	return ""
}

// <!-- go code generation tags
// +genclient
// +k8s:deepcopy-gen=true
// -->
type IstioControlPlaneStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Reconciliation status of the Istio control plane
	Status ConfigState `protobuf:"varint,1,opt,name=status,proto3,enum=istio_operator.v2.api.v1alpha1.ConfigState" json:"status,omitempty"`
	// Cluster ID
	ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	// Name of the IstioControlPlane resource
	// It is used on remote clusters in the PeerIstioControlPlane resource status
	// to identify the original Istio control plane
	IstioControlPlaneName string `protobuf:"bytes,3,opt,name=istioControlPlaneName,proto3" json:"istioControlPlaneName,omitempty"`
	// Current addresses for the corresponding gateways
	GatewayAddress []string `protobuf:"bytes,4,rep,name=gatewayAddress,proto3" json:"gatewayAddress,omitempty"`
	// Current addresses for the corresponding istiod pods
	IstiodAddresses []string `protobuf:"bytes,5,rep,name=istiodAddresses,proto3" json:"istiodAddresses,omitempty"`
	// Namespaces which are set for injection for this control plane
	InjectionNamespaces []string `protobuf:"bytes,6,rep,name=injectionNamespaces,proto3" json:"injectionNamespaces,omitempty"`
	// Istio CA root certificate
	CaRootCertificate string `protobuf:"bytes,7,opt,name=caRootCertificate,proto3" json:"caRootCertificate,omitempty"`
	// Reconciliation error message if any
	ErrorMessage string               `protobuf:"bytes,8,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"`
	MeshConfig   *v1alpha1.MeshConfig `protobuf:"bytes,9,opt,name=meshConfig,proto3" json:"meshConfig,omitempty"`
	Checksums    *StatusChecksums     `protobuf:"bytes,10,opt,name=checksums,proto3" json:"checksums,omitempty"`
}

func (x *IstioControlPlaneStatus) Reset() {
	*x = IstioControlPlaneStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IstioControlPlaneStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IstioControlPlaneStatus) ProtoMessage() {}

func (x *IstioControlPlaneStatus) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IstioControlPlaneStatus.ProtoReflect.Descriptor instead.
func (*IstioControlPlaneStatus) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{18}
}

func (x *IstioControlPlaneStatus) GetStatus() ConfigState {
	if x != nil {
		return x.Status
	}
	return ConfigState_Unspecified
}

func (x *IstioControlPlaneStatus) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *IstioControlPlaneStatus) GetIstioControlPlaneName() string {
	if x != nil {
		return x.IstioControlPlaneName
	}
	return ""
}

func (x *IstioControlPlaneStatus) GetGatewayAddress() []string {
	if x != nil {
		return x.GatewayAddress
	}
	return nil
}

func (x *IstioControlPlaneStatus) GetIstiodAddresses() []string {
	if x != nil {
		return x.IstiodAddresses
	}
	return nil
}

func (x *IstioControlPlaneStatus) GetInjectionNamespaces() []string {
	if x != nil {
		return x.InjectionNamespaces
	}
	return nil
}

func (x *IstioControlPlaneStatus) GetCaRootCertificate() string {
	if x != nil {
		return x.CaRootCertificate
	}
	return ""
}

func (x *IstioControlPlaneStatus) GetErrorMessage() string {
	if x != nil {
		return x.ErrorMessage
	}
	return ""
}

func (x *IstioControlPlaneStatus) GetMeshConfig() *v1alpha1.MeshConfig {
	if x != nil {
		return x.MeshConfig
	}
	return nil
}

func (x *IstioControlPlaneStatus) GetChecksums() *StatusChecksums {
	if x != nil {
		return x.Checksums
	}
	return nil
}

// <!-- go code generation tags
// +genclient
// +k8s:deepcopy-gen=true
// -->
type StatusChecksums struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MeshConfig      string `protobuf:"bytes,1,opt,name=meshConfig,proto3" json:"meshConfig,omitempty"`
	SidecarInjector string `protobuf:"bytes,2,opt,name=sidecarInjector,proto3" json:"sidecarInjector,omitempty"`
}

func (x *StatusChecksums) Reset() {
	*x = StatusChecksums{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StatusChecksums) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StatusChecksums) ProtoMessage() {}

func (x *StatusChecksums) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatusChecksums.ProtoReflect.Descriptor instead.
func (*StatusChecksums) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{19}
}

func (x *StatusChecksums) GetMeshConfig() string {
	if x != nil {
		return x.MeshConfig
	}
	return ""
}

func (x *StatusChecksums) GetSidecarInjector() string {
	if x != nil {
		return x.SidecarInjector
	}
	return ""
}

type MeshExpansionConfiguration_Istiod struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Expose *wrappers.BoolValue `protobuf:"bytes,1,opt,name=expose,proto3" json:"expose,omitempty"`
}

func (x *MeshExpansionConfiguration_Istiod) Reset() {
	*x = MeshExpansionConfiguration_Istiod{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MeshExpansionConfiguration_Istiod) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeshExpansionConfiguration_Istiod) ProtoMessage() {}

func (x *MeshExpansionConfiguration_Istiod) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeshExpansionConfiguration_Istiod.ProtoReflect.Descriptor instead.
func (*MeshExpansionConfiguration_Istiod) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{4, 0}
}

func (x *MeshExpansionConfiguration_Istiod) GetExpose() *wrappers.BoolValue {
	if x != nil {
		return x.Expose
	}
	return nil
}

type MeshExpansionConfiguration_Webhook struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Expose *wrappers.BoolValue `protobuf:"bytes,1,opt,name=expose,proto3" json:"expose,omitempty"`
}

func (x *MeshExpansionConfiguration_Webhook) Reset() {
	*x = MeshExpansionConfiguration_Webhook{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MeshExpansionConfiguration_Webhook) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeshExpansionConfiguration_Webhook) ProtoMessage() {}

func (x *MeshExpansionConfiguration_Webhook) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeshExpansionConfiguration_Webhook.ProtoReflect.Descriptor instead.
func (*MeshExpansionConfiguration_Webhook) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{4, 1}
}

func (x *MeshExpansionConfiguration_Webhook) GetExpose() *wrappers.BoolValue {
	if x != nil {
		return x.Expose
	}
	return nil
}

type MeshExpansionConfiguration_ClusterServices struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Expose *wrappers.BoolValue `protobuf:"bytes,1,opt,name=expose,proto3" json:"expose,omitempty"`
}

func (x *MeshExpansionConfiguration_ClusterServices) Reset() {
	*x = MeshExpansionConfiguration_ClusterServices{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MeshExpansionConfiguration_ClusterServices) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeshExpansionConfiguration_ClusterServices) ProtoMessage() {}

func (x *MeshExpansionConfiguration_ClusterServices) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeshExpansionConfiguration_ClusterServices.ProtoReflect.Descriptor instead.
func (*MeshExpansionConfiguration_ClusterServices) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{4, 2}
}

func (x *MeshExpansionConfiguration_ClusterServices) GetExpose() *wrappers.BoolValue {
	if x != nil {
		return x.Expose
	}
	return nil
}

type MeshExpansionConfiguration_IstioMeshGatewayConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Istio Mesh gateway metadata
	Metadata *K8SObjectMeta `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Deployment spec
	Deployment *BaseKubernetesResourceConfig `protobuf:"bytes,2,opt,name=deployment,proto3" json:"deployment,omitempty"`
	// Service spec
	Service *UnprotectedService `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
	// Whether to run the gateway in a privileged container
	RunAsRoot *wrappers.BoolValue `protobuf:"bytes,4,opt,name=runAsRoot,proto3" json:"runAsRoot,omitempty"`
	// K8s resource overlay patches
	K8SResourceOverlays []*K8SResourceOverlayPatch `protobuf:"bytes,5,rep,name=k8sResourceOverlays,proto3" json:"k8sResourceOverlays,omitempty"`
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) Reset() {
	*x = MeshExpansionConfiguration_IstioMeshGatewayConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeshExpansionConfiguration_IstioMeshGatewayConfiguration) ProtoMessage() {}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeshExpansionConfiguration_IstioMeshGatewayConfiguration.ProtoReflect.Descriptor instead.
func (*MeshExpansionConfiguration_IstioMeshGatewayConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{4, 3}
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) GetMetadata() *K8SObjectMeta {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) GetDeployment() *BaseKubernetesResourceConfig {
	if x != nil {
		return x.Deployment
	}
	return nil
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) GetService() *UnprotectedService {
	if x != nil {
		return x.Service
	}
	return nil
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) GetRunAsRoot() *wrappers.BoolValue {
	if x != nil {
		return x.RunAsRoot
	}
	return nil
}

func (x *MeshExpansionConfiguration_IstioMeshGatewayConfiguration) GetK8SResourceOverlays() []*K8SResourceOverlayPatch {
	if x != nil {
		return x.K8SResourceOverlays
	}
	return nil
}

type CNIConfiguration_RepairConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled             *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	LabelPods           *wrappers.BoolValue `protobuf:"bytes,2,opt,name=labelPods,proto3" json:"labelPods,omitempty"`
	DeletePods          *wrappers.BoolValue `protobuf:"bytes,3,opt,name=deletePods,proto3" json:"deletePods,omitempty"`
	InitContainerName   string              `protobuf:"bytes,4,opt,name=initContainerName,proto3" json:"initContainerName,omitempty"`
	BrokenPodLabelKey   string              `protobuf:"bytes,5,opt,name=brokenPodLabelKey,proto3" json:"brokenPodLabelKey,omitempty"`
	BrokenPodLabelValue string              `protobuf:"bytes,6,opt,name=brokenPodLabelValue,proto3" json:"brokenPodLabelValue,omitempty"`
}

func (x *CNIConfiguration_RepairConfiguration) Reset() {
	*x = CNIConfiguration_RepairConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CNIConfiguration_RepairConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CNIConfiguration_RepairConfiguration) ProtoMessage() {}

func (x *CNIConfiguration_RepairConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CNIConfiguration_RepairConfiguration.ProtoReflect.Descriptor instead.
func (*CNIConfiguration_RepairConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{9, 0}
}

func (x *CNIConfiguration_RepairConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *CNIConfiguration_RepairConfiguration) GetLabelPods() *wrappers.BoolValue {
	if x != nil {
		return x.LabelPods
	}
	return nil
}

func (x *CNIConfiguration_RepairConfiguration) GetDeletePods() *wrappers.BoolValue {
	if x != nil {
		return x.DeletePods
	}
	return nil
}

func (x *CNIConfiguration_RepairConfiguration) GetInitContainerName() string {
	if x != nil {
		return x.InitContainerName
	}
	return ""
}

func (x *CNIConfiguration_RepairConfiguration) GetBrokenPodLabelKey() string {
	if x != nil {
		return x.BrokenPodLabelKey
	}
	return ""
}

func (x *CNIConfiguration_RepairConfiguration) GetBrokenPodLabelValue() string {
	if x != nil {
		return x.BrokenPodLabelValue
	}
	return ""
}

type CNIConfiguration_TaintConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled   *wrappers.BoolValue                   `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Container *BaseKubernetesContainerConfiguration `protobuf:"bytes,2,opt,name=container,proto3" json:"container,omitempty"`
}

func (x *CNIConfiguration_TaintConfiguration) Reset() {
	*x = CNIConfiguration_TaintConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CNIConfiguration_TaintConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CNIConfiguration_TaintConfiguration) ProtoMessage() {}

func (x *CNIConfiguration_TaintConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CNIConfiguration_TaintConfiguration.ProtoReflect.Descriptor instead.
func (*CNIConfiguration_TaintConfiguration) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{9, 1}
}

func (x *CNIConfiguration_TaintConfiguration) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *CNIConfiguration_TaintConfiguration) GetContainer() *BaseKubernetesContainerConfiguration {
	if x != nil {
		return x.Container
	}
	return nil
}

type CNIConfiguration_ResourceQuotas struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Enabled         *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Pods            string              `protobuf:"bytes,2,opt,name=pods,proto3" json:"pods,omitempty"`
	PriorityClasses []string            `protobuf:"bytes,3,rep,name=priorityClasses,proto3" json:"priorityClasses,omitempty"`
}

func (x *CNIConfiguration_ResourceQuotas) Reset() {
	*x = CNIConfiguration_ResourceQuotas{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CNIConfiguration_ResourceQuotas) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CNIConfiguration_ResourceQuotas) ProtoMessage() {}

func (x *CNIConfiguration_ResourceQuotas) ProtoReflect() protoreflect.Message {
	mi := &file_api_v1alpha1_istiocontrolplane_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CNIConfiguration_ResourceQuotas.ProtoReflect.Descriptor instead.
func (*CNIConfiguration_ResourceQuotas) Descriptor() ([]byte, []int) {
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP(), []int{9, 2}
}

func (x *CNIConfiguration_ResourceQuotas) GetEnabled() *wrappers.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *CNIConfiguration_ResourceQuotas) GetPods() string {
	if x != nil {
		return x.Pods
	}
	return ""
}

func (x *CNIConfiguration_ResourceQuotas) GetPriorityClasses() []string {
	if x != nil {
		return x.PriorityClasses
	}
	return nil
}

var File_api_v1alpha1_istiocontrolplane_proto protoreflect.FileDescriptor

var file_api_v1alpha1_istiocontrolplane_proto_rawDesc = []byte{
	0x0a, 0x24, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69,
	0x73, 0x74, 0x69, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x70, 0x6c, 0x61, 0x6e, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x23, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f,
	0x69, 0x73, 0x74, 0x69, 0x6f, 0x6d, 0x65, 0x73, 0x68, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72,
	0x61, 0x74, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d, 0x65, 0x73, 0x68,
	0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0xd0, 0x0d, 0x0a, 0x15, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x07,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xe2,
	0x41, 0x01, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x04,
	0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x69, 0x73, 0x74,
	0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65,
	0x12, 0x4e, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x34, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
	0x12, 0x42, 0x0a, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72,
	0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x74, 0x6c, 0x73, 0x43,
	0x65, 0x72, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x69, 0x73, 0x74, 0x69, 0x6f,
	0x64, 0x12, 0x48, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x32, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x54, 0x0a, 0x09, 0x70,
	0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36,
	0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x69,
	0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x56, 0x32,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
	0x79, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0b, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x56, 0x32, 0x12, 0x42, 0x0a,
	0x03, 0x73, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x73, 0x74,
	0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x44, 0x53, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x73, 0x64,
	0x73, 0x12, 0x54, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x61, 0x73, 0x6d, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x61, 0x73, 0x6d, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72,
	0x6f, 0x78, 0x79, 0x57, 0x61, 0x73, 0x6d, 0x12, 0x48, 0x0a, 0x11, 0x77, 0x61, 0x74, 0x63, 0x68,
	0x4f, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11,
	0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x12, 0x4b, 0x0a, 0x09, 0x6a, 0x77, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4a, 0x57, 0x54, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x09, 0x6a, 0x77, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1c,
	0x0a, 0x09, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x61, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x61, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c,
	0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x60, 0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x76,
	0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f,
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x50, 0x72, 0x6f,
	0x78, 0x79, 0x45, 0x6e, 0x76, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e,
	0x76, 0x73, 0x12, 0x3f, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d,
	0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
	0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x13, 0x6b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x37, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x4b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65,
	0x72, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x13, 0x6b, 0x38, 0x73, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x16,
	0x0a, 0x06, 0x6d, 0x65, 0x73, 0x68, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6d, 0x65, 0x73, 0x68, 0x49, 0x44, 0x12, 0x7d, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x68, 0x45, 0x78, 0x70,
	0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x69,
	0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65,
	0x73, 0x68, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x68, 0x45, 0x78,
	0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77,
	0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63,
	0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f,
	0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12,
	0x34, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74,
	0x72, 0x61, 0x63, 0x65, 0x72, 0x22, 0x98, 0x02, 0x0a, 0x1c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61,
	0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x69, 0x73, 0x74,
	0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x73, 0x74,
	0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x64, 0x65,
	0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73,
	0x22, 0xba, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18,
	0x0a, 0x07, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65,
	0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77,
	0x61, 0x79, 0x12, 0x69, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x51, 0x0a,
	0x1f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e,
	0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x22, 0xf7, 0x08, 0x0a, 0x1a, 0x4d, 0x65, 0x73, 0x68, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69,
	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x72, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x45, 0x78, 0x70, 0x61,
	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x68, 0x47, 0x61, 0x74, 0x65,
	0x77, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x59, 0x0a, 0x06, 0x69, 0x73, 0x74,
	0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x69, 0x73, 0x74, 0x69,
	0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x45,
	0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x52, 0x06, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x64, 0x12, 0x5c, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x45, 0x78, 0x70, 0x61, 0x6e,
	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f,
	0x6f, 0x6b, 0x12, 0x74, 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
	0x68, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x3c, 0x0a, 0x06, 0x49, 0x73, 0x74, 0x69,
	0x6f, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06,
	0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x1a, 0x3d, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
	0x6b, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65,
	0x78, 0x70, 0x6f, 0x73, 0x65, 0x1a, 0x45, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f,
	0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x1a, 0xbb, 0x03, 0x0a,
	0x1d, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
	0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49,
	0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x4b, 0x38, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x0a, 0x64, 0x65, 0x70,
	0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e,
	0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42,
	0x61, 0x73, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x65, 0x70,
	0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f,
	0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x70, 0x72, 0x6f, 0x74,
	0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x6f,
	0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12,
	0x69, 0x0a, 0x13, 0x6b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76,
	0x65, 0x72, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69,
	0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x38,
	0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79,
	0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x13, 0x6b, 0x38, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x73, 0x22, 0x2c, 0x0a, 0x14, 0x4c, 0x6f,
	0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x38, 0x0a, 0x10, 0x53, 0x44, 0x53, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e,
	0x63, 0x65, 0x22, 0xa2, 0x06, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61,
	0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12,
	0x3a, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0e, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x44, 0x75, 0x6d, 0x70, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x44, 0x75, 0x6d, 0x70, 0x12,
	0x49, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c,
	0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x64,
	0x0a, 0x1f, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x1f, 0x68, 0x6f, 0x6c, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c,
	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x66,
	0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c,
	0x65, 0x12, 0x52, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
	0x49, 0x50, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x50, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
	0x28, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x50, 0x52, 0x61, 0x6e, 0x67,
	0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
	0x65, 0x49, 0x50, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x78, 0x63,
	0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49,
	0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x65,
	0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f,
	0x72, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x65, 0x78, 0x63, 0x6c, 0x75,
	0x64, 0x65, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12,
	0x1b, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x00, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07,
	0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x78,
	0x79, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x03,
	0x63, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x73, 0x74, 0x69,
	0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x4e, 0x49, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x63, 0x6e, 0x69,
	0x22, 0x84, 0x0b, 0x0a, 0x10, 0x43, 0x4e, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x63,
	0x68, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42,
	0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x65,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6e, 0x44, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x44, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
	0x66, 0x44, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66,
	0x44, 0x69, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x61,
	0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11,
	0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
	0x73, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e,
	0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12,
	0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63,
	0x6f, 0x6e, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x2e, 0x0a, 0x12, 0x70, 0x73, 0x70, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c,
	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x73, 0x70,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x5c, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x44, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x43, 0x4e, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x59, 0x0a,
	0x05, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x69,
	0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x4e,
	0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54,
	0x61, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x05, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3f, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x43, 0x4e, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61,
	0x73, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61,
	0x73, 0x12, 0x5a, 0x0a, 0x09, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e,
	0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x09, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x1a, 0xcf, 0x02,
	0x0a, 0x13, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x61, 0x62, 0x65,
	0x6c, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
	0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x64,
	0x73, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e,
	0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x2c, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x6f, 0x64, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x72, 0x6f, 0x6b,
	0x65, 0x6e, 0x50, 0x6f, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a,
	0x13, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x6f, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x72, 0x6f, 0x6b,
	0x65, 0x6e, 0x50, 0x6f, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
	0xae, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x62, 0x0a, 0x09,
	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x44, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
	0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x51, 0x75, 0x6f,
	0x74, 0x61, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x64,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x12, 0x28, 0x0a,
	0x0f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x22, 0x93, 0x06, 0x0a, 0x13, 0x49, 0x73, 0x74, 0x69,
	0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x5c, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
	0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a,
	0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
	0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x63, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x73, 0x74,
	0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x69, 0x73, 0x74, 0x69,
	0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72,
	0x6e, 0x61, 0x6c, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
	0x49, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x12, 0x47, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53,
	0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x04, 0xe2, 0x41, 0x01, 0x03,
	0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12,
	0x62, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
	0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x62, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x60, 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x62,
	0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f,
	0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x69, 0x6e, 0x67, 0x49, 0x6e,
	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x59, 0x0a, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x69, 0x73,
	0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x6c,
	0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
	0x12, 0x4b, 0x0a, 0x06, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x33, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x22, 0x53, 0x0a,
	0x1b, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x11, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x56, 0x0a, 0x1e, 0x4f, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x22, 0x50, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x56, 0x32, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x22, 0x4e, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x57, 0x61, 0x73, 0x6d, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x22, 0x48, 0x0a, 0x10, 0x50, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x74, 0x0a, 0x1a,
	0x48, 0x54, 0x54, 0x50, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x76, 0x73, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74,
	0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68,
	0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70,
	0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x74,
	0x74, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x50, 0x72,
	0x6f, 0x78, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x50, 0x72, 0x6f,
	0x78, 0x79, 0x22, 0x98, 0x04, 0x0a, 0x17, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b,
	0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
	0x44, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x15, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c,
	0x61, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x67, 0x61, 0x74, 0x65, 0x77,
	0x61, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x0e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
	0x28, 0x0a, 0x0f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x64,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x6a,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
	0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x63,
	0x61, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x61, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x65,
	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a,
	0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d,
	0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75,
	0x6d, 0x73, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x22, 0x5b, 0x0a,
	0x0f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x28, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63,
	0x61, 0x72, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2a, 0x3d, 0x0a, 0x08, 0x4d, 0x6f,
	0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
	0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0d, 0x50, 0x72, 0x6f,
	0x78, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x72,
	0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x55, 0x4e, 0x53, 0x50,
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41,
	0x43, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12,
	0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52,
	0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
	0x05, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x06, 0x12,
	0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x07, 0x2a, 0x5a, 0x0a, 0x15, 0x50, 0x69, 0x6c, 0x6f,
	0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x69, 0x6c, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x55, 0x42, 0x45,
	0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x53, 0x54, 0x49,
	0x4f, 0x44, 0x10, 0x02, 0x2a, 0x58, 0x0a, 0x0d, 0x4a, 0x57, 0x54, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x4a, 0x57, 0x54, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x5f, 0x50, 0x41,
	0x52, 0x54, 0x59, 0x5f, 0x4a, 0x57, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x49, 0x52,
	0x53, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4a, 0x57, 0x54, 0x10, 0x02, 0x42, 0x37,
	0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6e,
	0x7a, 0x61, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2d, 0x6f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_api_v1alpha1_istiocontrolplane_proto_rawDescOnce sync.Once
	file_api_v1alpha1_istiocontrolplane_proto_rawDescData = file_api_v1alpha1_istiocontrolplane_proto_rawDesc
)

func file_api_v1alpha1_istiocontrolplane_proto_rawDescGZIP() []byte {
	file_api_v1alpha1_istiocontrolplane_proto_rawDescOnce.Do(func() {
		file_api_v1alpha1_istiocontrolplane_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_v1alpha1_istiocontrolplane_proto_rawDescData)
	})
	return file_api_v1alpha1_istiocontrolplane_proto_rawDescData
}

var file_api_v1alpha1_istiocontrolplane_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_api_v1alpha1_istiocontrolplane_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
var file_api_v1alpha1_istiocontrolplane_proto_goTypes = []interface{}{
	(ModeType)(0),                                                    // 0: istio_operator.v2.api.v1alpha1.ModeType
	(ProxyLogLevel)(0),                                               // 1: istio_operator.v2.api.v1alpha1.ProxyLogLevel
	(PilotCertProviderType)(0),                                       // 2: istio_operator.v2.api.v1alpha1.PilotCertProviderType
	(JWTPolicyType)(0),                                               // 3: istio_operator.v2.api.v1alpha1.JWTPolicyType
	(*IstioControlPlaneSpec)(nil),                                    // 4: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec
	(*SidecarInjectorConfiguration)(nil),                             // 5: istio_operator.v2.api.v1alpha1.SidecarInjectorConfiguration
	(*SidecarInjectionTemplates)(nil),                                // 6: istio_operator.v2.api.v1alpha1.SidecarInjectionTemplates
	(*CustomSidecarInjectionTemplates)(nil),                          // 7: istio_operator.v2.api.v1alpha1.CustomSidecarInjectionTemplates
	(*MeshExpansionConfiguration)(nil),                               // 8: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration
	(*LoggingConfiguration)(nil),                                     // 9: istio_operator.v2.api.v1alpha1.LoggingConfiguration
	(*SDSConfiguration)(nil),                                         // 10: istio_operator.v2.api.v1alpha1.SDSConfiguration
	(*ProxyConfiguration)(nil),                                       // 11: istio_operator.v2.api.v1alpha1.ProxyConfiguration
	(*ProxyInitConfiguration)(nil),                                   // 12: istio_operator.v2.api.v1alpha1.ProxyInitConfiguration
	(*CNIConfiguration)(nil),                                         // 13: istio_operator.v2.api.v1alpha1.CNIConfiguration
	(*IstiodConfiguration)(nil),                                      // 14: istio_operator.v2.api.v1alpha1.IstiodConfiguration
	(*ExternalIstiodConfiguration)(nil),                              // 15: istio_operator.v2.api.v1alpha1.ExternalIstiodConfiguration
	(*SPIFFEConfiguration)(nil),                                      // 16: istio_operator.v2.api.v1alpha1.SPIFFEConfiguration
	(*OperatorEndpointsConfiguration)(nil),                           // 17: istio_operator.v2.api.v1alpha1.OperatorEndpointsConfiguration
	(*TelemetryV2Configuration)(nil),                                 // 18: istio_operator.v2.api.v1alpha1.TelemetryV2Configuration
	(*ProxyWasmConfiguration)(nil),                                   // 19: istio_operator.v2.api.v1alpha1.ProxyWasmConfiguration
	(*PDBConfiguration)(nil),                                         // 20: istio_operator.v2.api.v1alpha1.PDBConfiguration
	(*HTTPProxyEnvsConfiguration)(nil),                               // 21: istio_operator.v2.api.v1alpha1.HTTPProxyEnvsConfiguration
	(*IstioControlPlaneStatus)(nil),                                  // 22: istio_operator.v2.api.v1alpha1.IstioControlPlaneStatus
	(*StatusChecksums)(nil),                                          // 23: istio_operator.v2.api.v1alpha1.StatusChecksums
	(*MeshExpansionConfiguration_Istiod)(nil),                        // 24: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Istiod
	(*MeshExpansionConfiguration_Webhook)(nil),                       // 25: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Webhook
	(*MeshExpansionConfiguration_ClusterServices)(nil),               // 26: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.ClusterServices
	(*MeshExpansionConfiguration_IstioMeshGatewayConfiguration)(nil), // 27: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration
	(*CNIConfiguration_RepairConfiguration)(nil),                     // 28: istio_operator.v2.api.v1alpha1.CNIConfiguration.RepairConfiguration
	(*CNIConfiguration_TaintConfiguration)(nil),                      // 29: istio_operator.v2.api.v1alpha1.CNIConfiguration.TaintConfiguration
	(*CNIConfiguration_ResourceQuotas)(nil),                          // 30: istio_operator.v2.api.v1alpha1.CNIConfiguration.ResourceQuotas
	(*wrappers.BoolValue)(nil),                                       // 31: google.protobuf.BoolValue
	(*v1alpha1.MeshConfig)(nil),                                      // 32: istio.mesh.v1alpha1.MeshConfig
	(*K8SResourceOverlayPatch)(nil),                                  // 33: istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch
	(*ContainerImageConfiguration)(nil),                              // 34: istio_operator.v2.api.v1alpha1.ContainerImageConfiguration
	(*v1alpha1.Tracing)(nil),                                         // 35: istio.mesh.v1alpha1.Tracing
	(*BaseKubernetesResourceConfig)(nil),                             // 36: istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig
	(*Service)(nil),                                                  // 37: istio_operator.v2.api.v1alpha1.Service
	(*v1.Lifecycle)(nil),                                             // 38: k8s.io.api.core.v1.Lifecycle
	(*ResourceRequirements)(nil),                                     // 39: istio_operator.v2.api.v1alpha1.ResourceRequirements
	(*wrappers.FloatValue)(nil),                                      // 40: google.protobuf.FloatValue
	(ConfigState)(0),                                                 // 41: istio_operator.v2.api.v1alpha1.ConfigState
	(*K8SObjectMeta)(nil),                                            // 42: istio_operator.v2.api.v1alpha1.K8sObjectMeta
	(*UnprotectedService)(nil),                                       // 43: istio_operator.v2.api.v1alpha1.UnprotectedService
	(*BaseKubernetesContainerConfiguration)(nil),                     // 44: istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration
}
var file_api_v1alpha1_istiocontrolplane_proto_depIdxs = []int32{
	0,  // 0: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.mode:type_name -> istio_operator.v2.api.v1alpha1.ModeType
	9,  // 1: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.logging:type_name -> istio_operator.v2.api.v1alpha1.LoggingConfiguration
	31, // 2: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.mountMtlsCerts:type_name -> google.protobuf.BoolValue
	14, // 3: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.istiod:type_name -> istio_operator.v2.api.v1alpha1.IstiodConfiguration
	11, // 4: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.proxy:type_name -> istio_operator.v2.api.v1alpha1.ProxyConfiguration
	12, // 5: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.proxyInit:type_name -> istio_operator.v2.api.v1alpha1.ProxyInitConfiguration
	18, // 6: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.telemetryV2:type_name -> istio_operator.v2.api.v1alpha1.TelemetryV2Configuration
	10, // 7: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.sds:type_name -> istio_operator.v2.api.v1alpha1.SDSConfiguration
	19, // 8: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.proxyWasm:type_name -> istio_operator.v2.api.v1alpha1.ProxyWasmConfiguration
	31, // 9: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.watchOneNamespace:type_name -> google.protobuf.BoolValue
	3,  // 10: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.jwtPolicy:type_name -> istio_operator.v2.api.v1alpha1.JWTPolicyType
	21, // 11: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.httpProxyEnvs:type_name -> istio_operator.v2.api.v1alpha1.HTTPProxyEnvsConfiguration
	32, // 12: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.meshConfig:type_name -> istio.mesh.v1alpha1.MeshConfig
	33, // 13: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.k8sResourceOverlays:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch
	34, // 14: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.containerImageConfiguration:type_name -> istio_operator.v2.api.v1alpha1.ContainerImageConfiguration
	8,  // 15: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.meshExpansion:type_name -> istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration
	5,  // 16: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.sidecarInjector:type_name -> istio_operator.v2.api.v1alpha1.SidecarInjectorConfiguration
	35, // 17: istio_operator.v2.api.v1alpha1.IstioControlPlaneSpec.tracer:type_name -> istio.mesh.v1alpha1.Tracing
	36, // 18: istio_operator.v2.api.v1alpha1.SidecarInjectorConfiguration.deployment:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig
	37, // 19: istio_operator.v2.api.v1alpha1.SidecarInjectorConfiguration.service:type_name -> istio_operator.v2.api.v1alpha1.Service
	6,  // 20: istio_operator.v2.api.v1alpha1.SidecarInjectorConfiguration.templates:type_name -> istio_operator.v2.api.v1alpha1.SidecarInjectionTemplates
	7,  // 21: istio_operator.v2.api.v1alpha1.SidecarInjectionTemplates.customTemplates:type_name -> istio_operator.v2.api.v1alpha1.CustomSidecarInjectionTemplates
	31, // 22: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.enabled:type_name -> google.protobuf.BoolValue
	27, // 23: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.gateway:type_name -> istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration
	24, // 24: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.istiod:type_name -> istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Istiod
	25, // 25: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.webhook:type_name -> istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Webhook
	26, // 26: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.clusterServices:type_name -> istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.ClusterServices
	31, // 27: istio_operator.v2.api.v1alpha1.ProxyConfiguration.privileged:type_name -> google.protobuf.BoolValue
	31, // 28: istio_operator.v2.api.v1alpha1.ProxyConfiguration.enableCoreDump:type_name -> google.protobuf.BoolValue
	1,  // 29: istio_operator.v2.api.v1alpha1.ProxyConfiguration.logLevel:type_name -> istio_operator.v2.api.v1alpha1.ProxyLogLevel
	31, // 30: istio_operator.v2.api.v1alpha1.ProxyConfiguration.holdApplicationUntilProxyStarts:type_name -> google.protobuf.BoolValue
	38, // 31: istio_operator.v2.api.v1alpha1.ProxyConfiguration.lifecycle:type_name -> k8s.io.api.core.v1.Lifecycle
	39, // 32: istio_operator.v2.api.v1alpha1.ProxyConfiguration.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements
	39, // 33: istio_operator.v2.api.v1alpha1.ProxyInitConfiguration.resources:type_name -> istio_operator.v2.api.v1alpha1.ResourceRequirements
	13, // 34: istio_operator.v2.api.v1alpha1.ProxyInitConfiguration.cni:type_name -> istio_operator.v2.api.v1alpha1.CNIConfiguration
	31, // 35: istio_operator.v2.api.v1alpha1.CNIConfiguration.enabled:type_name -> google.protobuf.BoolValue
	31, // 36: istio_operator.v2.api.v1alpha1.CNIConfiguration.chained:type_name -> google.protobuf.BoolValue
	28, // 37: istio_operator.v2.api.v1alpha1.CNIConfiguration.repair:type_name -> istio_operator.v2.api.v1alpha1.CNIConfiguration.RepairConfiguration
	29, // 38: istio_operator.v2.api.v1alpha1.CNIConfiguration.taint:type_name -> istio_operator.v2.api.v1alpha1.CNIConfiguration.TaintConfiguration
	30, // 39: istio_operator.v2.api.v1alpha1.CNIConfiguration.resourceQuotas:type_name -> istio_operator.v2.api.v1alpha1.CNIConfiguration.ResourceQuotas
	36, // 40: istio_operator.v2.api.v1alpha1.CNIConfiguration.daemonset:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig
	36, // 41: istio_operator.v2.api.v1alpha1.IstiodConfiguration.deployment:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig
	31, // 42: istio_operator.v2.api.v1alpha1.IstiodConfiguration.enableAnalysis:type_name -> google.protobuf.BoolValue
	31, // 43: istio_operator.v2.api.v1alpha1.IstiodConfiguration.enableStatus:type_name -> google.protobuf.BoolValue
	15, // 44: istio_operator.v2.api.v1alpha1.IstiodConfiguration.externalIstiod:type_name -> istio_operator.v2.api.v1alpha1.ExternalIstiodConfiguration
	40, // 45: istio_operator.v2.api.v1alpha1.IstiodConfiguration.traceSampling:type_name -> google.protobuf.FloatValue
	31, // 46: istio_operator.v2.api.v1alpha1.IstiodConfiguration.enableProtocolSniffingOutbound:type_name -> google.protobuf.BoolValue
	31, // 47: istio_operator.v2.api.v1alpha1.IstiodConfiguration.enableProtocolSniffingInbound:type_name -> google.protobuf.BoolValue
	2,  // 48: istio_operator.v2.api.v1alpha1.IstiodConfiguration.certProvider:type_name -> istio_operator.v2.api.v1alpha1.PilotCertProviderType
	16, // 49: istio_operator.v2.api.v1alpha1.IstiodConfiguration.spiffe:type_name -> istio_operator.v2.api.v1alpha1.SPIFFEConfiguration
	31, // 50: istio_operator.v2.api.v1alpha1.ExternalIstiodConfiguration.enabled:type_name -> google.protobuf.BoolValue
	17, // 51: istio_operator.v2.api.v1alpha1.SPIFFEConfiguration.operatorEndpoints:type_name -> istio_operator.v2.api.v1alpha1.OperatorEndpointsConfiguration
	31, // 52: istio_operator.v2.api.v1alpha1.OperatorEndpointsConfiguration.enabled:type_name -> google.protobuf.BoolValue
	31, // 53: istio_operator.v2.api.v1alpha1.TelemetryV2Configuration.enabled:type_name -> google.protobuf.BoolValue
	31, // 54: istio_operator.v2.api.v1alpha1.ProxyWasmConfiguration.enabled:type_name -> google.protobuf.BoolValue
	31, // 55: istio_operator.v2.api.v1alpha1.PDBConfiguration.enabled:type_name -> google.protobuf.BoolValue
	41, // 56: istio_operator.v2.api.v1alpha1.IstioControlPlaneStatus.status:type_name -> istio_operator.v2.api.v1alpha1.ConfigState
	32, // 57: istio_operator.v2.api.v1alpha1.IstioControlPlaneStatus.meshConfig:type_name -> istio.mesh.v1alpha1.MeshConfig
	23, // 58: istio_operator.v2.api.v1alpha1.IstioControlPlaneStatus.checksums:type_name -> istio_operator.v2.api.v1alpha1.StatusChecksums
	31, // 59: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Istiod.expose:type_name -> google.protobuf.BoolValue
	31, // 60: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.Webhook.expose:type_name -> google.protobuf.BoolValue
	31, // 61: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.ClusterServices.expose:type_name -> google.protobuf.BoolValue
	42, // 62: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration.metadata:type_name -> istio_operator.v2.api.v1alpha1.K8sObjectMeta
	36, // 63: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration.deployment:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesResourceConfig
	43, // 64: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration.service:type_name -> istio_operator.v2.api.v1alpha1.UnprotectedService
	31, // 65: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration.runAsRoot:type_name -> google.protobuf.BoolValue
	33, // 66: istio_operator.v2.api.v1alpha1.MeshExpansionConfiguration.IstioMeshGatewayConfiguration.k8sResourceOverlays:type_name -> istio_operator.v2.api.v1alpha1.K8sResourceOverlayPatch
	31, // 67: istio_operator.v2.api.v1alpha1.CNIConfiguration.RepairConfiguration.enabled:type_name -> google.protobuf.BoolValue
	31, // 68: istio_operator.v2.api.v1alpha1.CNIConfiguration.RepairConfiguration.labelPods:type_name -> google.protobuf.BoolValue
	31, // 69: istio_operator.v2.api.v1alpha1.CNIConfiguration.RepairConfiguration.deletePods:type_name -> google.protobuf.BoolValue
	31, // 70: istio_operator.v2.api.v1alpha1.CNIConfiguration.TaintConfiguration.enabled:type_name -> google.protobuf.BoolValue
	44, // 71: istio_operator.v2.api.v1alpha1.CNIConfiguration.TaintConfiguration.container:type_name -> istio_operator.v2.api.v1alpha1.BaseKubernetesContainerConfiguration
	31, // 72: istio_operator.v2.api.v1alpha1.CNIConfiguration.ResourceQuotas.enabled:type_name -> google.protobuf.BoolValue
	73, // [73:73] is the sub-list for method output_type
	73, // [73:73] is the sub-list for method input_type
	73, // [73:73] is the sub-list for extension type_name
	73, // [73:73] is the sub-list for extension extendee
	0,  // [0:73] is the sub-list for field type_name
}

func init() { file_api_v1alpha1_istiocontrolplane_proto_init() }
func file_api_v1alpha1_istiocontrolplane_proto_init() {
	if File_api_v1alpha1_istiocontrolplane_proto != nil {
		return
	}
	file_api_v1alpha1_common_proto_init()
	file_api_v1alpha1_istiomeshgateway_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IstioControlPlaneSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SidecarInjectorConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SidecarInjectionTemplates); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CustomSidecarInjectionTemplates); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MeshExpansionConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoggingConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SDSConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProxyConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProxyInitConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CNIConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IstiodConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExternalIstiodConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SPIFFEConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OperatorEndpointsConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TelemetryV2Configuration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProxyWasmConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PDBConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HTTPProxyEnvsConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IstioControlPlaneStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatusChecksums); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MeshExpansionConfiguration_Istiod); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MeshExpansionConfiguration_Webhook); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MeshExpansionConfiguration_ClusterServices); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MeshExpansionConfiguration_IstioMeshGatewayConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CNIConfiguration_RepairConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CNIConfiguration_TaintConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_v1alpha1_istiocontrolplane_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CNIConfiguration_ResourceQuotas); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_api_v1alpha1_istiocontrolplane_proto_msgTypes[7].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_api_v1alpha1_istiocontrolplane_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   27,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_api_v1alpha1_istiocontrolplane_proto_goTypes,
		DependencyIndexes: file_api_v1alpha1_istiocontrolplane_proto_depIdxs,
		EnumInfos:         file_api_v1alpha1_istiocontrolplane_proto_enumTypes,
		MessageInfos:      file_api_v1alpha1_istiocontrolplane_proto_msgTypes,
	}.Build()
	File_api_v1alpha1_istiocontrolplane_proto = out.File
	file_api_v1alpha1_istiocontrolplane_proto_rawDesc = nil
	file_api_v1alpha1_istiocontrolplane_proto_goTypes = nil
	file_api_v1alpha1_istiocontrolplane_proto_depIdxs = nil
}
