mesh/v1alpha1/config.pb.go (4,257 lines of code) (raw):
// Copyright 2017 Istio Authors
//
// 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.35.1
// protoc (unknown)
// source: mesh/v1alpha1/config.proto
// $title: Global Mesh Options
// $description: Configuration affecting the service mesh as a whole.
// $location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
// $weight: 20
// $mode: package
// Configuration affecting the service mesh as a whole.
package v1alpha1
import (
duration "github.com/golang/protobuf/ptypes/duration"
_struct "github.com/golang/protobuf/ptypes/struct"
wrappers "github.com/golang/protobuf/ptypes/wrappers"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
v1alpha3 "istio.io/api/networking/v1alpha3"
v1alpha1 "istio.io/api/telemetry/v1alpha1"
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)
)
// Resource describes the source of configuration
type Resource int32
const (
// Set to only receive service entries that are generated by the platform.
// These auto generated service entries are combination of services and endpoints
// that are generated by a specific platform e.g. k8
Resource_SERVICE_REGISTRY Resource = 0
)
// Enum value maps for Resource.
var (
Resource_name = map[int32]string{
0: "SERVICE_REGISTRY",
}
Resource_value = map[string]int32{
"SERVICE_REGISTRY": 0,
}
)
func (x Resource) Enum() *Resource {
p := new(Resource)
*p = x
return p
}
func (x Resource) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Resource) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[0].Descriptor()
}
func (Resource) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[0]
}
func (x Resource) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Resource.Descriptor instead.
func (Resource) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0}
}
type MeshConfig_IngressControllerMode int32
const (
// Unspecified Istio ingress controller.
MeshConfig_UNSPECIFIED MeshConfig_IngressControllerMode = 0
// Disables Istio ingress controller.
MeshConfig_OFF MeshConfig_IngressControllerMode = 1
// Istio ingress controller will act on ingress resources that do not
// contain any annotation or whose annotations match the value
// specified in the ingressClass parameter described earlier. Use this
// mode if Istio ingress controller will be the default ingress
// controller for the entire Kubernetes cluster.
MeshConfig_DEFAULT MeshConfig_IngressControllerMode = 2
// Istio ingress controller will only act on ingress resources whose
// annotations match the value specified in the ingressClass parameter
// described earlier. Use this mode if Istio ingress controller will be
// a secondary ingress controller (e.g., in addition to a
// cloud-provided ingress controller).
MeshConfig_STRICT MeshConfig_IngressControllerMode = 3
)
// Enum value maps for MeshConfig_IngressControllerMode.
var (
MeshConfig_IngressControllerMode_name = map[int32]string{
0: "UNSPECIFIED",
1: "OFF",
2: "DEFAULT",
3: "STRICT",
}
MeshConfig_IngressControllerMode_value = map[string]int32{
"UNSPECIFIED": 0,
"OFF": 1,
"DEFAULT": 2,
"STRICT": 3,
}
)
func (x MeshConfig_IngressControllerMode) Enum() *MeshConfig_IngressControllerMode {
p := new(MeshConfig_IngressControllerMode)
*p = x
return p
}
func (x MeshConfig_IngressControllerMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_IngressControllerMode) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[1].Descriptor()
}
func (MeshConfig_IngressControllerMode) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[1]
}
func (x MeshConfig_IngressControllerMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_IngressControllerMode.Descriptor instead.
func (MeshConfig_IngressControllerMode) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 0}
}
// $hide_from_docs
type MeshConfig_AuthPolicy int32
const (
MeshConfig_NONE MeshConfig_AuthPolicy = 0
MeshConfig_MUTUAL_TLS MeshConfig_AuthPolicy = 1
)
// Enum value maps for MeshConfig_AuthPolicy.
var (
MeshConfig_AuthPolicy_name = map[int32]string{
0: "NONE",
1: "MUTUAL_TLS",
}
MeshConfig_AuthPolicy_value = map[string]int32{
"NONE": 0,
"MUTUAL_TLS": 1,
}
)
func (x MeshConfig_AuthPolicy) Enum() *MeshConfig_AuthPolicy {
p := new(MeshConfig_AuthPolicy)
*p = x
return p
}
func (x MeshConfig_AuthPolicy) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_AuthPolicy) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[2].Descriptor()
}
func (MeshConfig_AuthPolicy) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[2]
}
func (x MeshConfig_AuthPolicy) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_AuthPolicy.Descriptor instead.
func (MeshConfig_AuthPolicy) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 1}
}
type MeshConfig_AccessLogEncoding int32
const (
// text encoding for the proxy access log
MeshConfig_TEXT MeshConfig_AccessLogEncoding = 0
// json encoding for the proxy access log
MeshConfig_JSON MeshConfig_AccessLogEncoding = 1
)
// Enum value maps for MeshConfig_AccessLogEncoding.
var (
MeshConfig_AccessLogEncoding_name = map[int32]string{
0: "TEXT",
1: "JSON",
}
MeshConfig_AccessLogEncoding_value = map[string]int32{
"TEXT": 0,
"JSON": 1,
}
)
func (x MeshConfig_AccessLogEncoding) Enum() *MeshConfig_AccessLogEncoding {
p := new(MeshConfig_AccessLogEncoding)
*p = x
return p
}
func (x MeshConfig_AccessLogEncoding) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_AccessLogEncoding) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[3].Descriptor()
}
func (MeshConfig_AccessLogEncoding) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[3]
}
func (x MeshConfig_AccessLogEncoding) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_AccessLogEncoding.Descriptor instead.
func (MeshConfig_AccessLogEncoding) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 2}
}
// Default Policy for upgrading http1.1 connections to http2.
type MeshConfig_H2UpgradePolicy int32
const (
// Do not upgrade connections to http2.
MeshConfig_DO_NOT_UPGRADE MeshConfig_H2UpgradePolicy = 0
// Upgrade the connections to http2.
MeshConfig_UPGRADE MeshConfig_H2UpgradePolicy = 1
)
// Enum value maps for MeshConfig_H2UpgradePolicy.
var (
MeshConfig_H2UpgradePolicy_name = map[int32]string{
0: "DO_NOT_UPGRADE",
1: "UPGRADE",
}
MeshConfig_H2UpgradePolicy_value = map[string]int32{
"DO_NOT_UPGRADE": 0,
"UPGRADE": 1,
}
)
func (x MeshConfig_H2UpgradePolicy) Enum() *MeshConfig_H2UpgradePolicy {
p := new(MeshConfig_H2UpgradePolicy)
*p = x
return p
}
func (x MeshConfig_H2UpgradePolicy) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_H2UpgradePolicy) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[4].Descriptor()
}
func (MeshConfig_H2UpgradePolicy) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[4]
}
func (x MeshConfig_H2UpgradePolicy) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_H2UpgradePolicy.Descriptor instead.
func (MeshConfig_H2UpgradePolicy) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 3}
}
type MeshConfig_OutboundTrafficPolicy_Mode int32
const (
// In `REGISTRY_ONLY` mode, unknown outbound traffic will be dropped.
// Traffic destinations must be explicitly declared into the service registry through `ServiceEntry` configurations.
//
// Note: Istio [does not offer an outbound traffic security policy](https://istio.io/latest/docs/ops/best-practices/security/#understand-traffic-capture-limitations).
// This option does not act as one, or as any form of an outbound firewall.
// Instead, this option exists primarily to offer users a way to detect missing `ServiceEntry` configurations by explicitly failing.
MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY MeshConfig_OutboundTrafficPolicy_Mode = 0
// In `ALLOW_ANY` mode, any traffic to unknown destinations will be allowed.
// Unknown destination traffic will have limited functionality, however, such as reduced observability.
// This mode allows users that do not have all possible egress destinations registered through `ServiceEntry` configurations to still connect
// to arbitrary destinations.
MeshConfig_OutboundTrafficPolicy_ALLOW_ANY MeshConfig_OutboundTrafficPolicy_Mode = 1
)
// Enum value maps for MeshConfig_OutboundTrafficPolicy_Mode.
var (
MeshConfig_OutboundTrafficPolicy_Mode_name = map[int32]string{
0: "REGISTRY_ONLY",
1: "ALLOW_ANY",
}
MeshConfig_OutboundTrafficPolicy_Mode_value = map[string]int32{
"REGISTRY_ONLY": 0,
"ALLOW_ANY": 1,
}
)
func (x MeshConfig_OutboundTrafficPolicy_Mode) Enum() *MeshConfig_OutboundTrafficPolicy_Mode {
p := new(MeshConfig_OutboundTrafficPolicy_Mode)
*p = x
return p
}
func (x MeshConfig_OutboundTrafficPolicy_Mode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_OutboundTrafficPolicy_Mode) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[5].Descriptor()
}
func (MeshConfig_OutboundTrafficPolicy_Mode) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[5]
}
func (x MeshConfig_OutboundTrafficPolicy_Mode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_OutboundTrafficPolicy_Mode.Descriptor instead.
func (MeshConfig_OutboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 0, 0}
}
type MeshConfig_InboundTrafficPolicy_Mode int32
const (
// inbound traffic will be passed through to the destination listening
// on Pod IP. This matches the behavior without Istio enabled at all
// allowing proxy to be transparent.
MeshConfig_InboundTrafficPolicy_PASSTHROUGH MeshConfig_InboundTrafficPolicy_Mode = 0
// inbound traffic will be sent to the destinations listening on localhost.
MeshConfig_InboundTrafficPolicy_LOCALHOST MeshConfig_InboundTrafficPolicy_Mode = 1
)
// Enum value maps for MeshConfig_InboundTrafficPolicy_Mode.
var (
MeshConfig_InboundTrafficPolicy_Mode_name = map[int32]string{
0: "PASSTHROUGH",
1: "LOCALHOST",
}
MeshConfig_InboundTrafficPolicy_Mode_value = map[string]int32{
"PASSTHROUGH": 0,
"LOCALHOST": 1,
}
)
func (x MeshConfig_InboundTrafficPolicy_Mode) Enum() *MeshConfig_InboundTrafficPolicy_Mode {
p := new(MeshConfig_InboundTrafficPolicy_Mode)
*p = x
return p
}
func (x MeshConfig_InboundTrafficPolicy_Mode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_InboundTrafficPolicy_Mode) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[6].Descriptor()
}
func (MeshConfig_InboundTrafficPolicy_Mode) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[6]
}
func (x MeshConfig_InboundTrafficPolicy_Mode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_InboundTrafficPolicy_Mode.Descriptor instead.
func (MeshConfig_InboundTrafficPolicy_Mode) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 1, 0}
}
// TraceContext selects the context propagation headers used for
// distributed tracing.
type MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext int32
const (
// $hide_from_docs
// Unspecified context. Should not be used for now, but added to reserve
// the 0 enum value if TraceContext is used outside of a repeated field.
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_UNSPECIFIED MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 0
// Use W3C Trace Context propagation using the `traceparent` HTTP header.
// See the
// [Trace Context documentation](https://www.w3.org/TR/trace-context/) for details.
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_W3C_TRACE_CONTEXT MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 1
// Use gRPC binary context propagation using the `grpc-trace-bin` http header.
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_GRPC_BIN MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 2
// Use Cloud Trace context propagation using the
// `X-Cloud-Trace-Context` http header.
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_CLOUD_TRACE_CONTEXT MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 3
// Use multi-header B3 context propagation using the `X-B3-TraceId`,
// `X-B3-SpanId`, and `X-B3-Sampled` HTTP headers. See
// [B3 header propagation README](https://github.com/openzipkin/b3-propagation)
// for details.
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_B3 MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext = 4
)
// Enum value maps for MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext.
var (
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_name = map[int32]string{
0: "UNSPECIFIED",
1: "W3C_TRACE_CONTEXT",
2: "GRPC_BIN",
3: "CLOUD_TRACE_CONTEXT",
4: "B3",
}
MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext_value = map[string]int32{
"UNSPECIFIED": 0,
"W3C_TRACE_CONTEXT": 1,
"GRPC_BIN": 2,
"CLOUD_TRACE_CONTEXT": 3,
"B3": 4,
}
)
func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Enum() *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext {
p := new(MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext)
*p = x
return p
}
func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[7].Descriptor()
}
func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[7]
}
func (x MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext.Descriptor instead.
func (MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 8, 0}
}
type MeshConfig_ProxyPathNormalization_NormalizationType int32
const (
// Apply default normalizations. Currently, this is BASE.
MeshConfig_ProxyPathNormalization_DEFAULT MeshConfig_ProxyPathNormalization_NormalizationType = 0
// No normalization, paths are used as is.
MeshConfig_ProxyPathNormalization_NONE MeshConfig_ProxyPathNormalization_NormalizationType = 1
// Normalize according to [RFC 3986](https://tools.ietf.org/html/rfc3986).
// For Envoy proxies, this is the [`normalize_path`](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.html) option.
// For example, `/a/../b` normalizes to `/b`.
MeshConfig_ProxyPathNormalization_BASE MeshConfig_ProxyPathNormalization_NormalizationType = 2
// In addition to the `BASE` normalization, consecutive slashes are also merged.
// For example, `/a//b` normalizes to `a/b`.
MeshConfig_ProxyPathNormalization_MERGE_SLASHES MeshConfig_ProxyPathNormalization_NormalizationType = 3
// In addition to normalization in `MERGE_SLASHES`, slash characters are UTF-8 decoded (case insensitive) prior to merging.
// This means `%2F`, `%2f`, `%5C`, and `%5c` sequences in the request path will be rewritten to `/` or `\`.
// For example, `/a%2f/b` normalizes to `a/b`.
MeshConfig_ProxyPathNormalization_DECODE_AND_MERGE_SLASHES MeshConfig_ProxyPathNormalization_NormalizationType = 4
)
// Enum value maps for MeshConfig_ProxyPathNormalization_NormalizationType.
var (
MeshConfig_ProxyPathNormalization_NormalizationType_name = map[int32]string{
0: "DEFAULT",
1: "NONE",
2: "BASE",
3: "MERGE_SLASHES",
4: "DECODE_AND_MERGE_SLASHES",
}
MeshConfig_ProxyPathNormalization_NormalizationType_value = map[string]int32{
"DEFAULT": 0,
"NONE": 1,
"BASE": 2,
"MERGE_SLASHES": 3,
"DECODE_AND_MERGE_SLASHES": 4,
}
)
func (x MeshConfig_ProxyPathNormalization_NormalizationType) Enum() *MeshConfig_ProxyPathNormalization_NormalizationType {
p := new(MeshConfig_ProxyPathNormalization_NormalizationType)
*p = x
return p
}
func (x MeshConfig_ProxyPathNormalization_NormalizationType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_ProxyPathNormalization_NormalizationType) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[8].Descriptor()
}
func (MeshConfig_ProxyPathNormalization_NormalizationType) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[8]
}
func (x MeshConfig_ProxyPathNormalization_NormalizationType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_ProxyPathNormalization_NormalizationType.Descriptor instead.
func (MeshConfig_ProxyPathNormalization_NormalizationType) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 7, 0}
}
// TLS protocol versions.
type MeshConfig_TLSConfig_TLSProtocol int32
const (
// Automatically choose the optimal TLS version.
MeshConfig_TLSConfig_TLS_AUTO MeshConfig_TLSConfig_TLSProtocol = 0
// TLS version 1.2
MeshConfig_TLSConfig_TLSV1_2 MeshConfig_TLSConfig_TLSProtocol = 1
// TLS version 1.3
MeshConfig_TLSConfig_TLSV1_3 MeshConfig_TLSConfig_TLSProtocol = 2
)
// Enum value maps for MeshConfig_TLSConfig_TLSProtocol.
var (
MeshConfig_TLSConfig_TLSProtocol_name = map[int32]string{
0: "TLS_AUTO",
1: "TLSV1_2",
2: "TLSV1_3",
}
MeshConfig_TLSConfig_TLSProtocol_value = map[string]int32{
"TLS_AUTO": 0,
"TLSV1_2": 1,
"TLSV1_3": 2,
}
)
func (x MeshConfig_TLSConfig_TLSProtocol) Enum() *MeshConfig_TLSConfig_TLSProtocol {
p := new(MeshConfig_TLSConfig_TLSProtocol)
*p = x
return p
}
func (x MeshConfig_TLSConfig_TLSProtocol) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MeshConfig_TLSConfig_TLSProtocol) Descriptor() protoreflect.EnumDescriptor {
return file_mesh_v1alpha1_config_proto_enumTypes[9].Descriptor()
}
func (MeshConfig_TLSConfig_TLSProtocol) Type() protoreflect.EnumType {
return &file_mesh_v1alpha1_config_proto_enumTypes[9]
}
func (x MeshConfig_TLSConfig_TLSProtocol) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MeshConfig_TLSConfig_TLSProtocol.Descriptor instead.
func (MeshConfig_TLSConfig_TLSProtocol) EnumDescriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 8, 0}
}
// MeshConfig defines mesh-wide settings for the Istio service mesh.
type MeshConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Port on which Envoy should listen for all outbound traffic to other services.
// Default port is 15001.
ProxyListenPort int32 `protobuf:"varint,4,opt,name=proxy_listen_port,json=proxyListenPort,proto3" json:"proxy_listen_port,omitempty"`
// Port on which Envoy should listen for all inbound traffic to the pod/vm will be captured to.
// Default port is 15006.
ProxyInboundListenPort int32 `protobuf:"varint,65,opt,name=proxy_inbound_listen_port,json=proxyInboundListenPort,proto3" json:"proxy_inbound_listen_port,omitempty"`
// Port on which Envoy should listen for HTTP PROXY requests if set.
ProxyHttpPort int32 `protobuf:"varint,5,opt,name=proxy_http_port,json=proxyHttpPort,proto3" json:"proxy_http_port,omitempty"`
// Connection timeout used by Envoy. (MUST BE >=1ms)
// Default timeout is 10s.
ConnectTimeout *duration.Duration `protobuf:"bytes,6,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"`
// $hide_from_docs
// Automatic protocol detection uses a set of heuristics to
// determine whether the connection is using TLS or not (on the
// server side), as well as the application protocol being used
// (e.g., http vs tcp). These heuristics rely on the client sending
// the first bits of data. For server first protocols like MySQL,
// MongoDB, etc. Envoy will timeout on the protocol detection after
// the specified period, defaulting to non mTLS plain TCP
// traffic. Set this field to tweak the period that Envoy will wait
// for the client to send the first bits of data. (MUST BE >=1ms or
// 0s to disable). Default detection timeout is 0s (no timeout).
//
// Setting a timeout is not recommended nor safe. Even high timeouts (>5s) will be hit
// occasionally, and when they occur the result is typically broken traffic that may not
// recover on its own. Exceptionally high values might solve this, but injecting 60s delays
// onto new connections is generally not tenable anyways.
ProtocolDetectionTimeout *duration.Duration `protobuf:"bytes,42,opt,name=protocol_detection_timeout,json=protocolDetectionTimeout,proto3" json:"protocol_detection_timeout,omitempty"`
// If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
TcpKeepalive *v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive `protobuf:"bytes,28,opt,name=tcp_keepalive,json=tcpKeepalive,proto3" json:"tcp_keepalive,omitempty"`
// Class of ingress resources to be processed by Istio ingress
// controller. This corresponds to the value of
// `kubernetes.io/ingress.class` annotation.
IngressClass string `protobuf:"bytes,7,opt,name=ingress_class,json=ingressClass,proto3" json:"ingress_class,omitempty"`
// Name of the Kubernetes service used for the istio ingress controller.
// If no ingress controller is specified, the default value `istio-ingressgateway` is used.
IngressService string `protobuf:"bytes,8,opt,name=ingress_service,json=ingressService,proto3" json:"ingress_service,omitempty"`
// Defines whether to use Istio ingress controller for annotated or all ingress resources.
// Default mode is `STRICT`.
IngressControllerMode MeshConfig_IngressControllerMode `protobuf:"varint,9,opt,name=ingress_controller_mode,json=ingressControllerMode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_IngressControllerMode" json:"ingress_controller_mode,omitempty"`
// Defines which gateway deployment to use as the Ingress controller. This field corresponds to
// the Gateway.selector field, and will be set as `istio: INGRESS_SELECTOR`.
// By default, `ingressgateway` is used, which will select the default IngressGateway as it has the
// `istio: ingressgateway` labels.
// It is recommended that this is the same value as ingressService.
IngressSelector string `protobuf:"bytes,52,opt,name=ingress_selector,json=ingressSelector,proto3" json:"ingress_selector,omitempty"`
// Flag to control generation of trace spans and request IDs.
// Requires a trace span collector defined in the proxy configuration.
EnableTracing bool `protobuf:"varint,12,opt,name=enable_tracing,json=enableTracing,proto3" json:"enable_tracing,omitempty"`
// File address for the proxy access log (e.g. /dev/stdout).
// Empty value disables access logging.
AccessLogFile string `protobuf:"bytes,13,opt,name=access_log_file,json=accessLogFile,proto3" json:"access_log_file,omitempty"`
// Format for the proxy access log
// Empty value results in proxy's default access log format
AccessLogFormat string `protobuf:"bytes,24,opt,name=access_log_format,json=accessLogFormat,proto3" json:"access_log_format,omitempty"`
// Encoding for the proxy access log (`TEXT` or `JSON`).
// Default value is `TEXT`.
AccessLogEncoding MeshConfig_AccessLogEncoding `protobuf:"varint,27,opt,name=access_log_encoding,json=accessLogEncoding,proto3,enum=istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding" json:"access_log_encoding,omitempty"`
// This flag enables Envoy's gRPC Access Log Service.
// See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/grpc/v3/als.proto)
// for details about Envoy's gRPC Access Log Service API.
// Default value is `false`.
EnableEnvoyAccessLogService bool `protobuf:"varint,40,opt,name=enable_envoy_access_log_service,json=enableEnvoyAccessLogService,proto3" json:"enable_envoy_access_log_service,omitempty"`
// This flag disables Envoy Listener logs.
// See [Listener Access Log](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto#envoy-v3-api-field-config-listener-v3-listener-access-log)
// Istio Enables Envoy's listener access logs on "NoRoute" response flag.
// Default value is `false`.
DisableEnvoyListenerLog bool `protobuf:"varint,56,opt,name=disable_envoy_listener_log,json=disableEnvoyListenerLog,proto3" json:"disable_envoy_listener_log,omitempty"`
// Default proxy config used by gateway and sidecars.
// In case of Kubernetes, the proxy config is applied once during the injection process,
// and remain constant for the duration of the pod. The rest of the mesh config can be changed
// at runtime and config gets distributed dynamically.
// On Kubernetes, this can be overridden on individual pods with the `proxy.istio.io/config` annotation.
DefaultConfig *ProxyConfig `protobuf:"bytes,14,opt,name=default_config,json=defaultConfig,proto3" json:"default_config,omitempty"`
// Set the default behavior of the sidecar for handling outbound
// traffic from the application.
//
// Can be overridden at a Sidecar level by setting the `OutboundTrafficPolicy` in the
// [Sidecar API](https://istio.io/docs/reference/config/networking/sidecar/#OutboundTrafficPolicy).
//
// Default mode is `ALLOW_ANY`, which means outbound traffic to unknown destinations will be allowed.
OutboundTrafficPolicy *MeshConfig_OutboundTrafficPolicy `protobuf:"bytes,17,opt,name=outbound_traffic_policy,json=outboundTrafficPolicy,proto3" json:"outbound_traffic_policy,omitempty"`
// Set the default behavior of the sidecar for handling inbound
// traffic to the application. If your application listens on
// localhost, you will need to set this to `LOCALHOST`.
InboundTrafficPolicy *MeshConfig_InboundTrafficPolicy `protobuf:"bytes,66,opt,name=inbound_traffic_policy,json=inboundTrafficPolicy,proto3" json:"inbound_traffic_policy,omitempty"`
// ConfigSource describes a source of configuration data for networking
// rules, and other Istio configuration artifacts. Multiple data sources
// can be configured for a single control plane.
ConfigSources []*ConfigSource `protobuf:"bytes,22,rep,name=config_sources,json=configSources,proto3" json:"config_sources,omitempty"`
// This flag is used to enable mutual `TLS` automatically for service to service communication
// within the mesh, default true.
// If set to true, and a given service does not have a corresponding `DestinationRule` configured,
// or its `DestinationRule` does not have ClientTLSSettings specified, Istio configures client side
// TLS configuration appropriately. More specifically,
// If the upstream authentication policy is in `STRICT` mode, use Istio provisioned certificate
// for mutual `TLS` to connect to upstream.
// If upstream service is in plain text mode, use plain text.
// If the upstream authentication policy is in PERMISSIVE mode, Istio configures clients to use
// mutual `TLS` when server sides are capable of accepting mutual `TLS` traffic.
// If service `DestinationRule` exists and has `ClientTLSSettings` specified, that is always used instead.
EnableAutoMtls *wrappers.BoolValue `protobuf:"bytes,43,opt,name=enable_auto_mtls,json=enableAutoMtls,proto3" json:"enable_auto_mtls,omitempty"`
// The trust domain corresponds to the trust root of a system.
// Refer to [SPIFFE-ID](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain)
TrustDomain string `protobuf:"bytes,26,opt,name=trust_domain,json=trustDomain,proto3" json:"trust_domain,omitempty"`
// The trust domain aliases represent the aliases of `trustDomain`.
// For example, if we have
// ```yaml
// trustDomain: td1
// trustDomainAliases: ["td2", "td3"]
// ```
// Any service with the identity `td1/ns/foo/sa/a-service-account`, `td2/ns/foo/sa/a-service-account`,
// or `td3/ns/foo/sa/a-service-account` will be treated the same in the Istio mesh.
TrustDomainAliases []string `protobuf:"bytes,46,rep,name=trust_domain_aliases,json=trustDomainAliases,proto3" json:"trust_domain_aliases,omitempty"`
// The extra root certificates for workload-to-workload communication.
// The plugin certificates (the 'cacerts' secret) or self-signed certificates (the 'istio-ca-secret' secret)
// are automatically added by Istiod.
// The CA certificate that signs the workload certificates is automatically added by Istio Agent.
CaCertificates []*MeshConfig_CertificateData `protobuf:"bytes,58,rep,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"`
// The default value for the ServiceEntry.exportTo field and services
// imported through container registry integrations, e.g. this applies to
// Kubernetes Service resources. The value is a list of namespace names and
// reserved namespace aliases. The allowed namespace aliases are:
// ```
// * - All Namespaces
// . - Current Namespace
// ~ - No Namespace
// ```
// If not set the system will use "*" as the default value which implies that
// services are exported to all namespaces.
//
// `All namespaces` is a reasonable default for implementations that don't
// need to restrict access or visibility of services across namespace
// boundaries. If that requirement is present it is generally good practice to
// make the default `Current namespace` so that services are only visible
// within their own namespaces by default. Operators can then expand the
// visibility of services to other namespaces as needed. Use of `No Namespace`
// is expected to be rare but can have utility for deployments where
// dependency management needs to be precise even within the scope of a single
// namespace.
//
// For further discussion see the reference documentation for `ServiceEntry`,
// `Sidecar`, and `Gateway`.
DefaultServiceExportTo []string `protobuf:"bytes,31,rep,name=default_service_export_to,json=defaultServiceExportTo,proto3" json:"default_service_export_to,omitempty"`
// The default value for the VirtualService.exportTo field. Has the same
// syntax as `defaultServiceExportTo`.
//
// If not set the system will use "*" as the default value which implies that
// virtual services are exported to all namespaces
DefaultVirtualServiceExportTo []string `protobuf:"bytes,32,rep,name=default_virtual_service_export_to,json=defaultVirtualServiceExportTo,proto3" json:"default_virtual_service_export_to,omitempty"`
// The default value for the `DestinationRule.exportTo` field. Has the same
// syntax as `defaultServiceExportTo`.
//
// If not set the system will use "*" as the default value which implies that
// destination rules are exported to all namespaces
DefaultDestinationRuleExportTo []string `protobuf:"bytes,33,rep,name=default_destination_rule_export_to,json=defaultDestinationRuleExportTo,proto3" json:"default_destination_rule_export_to,omitempty"`
// The namespace to treat as the administrative root namespace for
// Istio configuration. When processing a leaf namespace Istio will search for
// declarations in that namespace first and if none are found it will
// search in the root namespace. Any matching declaration found in the root
// namespace is processed as if it were declared in the leaf namespace.
//
// The precise semantics of this processing are documented on each resource
// type.
RootNamespace string `protobuf:"bytes,34,opt,name=root_namespace,json=rootNamespace,proto3" json:"root_namespace,omitempty"`
// Locality based load balancing distribution or failover settings.
// If unspecified, locality based load balancing will be enabled by default.
// However, this requires outlierDetection to actually take effect for a particular
// service, see https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/failover/
LocalityLbSetting *v1alpha3.LocalityLoadBalancerSetting `protobuf:"bytes,35,opt,name=locality_lb_setting,json=localityLbSetting,proto3" json:"locality_lb_setting,omitempty"`
// Configures DNS refresh rate for Envoy clusters of type `STRICT_DNS`
// Default refresh rate is `60s`.
DnsRefreshRate *duration.Duration `protobuf:"bytes,36,opt,name=dns_refresh_rate,json=dnsRefreshRate,proto3" json:"dns_refresh_rate,omitempty"`
// Specify if http1.1 connections should be upgraded to http2 by default.
// if sidecar is installed on all pods in the mesh, then this should be set to `UPGRADE`.
// If one or more services or namespaces do not have sidecar(s), then this should be set to `DO_NOT_UPGRADE`.
// It can be enabled by destination using the `destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy` override.
H2UpgradePolicy MeshConfig_H2UpgradePolicy `protobuf:"varint,41,opt,name=h2_upgrade_policy,json=h2UpgradePolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy" json:"h2_upgrade_policy,omitempty"`
// Name to be used while emitting statistics for inbound clusters. The same pattern is used while computing stat prefix for
// network filters like TCP and Redis.
// By default, Istio emits statistics with the pattern `inbound|<port>|<port-name>|<service-FQDN>`.
// For example `inbound|7443|grpc-reviews|reviews.prod.svc.cluster.local`. This can be used to override that pattern.
//
// A Pattern can be composed of various pre-defined variables. The following variables are supported.
//
// - `%SERVICE%` - Will be substituted with short hostname of the service.
// - `%SERVICE_NAME%` - Will be substituted with name of the service.
// - `%SERVICE_FQDN%` - Will be substituted with FQDN of the service.
// - `%SERVICE_PORT%` - Will be substituted with port of the service.
// - `%TARGET_PORT%` - Will be substituted with the target port of the service.
// - `%SERVICE_PORT_NAME%` - Will be substituted with port name of the service.
//
// Following are some examples of supported patterns for reviews:
//
// - `%SERVICE_FQDN%_%SERVICE_PORT%` will use reviews.prod.svc.cluster.local_7443 as the stats name.
// - `%SERVICE%` will use reviews.prod as the stats name.
InboundClusterStatName string `protobuf:"bytes,44,opt,name=inbound_cluster_stat_name,json=inboundClusterStatName,proto3" json:"inbound_cluster_stat_name,omitempty"`
// Name to be used while emitting statistics for outbound clusters. The same pattern is used while computing stat prefix for
// network filters like TCP and Redis.
// By default, Istio emits statistics with the pattern `outbound|<port>|<subsetname>|<service-FQDN>`.
// For example `outbound|8080|v2|reviews.prod.svc.cluster.local`. This can be used to override that pattern.
//
// A Pattern can be composed of various pre-defined variables. The following variables are supported.
//
// - `%SERVICE%` - Will be substituted with short hostname of the service.
// - `%SERVICE_NAME%` - Will be substituted with name of the service.
// - `%SERVICE_FQDN%` - Will be substituted with FQDN of the service.
// - `%SERVICE_PORT%` - Will be substituted with port of the service.
// - `%SERVICE_PORT_NAME%` - Will be substituted with port name of the service.
// - `%SUBSET_NAME%` - Will be substituted with subset.
//
// Following are some examples of supported patterns for reviews:
//
// - `%SERVICE_FQDN%_%SERVICE_PORT%` will use `reviews.prod.svc.cluster.local_7443` as the stats name.
// - `%SERVICE%` will use reviews.prod as the stats name.
OutboundClusterStatName string `protobuf:"bytes,45,opt,name=outbound_cluster_stat_name,json=outboundClusterStatName,proto3" json:"outbound_cluster_stat_name,omitempty"`
// $hide_from_docs
// Configure the provision of certificates.
//
// Note: Deprecated, please refer to Cert-Manager or other cert provisioning solutions to sign DNS certificates.
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Certificates []*Certificate `protobuf:"bytes,47,rep,name=certificates,proto3" json:"certificates,omitempty"`
// $hide_from_docs
// Settings to be applied to select services.
ServiceSettings []*MeshConfig_ServiceSettings `protobuf:"bytes,50,rep,name=service_settings,json=serviceSettings,proto3" json:"service_settings,omitempty"`
// If enabled, Istio agent will merge metrics exposed by the application with metrics from Envoy
// and Istio agent. The sidecar injection will replace `prometheus.io` annotations present on the pod
// and redirect them towards Istio agent, which will then merge metrics of from the application with Istio metrics.
// This relies on the annotations `prometheus.io/scrape`, `prometheus.io/port`, and
// `prometheus.io/path` annotations.
// If you are running a separately managed Envoy with an Istio sidecar, this may cause issues, as the metrics will collide.
// In this case, it is recommended to disable aggregation on that deployment with the
// `prometheus.istio.io/merge-metrics: "false"` annotation.
// If not specified, this will be enabled by default.
EnablePrometheusMerge *wrappers.BoolValue `protobuf:"bytes,51,opt,name=enable_prometheus_merge,json=enablePrometheusMerge,proto3" json:"enable_prometheus_merge,omitempty"`
// $hide_from_docs
// `VerifyCertificateAtClient` sets the mesh global default for peer certificate validation
// at the client-side proxy when `SIMPLE` TLS or `MUTUAL` TLS (non `ISTIO_MUTUAL`) origination
// modes are used. This setting can be overridden at the host level via DestinationRule API.
// By default, `VerifyCertificateAtClient` is `true`.
//
// `CaCertificates`: If set, proxy verifies CA signature based on given CaCertificates. If unset,
// and VerifyCertificateAtClient is true, proxy uses default System CA bundle. If unset and
// `VerifyCertificateAtClient` is false, proxy will not verify the CA.
//
// `SubjectAltNames`: If set, proxy verifies subject alt names are present in the SAN. If unset,
// and `VerifyCertificateAtClient` is true, proxy uses host in destination rule to verify the SANs.
// If unset, and `VerifyCertificateAtClient` is false, proxy does not verify SANs.
//
// For SAN, client-side proxy will exact match host in `DestinationRule` as well as one level
// wildcard if the specified host in DestinationRule doesn't contain a wildcard.
// For example, if the host in `DestinationRule` is `x.y.com`, client-side proxy will
// match either `x.y.com` or `*.y.com` for the SAN in the presented server certificate.
// For wildcard host name in DestinationRule, client-side proxy will do a suffix match. For example,
// if host is `*.x.y.com`, client-side proxy will verify the presented server certificate SAN matches
// “.x.y.com` suffix.
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
VerifyCertificateAtClient *wrappers.BoolValue `protobuf:"bytes,54,opt,name=verify_certificate_at_client,json=verifyCertificateAtClient,proto3" json:"verify_certificate_at_client,omitempty"`
// $hide_from_docs
// If specified, Istiod will authorize and forward the CSRs from the workloads to the specified external CA
// using the Istio CA gRPC API.
Ca *MeshConfig_CA `protobuf:"bytes,55,opt,name=ca,proto3" json:"ca,omitempty"`
// Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy
// can be used with an extension provider to delegate the authorization decision to a custom authorization system.
ExtensionProviders []*MeshConfig_ExtensionProvider `protobuf:"bytes,57,rep,name=extension_providers,json=extensionProviders,proto3" json:"extension_providers,omitempty"`
// Specifies extension providers to use by default in Istio configuration resources.
DefaultProviders *MeshConfig_DefaultProviders `protobuf:"bytes,60,opt,name=default_providers,json=defaultProviders,proto3" json:"default_providers,omitempty"`
// A list of Kubernetes selectors that specify the set of namespaces that Istio considers when
// computing configuration updates for sidecars. This can be used to reduce Istio's computational load
// by limiting the number of entities (including services, pods, and endpoints) that are watched and processed.
// If omitted, Istio will use the default behavior of processing all namespaces in the cluster.
// Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector.
// The following example selects any namespace that matches either below:
// 1. The namespace has both of these labels: `env: prod` and `region: us-east1`
// 2. The namespace has label `app` equal to `cassandra` or `spark`.
// ```yaml
// discoverySelectors:
// - matchLabels:
// env: prod
// region: us-east1
// - matchExpressions:
// - key: app
// operator: In
// values:
// - cassandra
// - spark
//
// ```
// Refer to the [Kubernetes selector docs](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors)
// for additional detail on selector semantics.
DiscoverySelectors []*LabelSelector `protobuf:"bytes,59,rep,name=discovery_selectors,json=discoverySelectors,proto3" json:"discovery_selectors,omitempty"`
// ProxyPathNormalization configures how URL paths in incoming and outgoing HTTP requests are
// normalized by the sidecars and gateways.
// The normalized paths will be used in all aspects through the requests' lifetime on the
// sidecars and gateways, which includes routing decisions in outbound direction (client proxy),
// authorization policy match and enforcement in inbound direction (server proxy), and the URL
// path proxied to the upstream service.
// If not set, the NormalizationType.DEFAULT configuration will be used.
PathNormalization *MeshConfig_ProxyPathNormalization `protobuf:"bytes,61,opt,name=path_normalization,json=pathNormalization,proto3" json:"path_normalization,omitempty"`
// Configure the default HTTP retry policy.
// The default number of retry attempts is set at 2 for these errors:
//
// "connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes".
//
// Setting the number of attempts to 0 disables retry policy globally.
// This setting can be overridden on a per-host basis using the Virtual Service
// API.
// All settings in the retry policy except `perTryTimeout` can currently be
// configured globally via this field.
DefaultHttpRetryPolicy *v1alpha3.HTTPRetry `protobuf:"bytes,62,opt,name=default_http_retry_policy,json=defaultHttpRetryPolicy,proto3" json:"default_http_retry_policy,omitempty"`
// The below configuration parameters can be used to specify TLSConfig for mesh traffic.
// For example, a user could enable min TLS version for ISTIO_MUTUAL traffic and specify a curve for non ISTIO_MUTUAL traffic like below:
// ```yaml
// meshConfig:
//
// meshMTLS:
// minProtocolVersion: TLSV1_3
// tlsDefaults:
// Note: applicable only for non ISTIO_MUTUAL scenarios
// ecdhCurves:
// - P-256
// - P-512
//
// ```
// Configuration of mTLS for traffic between workloads with ISTIO_MUTUAL TLS traffic.
//
// Note: Mesh mTLS does not respect ECDH curves.
MeshMTLS *MeshConfig_TLSConfig `protobuf:"bytes,63,opt,name=mesh_mTLS,json=meshMTLS,proto3" json:"mesh_mTLS,omitempty"`
// Configuration of TLS for all traffic except for ISTIO_MUTUAL mode.
// Currently, this supports configuration of ecdhCurves and cipherSuites only.
// For ISTIO_MUTUAL TLS settings, use meshMTLS configuration.
TlsDefaults *MeshConfig_TLSConfig `protobuf:"bytes,64,opt,name=tls_defaults,json=tlsDefaults,proto3" json:"tls_defaults,omitempty"`
}
func (x *MeshConfig) Reset() {
*x = MeshConfig{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig) ProtoMessage() {}
func (x *MeshConfig) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig.ProtoReflect.Descriptor instead.
func (*MeshConfig) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0}
}
func (x *MeshConfig) GetProxyListenPort() int32 {
if x != nil {
return x.ProxyListenPort
}
return 0
}
func (x *MeshConfig) GetProxyInboundListenPort() int32 {
if x != nil {
return x.ProxyInboundListenPort
}
return 0
}
func (x *MeshConfig) GetProxyHttpPort() int32 {
if x != nil {
return x.ProxyHttpPort
}
return 0
}
func (x *MeshConfig) GetConnectTimeout() *duration.Duration {
if x != nil {
return x.ConnectTimeout
}
return nil
}
func (x *MeshConfig) GetProtocolDetectionTimeout() *duration.Duration {
if x != nil {
return x.ProtocolDetectionTimeout
}
return nil
}
func (x *MeshConfig) GetTcpKeepalive() *v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive {
if x != nil {
return x.TcpKeepalive
}
return nil
}
func (x *MeshConfig) GetIngressClass() string {
if x != nil {
return x.IngressClass
}
return ""
}
func (x *MeshConfig) GetIngressService() string {
if x != nil {
return x.IngressService
}
return ""
}
func (x *MeshConfig) GetIngressControllerMode() MeshConfig_IngressControllerMode {
if x != nil {
return x.IngressControllerMode
}
return MeshConfig_UNSPECIFIED
}
func (x *MeshConfig) GetIngressSelector() string {
if x != nil {
return x.IngressSelector
}
return ""
}
func (x *MeshConfig) GetEnableTracing() bool {
if x != nil {
return x.EnableTracing
}
return false
}
func (x *MeshConfig) GetAccessLogFile() string {
if x != nil {
return x.AccessLogFile
}
return ""
}
func (x *MeshConfig) GetAccessLogFormat() string {
if x != nil {
return x.AccessLogFormat
}
return ""
}
func (x *MeshConfig) GetAccessLogEncoding() MeshConfig_AccessLogEncoding {
if x != nil {
return x.AccessLogEncoding
}
return MeshConfig_TEXT
}
func (x *MeshConfig) GetEnableEnvoyAccessLogService() bool {
if x != nil {
return x.EnableEnvoyAccessLogService
}
return false
}
func (x *MeshConfig) GetDisableEnvoyListenerLog() bool {
if x != nil {
return x.DisableEnvoyListenerLog
}
return false
}
func (x *MeshConfig) GetDefaultConfig() *ProxyConfig {
if x != nil {
return x.DefaultConfig
}
return nil
}
func (x *MeshConfig) GetOutboundTrafficPolicy() *MeshConfig_OutboundTrafficPolicy {
if x != nil {
return x.OutboundTrafficPolicy
}
return nil
}
func (x *MeshConfig) GetInboundTrafficPolicy() *MeshConfig_InboundTrafficPolicy {
if x != nil {
return x.InboundTrafficPolicy
}
return nil
}
func (x *MeshConfig) GetConfigSources() []*ConfigSource {
if x != nil {
return x.ConfigSources
}
return nil
}
func (x *MeshConfig) GetEnableAutoMtls() *wrappers.BoolValue {
if x != nil {
return x.EnableAutoMtls
}
return nil
}
func (x *MeshConfig) GetTrustDomain() string {
if x != nil {
return x.TrustDomain
}
return ""
}
func (x *MeshConfig) GetTrustDomainAliases() []string {
if x != nil {
return x.TrustDomainAliases
}
return nil
}
func (x *MeshConfig) GetCaCertificates() []*MeshConfig_CertificateData {
if x != nil {
return x.CaCertificates
}
return nil
}
func (x *MeshConfig) GetDefaultServiceExportTo() []string {
if x != nil {
return x.DefaultServiceExportTo
}
return nil
}
func (x *MeshConfig) GetDefaultVirtualServiceExportTo() []string {
if x != nil {
return x.DefaultVirtualServiceExportTo
}
return nil
}
func (x *MeshConfig) GetDefaultDestinationRuleExportTo() []string {
if x != nil {
return x.DefaultDestinationRuleExportTo
}
return nil
}
func (x *MeshConfig) GetRootNamespace() string {
if x != nil {
return x.RootNamespace
}
return ""
}
func (x *MeshConfig) GetLocalityLbSetting() *v1alpha3.LocalityLoadBalancerSetting {
if x != nil {
return x.LocalityLbSetting
}
return nil
}
func (x *MeshConfig) GetDnsRefreshRate() *duration.Duration {
if x != nil {
return x.DnsRefreshRate
}
return nil
}
func (x *MeshConfig) GetH2UpgradePolicy() MeshConfig_H2UpgradePolicy {
if x != nil {
return x.H2UpgradePolicy
}
return MeshConfig_DO_NOT_UPGRADE
}
func (x *MeshConfig) GetInboundClusterStatName() string {
if x != nil {
return x.InboundClusterStatName
}
return ""
}
func (x *MeshConfig) GetOutboundClusterStatName() string {
if x != nil {
return x.OutboundClusterStatName
}
return ""
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig) GetCertificates() []*Certificate {
if x != nil {
return x.Certificates
}
return nil
}
func (x *MeshConfig) GetServiceSettings() []*MeshConfig_ServiceSettings {
if x != nil {
return x.ServiceSettings
}
return nil
}
func (x *MeshConfig) GetEnablePrometheusMerge() *wrappers.BoolValue {
if x != nil {
return x.EnablePrometheusMerge
}
return nil
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig) GetVerifyCertificateAtClient() *wrappers.BoolValue {
if x != nil {
return x.VerifyCertificateAtClient
}
return nil
}
func (x *MeshConfig) GetCa() *MeshConfig_CA {
if x != nil {
return x.Ca
}
return nil
}
func (x *MeshConfig) GetExtensionProviders() []*MeshConfig_ExtensionProvider {
if x != nil {
return x.ExtensionProviders
}
return nil
}
func (x *MeshConfig) GetDefaultProviders() *MeshConfig_DefaultProviders {
if x != nil {
return x.DefaultProviders
}
return nil
}
func (x *MeshConfig) GetDiscoverySelectors() []*LabelSelector {
if x != nil {
return x.DiscoverySelectors
}
return nil
}
func (x *MeshConfig) GetPathNormalization() *MeshConfig_ProxyPathNormalization {
if x != nil {
return x.PathNormalization
}
return nil
}
func (x *MeshConfig) GetDefaultHttpRetryPolicy() *v1alpha3.HTTPRetry {
if x != nil {
return x.DefaultHttpRetryPolicy
}
return nil
}
func (x *MeshConfig) GetMeshMTLS() *MeshConfig_TLSConfig {
if x != nil {
return x.MeshMTLS
}
return nil
}
func (x *MeshConfig) GetTlsDefaults() *MeshConfig_TLSConfig {
if x != nil {
return x.TlsDefaults
}
return nil
}
// A label selector requirement is a selector that contains values, a key, and an operator that
// relates the key and values.
// Copied from Kubernetes to avoid expensive dependency on Kubernetes libraries.
type LabelSelector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
// map is equivalent to an element of matchExpressions, whose key field is "key", the
// operator is "In", and the values array contains only "value". The requirements are ANDed.
// +optional
MatchLabels map[string]string `protobuf:"bytes,1,rep,name=matchLabels,proto3" json:"matchLabels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// matchExpressions is a list of label selector requirements. The requirements are ANDed.
// +optional
MatchExpressions []*LabelSelectorRequirement `protobuf:"bytes,2,rep,name=matchExpressions,proto3" json:"matchExpressions,omitempty"`
}
func (x *LabelSelector) Reset() {
*x = LabelSelector{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LabelSelector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LabelSelector) ProtoMessage() {}
func (x *LabelSelector) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LabelSelector.ProtoReflect.Descriptor instead.
func (*LabelSelector) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{1}
}
func (x *LabelSelector) GetMatchLabels() map[string]string {
if x != nil {
return x.MatchLabels
}
return nil
}
func (x *LabelSelector) GetMatchExpressions() []*LabelSelectorRequirement {
if x != nil {
return x.MatchExpressions
}
return nil
}
// A label selector requirement is a selector that contains values, a key, and an operator that
// relates the key and values.
// Copied from Kubernetes to avoid expensive dependency on Kubernetes libraries.
type LabelSelectorRequirement struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// key is the label key that the selector applies to.
// +patchMergeKey=key
// +patchStrategy=merge
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// operator represents a key's relationship to a set of values.
// Valid operators are In, NotIn, Exists and DoesNotExist.
Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"`
// values is an array of string values. If the operator is In or NotIn,
// the values array must be non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic
// merge patch.
// +optional
Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
}
func (x *LabelSelectorRequirement) Reset() {
*x = LabelSelectorRequirement{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LabelSelectorRequirement) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LabelSelectorRequirement) ProtoMessage() {}
func (x *LabelSelectorRequirement) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LabelSelectorRequirement.ProtoReflect.Descriptor instead.
func (*LabelSelectorRequirement) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{2}
}
func (x *LabelSelectorRequirement) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *LabelSelectorRequirement) GetOperator() string {
if x != nil {
return x.Operator
}
return ""
}
func (x *LabelSelectorRequirement) GetValues() []string {
if x != nil {
return x.Values
}
return nil
}
// ConfigSource describes information about a configuration store inside a
// mesh. A single control plane instance can interact with one or more data
// sources.
type ConfigSource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Address of the server implementing the Istio Mesh Configuration
// protocol (MCP). Can be IP address or a fully qualified DNS name.
// Use xds:// to specify a grpc-based xds backend, k8s:// to specify a k8s controller or
// fs:/// to specify a file-based backend with absolute path to the directory.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Use the tlsSettings to specify the tls mode to use. If the MCP server
// uses Istio mutual TLS and shares the root CA with Pilot, specify the TLS
// mode as `ISTIO_MUTUAL`.
TlsSettings *v1alpha3.ClientTLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings,proto3" json:"tls_settings,omitempty"`
// Describes the source of configuration, if nothing is specified default is MCP
SubscribedResources []Resource `protobuf:"varint,3,rep,packed,name=subscribed_resources,json=subscribedResources,proto3,enum=istio.mesh.v1alpha1.Resource" json:"subscribed_resources,omitempty"`
}
func (x *ConfigSource) Reset() {
*x = ConfigSource{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ConfigSource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConfigSource) ProtoMessage() {}
func (x *ConfigSource) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ConfigSource.ProtoReflect.Descriptor instead.
func (*ConfigSource) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{3}
}
func (x *ConfigSource) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *ConfigSource) GetTlsSettings() *v1alpha3.ClientTLSSettings {
if x != nil {
return x.TlsSettings
}
return nil
}
func (x *ConfigSource) GetSubscribedResources() []Resource {
if x != nil {
return x.SubscribedResources
}
return nil
}
// $hide_from_docs
// Certificate configures the provision of a certificate and its key.
// Example 1: key and cert stored in a secret
// ```
// { secretName: galley-cert
//
// secretNamespace: istio-system
// dnsNames:
// - galley.istio-system.svc
// - galley.mydomain.com
// }
//
// ```
// Example 2: key and cert stored in a directory
// ```
// { dnsNames:
// - pilot.istio-system
// - pilot.istio-system.svc
// - pilot.mydomain.com
// }
//
// ```
type Certificate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the secret the certificate and its key will be stored into.
// If it is empty, it will not be stored into a secret.
// Instead, the certificate and its key will be stored into a hard-coded directory.
SecretName string `protobuf:"bytes,1,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"`
// The DNS names for the certificate. A certificate may contain
// multiple DNS names.
DnsNames []string `protobuf:"bytes,2,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
}
func (x *Certificate) Reset() {
*x = Certificate{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Certificate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Certificate) ProtoMessage() {}
func (x *Certificate) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Certificate.ProtoReflect.Descriptor instead.
func (*Certificate) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{4}
}
func (x *Certificate) GetSecretName() string {
if x != nil {
return x.SecretName
}
return ""
}
func (x *Certificate) GetDnsNames() []string {
if x != nil {
return x.DnsNames
}
return nil
}
// `OutboundTrafficPolicy` sets the default behavior of the sidecar for
// handling unknown outbound traffic from the application.
type MeshConfig_OutboundTrafficPolicy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mode MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"`
}
func (x *MeshConfig_OutboundTrafficPolicy) Reset() {
*x = MeshConfig_OutboundTrafficPolicy{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_OutboundTrafficPolicy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_OutboundTrafficPolicy) ProtoMessage() {}
func (x *MeshConfig_OutboundTrafficPolicy) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_OutboundTrafficPolicy.ProtoReflect.Descriptor instead.
func (*MeshConfig_OutboundTrafficPolicy) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 0}
}
func (x *MeshConfig_OutboundTrafficPolicy) GetMode() MeshConfig_OutboundTrafficPolicy_Mode {
if x != nil {
return x.Mode
}
return MeshConfig_OutboundTrafficPolicy_REGISTRY_ONLY
}
type MeshConfig_InboundTrafficPolicy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mode MeshConfig_InboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_InboundTrafficPolicy_Mode" json:"mode,omitempty"`
}
func (x *MeshConfig_InboundTrafficPolicy) Reset() {
*x = MeshConfig_InboundTrafficPolicy{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_InboundTrafficPolicy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_InboundTrafficPolicy) ProtoMessage() {}
func (x *MeshConfig_InboundTrafficPolicy) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_InboundTrafficPolicy.ProtoReflect.Descriptor instead.
func (*MeshConfig_InboundTrafficPolicy) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 1}
}
func (x *MeshConfig_InboundTrafficPolicy) GetMode() MeshConfig_InboundTrafficPolicy_Mode {
if x != nil {
return x.Mode
}
return MeshConfig_InboundTrafficPolicy_PASSTHROUGH
}
type MeshConfig_CertificateData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to CertificateData:
//
// *MeshConfig_CertificateData_Pem
// *MeshConfig_CertificateData_SpiffeBundleUrl
CertificateData isMeshConfig_CertificateData_CertificateData `protobuf_oneof:"certificate_data"`
// Optional. Specify the kubernetes signers (External CA) that use this trustAnchor
// when Istiod is acting as RA(registration authority)
// If set, they are used for these signers. Otherwise, this trustAnchor is used for all signers.
CertSigners []string `protobuf:"bytes,3,rep,name=cert_signers,json=certSigners,proto3" json:"cert_signers,omitempty"`
// Optional. Specify the list of trust domains to which this trustAnchor data belongs.
// If set, they are used for these trust domains. Otherwise, this trustAnchor is used for default trust domain
// and its aliases.
// Note that we can have multiple trustAnchor data for a same trustDomain.
// In that case, trustAnchors with a same trust domain will be merged and used together to verify peer certificates.
// If neither certSigners nor trustDomains is set, this trustAnchor is used for all trust domains and all signers.
// If only trustDomains is set, this trustAnchor is used for these trustDomains and all signers.
// If only certSigners is set, this trustAnchor is used for these certSigners and all trust domains.
// If both certSigners and trustDomains is set, this trustAnchor is only used for these signers and trust domains.
TrustDomains []string `protobuf:"bytes,4,rep,name=trust_domains,json=trustDomains,proto3" json:"trust_domains,omitempty"`
}
func (x *MeshConfig_CertificateData) Reset() {
*x = MeshConfig_CertificateData{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_CertificateData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_CertificateData) ProtoMessage() {}
func (x *MeshConfig_CertificateData) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_CertificateData.ProtoReflect.Descriptor instead.
func (*MeshConfig_CertificateData) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 2}
}
func (m *MeshConfig_CertificateData) GetCertificateData() isMeshConfig_CertificateData_CertificateData {
if m != nil {
return m.CertificateData
}
return nil
}
func (x *MeshConfig_CertificateData) GetPem() string {
if x, ok := x.GetCertificateData().(*MeshConfig_CertificateData_Pem); ok {
return x.Pem
}
return ""
}
func (x *MeshConfig_CertificateData) GetSpiffeBundleUrl() string {
if x, ok := x.GetCertificateData().(*MeshConfig_CertificateData_SpiffeBundleUrl); ok {
return x.SpiffeBundleUrl
}
return ""
}
func (x *MeshConfig_CertificateData) GetCertSigners() []string {
if x != nil {
return x.CertSigners
}
return nil
}
func (x *MeshConfig_CertificateData) GetTrustDomains() []string {
if x != nil {
return x.TrustDomains
}
return nil
}
type isMeshConfig_CertificateData_CertificateData interface {
isMeshConfig_CertificateData_CertificateData()
}
type MeshConfig_CertificateData_Pem struct {
// The PEM data of the certificate.
Pem string `protobuf:"bytes,1,opt,name=pem,proto3,oneof"`
}
type MeshConfig_CertificateData_SpiffeBundleUrl struct {
// The SPIFFE bundle endpoint URL that complies to:
// https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#the-spiffe-trust-domain-and-bundle
// The endpoint should support authentication based on Web PKI:
// https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#521-web-pki
// The certificate is retrieved from the endpoint.
SpiffeBundleUrl string `protobuf:"bytes,2,opt,name=spiffe_bundle_url,json=spiffeBundleUrl,proto3,oneof"`
}
func (*MeshConfig_CertificateData_Pem) isMeshConfig_CertificateData_CertificateData() {}
func (*MeshConfig_CertificateData_SpiffeBundleUrl) isMeshConfig_CertificateData_CertificateData() {}
// $hide_from_docs
// Settings to be applied to select services.
//
// For example, the following configures all services in namespace "foo" as well as the
// "bar" service in namespace "baz" to be considered cluster-local:
//
// ```yaml
// serviceSettings:
// - settings:
// clusterLocal: true
// hosts:
// - "*.foo.svc.cluster.local"
// - "bar.baz.svc.cluster.local"
//
// ```
type MeshConfig_ServiceSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The settings to apply to the selected services.
Settings *MeshConfig_ServiceSettings_Settings `protobuf:"bytes,1,opt,name=settings,proto3" json:"settings,omitempty"`
// The services to which the Settings should be applied. Services are selected using the hostname
// matching rules used by DestinationRule.
//
// For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local
Hosts []string `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
}
func (x *MeshConfig_ServiceSettings) Reset() {
*x = MeshConfig_ServiceSettings{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ServiceSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ServiceSettings) ProtoMessage() {}
func (x *MeshConfig_ServiceSettings) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ServiceSettings.ProtoReflect.Descriptor instead.
func (*MeshConfig_ServiceSettings) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 3}
}
func (x *MeshConfig_ServiceSettings) GetSettings() *MeshConfig_ServiceSettings_Settings {
if x != nil {
return x.Settings
}
return nil
}
func (x *MeshConfig_ServiceSettings) GetHosts() []string {
if x != nil {
return x.Hosts
}
return nil
}
type MeshConfig_CA struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Address of the CA server implementing the Istio CA gRPC API.
// Can be IP address or a fully qualified DNS name with port
// Eg: custom-ca.default.svc.cluster.local:8932, 192.168.23.2:9000
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Use the tlsSettings to specify the tls mode to use.
// Regarding tlsSettings:
// - DISABLE MODE is legitimate for the case Istiod is making the request via an Envoy sidecar.
// DISABLE MODE can also be used for testing
// - TLS MUTUAL MODE be on by default. If the CA certificates
// (cert bundle to verify the CA server's certificate) is omitted, Istiod will
// use the system root certs to verify the CA server's certificate.
TlsSettings *v1alpha3.ClientTLSSettings `protobuf:"bytes,2,opt,name=tls_settings,json=tlsSettings,proto3" json:"tls_settings,omitempty"`
// timeout for forward CSR requests from Istiod to External CA
// Default: 10s
RequestTimeout *duration.Duration `protobuf:"bytes,3,opt,name=request_timeout,json=requestTimeout,proto3" json:"request_timeout,omitempty"`
// Use istiodSide to specify CA Server integrate to Istiod side or Agent side
// Default: true
IstiodSide bool `protobuf:"varint,4,opt,name=istiod_side,json=istiodSide,proto3" json:"istiod_side,omitempty"`
}
func (x *MeshConfig_CA) Reset() {
*x = MeshConfig_CA{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_CA) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_CA) ProtoMessage() {}
func (x *MeshConfig_CA) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_CA.ProtoReflect.Descriptor instead.
func (*MeshConfig_CA) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 4}
}
func (x *MeshConfig_CA) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *MeshConfig_CA) GetTlsSettings() *v1alpha3.ClientTLSSettings {
if x != nil {
return x.TlsSettings
}
return nil
}
func (x *MeshConfig_CA) GetRequestTimeout() *duration.Duration {
if x != nil {
return x.RequestTimeout
}
return nil
}
func (x *MeshConfig_CA) GetIstiodSide() bool {
if x != nil {
return x.IstiodSide
}
return false
}
type MeshConfig_ExtensionProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. A unique name identifying the extension provider.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// REQUIRED. Specifies detailed configuration for the extension provider.
//
// Types that are assignable to Provider:
//
// *MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp
// *MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc
// *MeshConfig_ExtensionProvider_Zipkin
// *MeshConfig_ExtensionProvider_Lightstep
// *MeshConfig_ExtensionProvider_Datadog
// *MeshConfig_ExtensionProvider_Stackdriver
// *MeshConfig_ExtensionProvider_Opencensus
// *MeshConfig_ExtensionProvider_Skywalking
// *MeshConfig_ExtensionProvider_Opentelemetry
// *MeshConfig_ExtensionProvider_Prometheus
// *MeshConfig_ExtensionProvider_EnvoyFileAccessLog
// *MeshConfig_ExtensionProvider_EnvoyHttpAls
// *MeshConfig_ExtensionProvider_EnvoyTcpAls
// *MeshConfig_ExtensionProvider_EnvoyOtelAls
// *MeshConfig_ExtensionProvider_Aggregate
Provider isMeshConfig_ExtensionProvider_Provider `protobuf_oneof:"provider"`
}
func (x *MeshConfig_ExtensionProvider) Reset() {
*x = MeshConfig_ExtensionProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5}
}
func (x *MeshConfig_ExtensionProvider) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (m *MeshConfig_ExtensionProvider) GetProvider() isMeshConfig_ExtensionProvider_Provider {
if m != nil {
return m.Provider
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyExtAuthzHttp() *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp); ok {
return x.EnvoyExtAuthzHttp
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyExtAuthzGrpc() *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc); ok {
return x.EnvoyExtAuthzGrpc
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetZipkin() *MeshConfig_ExtensionProvider_ZipkinTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Zipkin); ok {
return x.Zipkin
}
return nil
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider) GetLightstep() *MeshConfig_ExtensionProvider_LightstepTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Lightstep); ok {
return x.Lightstep
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetDatadog() *MeshConfig_ExtensionProvider_DatadogTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Datadog); ok {
return x.Datadog
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetStackdriver() *MeshConfig_ExtensionProvider_StackdriverProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Stackdriver); ok {
return x.Stackdriver
}
return nil
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider) GetOpencensus() *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Opencensus); ok {
return x.Opencensus
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetSkywalking() *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Skywalking); ok {
return x.Skywalking
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetOpentelemetry() *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Opentelemetry); ok {
return x.Opentelemetry
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetPrometheus() *MeshConfig_ExtensionProvider_PrometheusMetricsProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Prometheus); ok {
return x.Prometheus
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyFileAccessLog() *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyFileAccessLog); ok {
return x.EnvoyFileAccessLog
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyHttpAls() *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyHttpAls); ok {
return x.EnvoyHttpAls
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyTcpAls() *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyTcpAls); ok {
return x.EnvoyTcpAls
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetEnvoyOtelAls() *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_EnvoyOtelAls); ok {
return x.EnvoyOtelAls
}
return nil
}
func (x *MeshConfig_ExtensionProvider) GetAggregate() *MeshConfig_ExtensionProvider_AggregateProvider {
if x, ok := x.GetProvider().(*MeshConfig_ExtensionProvider_Aggregate); ok {
return x.Aggregate
}
return nil
}
type isMeshConfig_ExtensionProvider_Provider interface {
isMeshConfig_ExtensionProvider_Provider()
}
type MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp struct {
// Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the HTTP API.
EnvoyExtAuthzHttp *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider `protobuf:"bytes,2,opt,name=envoy_ext_authz_http,json=envoyExtAuthzHttp,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc struct {
// Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.
EnvoyExtAuthzGrpc *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider `protobuf:"bytes,3,opt,name=envoy_ext_authz_grpc,json=envoyExtAuthzGrpc,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Zipkin struct {
// Configures a tracing provider that uses the Zipkin API.
Zipkin *MeshConfig_ExtensionProvider_ZipkinTracingProvider `protobuf:"bytes,4,opt,name=zipkin,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Lightstep struct {
// $hide_from_docs
// Configures a Lightstep tracing provider.
// Deprecated: For Istio 1.15+, please use an OpenTelemetryTracingProvider instead, more details can be found at https://github.com/istio/istio/issues/40027
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Lightstep *MeshConfig_ExtensionProvider_LightstepTracingProvider `protobuf:"bytes,5,opt,name=lightstep,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Datadog struct {
// Configures a Datadog tracing provider.
Datadog *MeshConfig_ExtensionProvider_DatadogTracingProvider `protobuf:"bytes,6,opt,name=datadog,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Stackdriver struct {
// Configures a Stackdriver provider.
Stackdriver *MeshConfig_ExtensionProvider_StackdriverProvider `protobuf:"bytes,7,opt,name=stackdriver,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Opencensus struct {
// $hide_from_docs
// Configures an OpenCensusAgent tracing provider.
// Deprecated: OpenCensus is deprecated, more details can be found at https://opentelemetry.io/blog/2023/sunsetting-opencensus/
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Opencensus *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider `protobuf:"bytes,8,opt,name=opencensus,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Skywalking struct {
// Configures a Apache SkyWalking provider.
Skywalking *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider `protobuf:"bytes,9,opt,name=skywalking,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Opentelemetry struct {
// Configures an OpenTelemetry tracing provider.
Opentelemetry *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider `protobuf:"bytes,15,opt,name=opentelemetry,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Prometheus struct {
// Configures a Prometheus metrics provider.
Prometheus *MeshConfig_ExtensionProvider_PrometheusMetricsProvider `protobuf:"bytes,10,opt,name=prometheus,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyFileAccessLog struct {
// Configures an Envoy File Access Log provider.
EnvoyFileAccessLog *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider `protobuf:"bytes,11,opt,name=envoy_file_access_log,json=envoyFileAccessLog,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyHttpAls struct {
// Configures an Envoy Access Logging Service provider for HTTP traffic.
EnvoyHttpAls *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider `protobuf:"bytes,12,opt,name=envoy_http_als,json=envoyHttpAls,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyTcpAls struct {
// Configures an Envoy Access Logging Service provider for TCP traffic.
EnvoyTcpAls *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider `protobuf:"bytes,13,opt,name=envoy_tcp_als,json=envoyTcpAls,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyOtelAls struct {
// Configures an Envoy Open Telemetry Access Logging Service provider.
EnvoyOtelAls *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider `protobuf:"bytes,14,opt,name=envoy_otel_als,json=envoyOtelAls,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_Aggregate struct {
// Configures aggregate provider
Aggregate *MeshConfig_ExtensionProvider_AggregateProvider `protobuf:"bytes,999,opt,name=aggregate,proto3,oneof"`
}
func (*MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Zipkin) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Lightstep) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Datadog) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Stackdriver) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Opencensus) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Skywalking) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Opentelemetry) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Prometheus) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLog) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_EnvoyHttpAls) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_EnvoyTcpAls) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_EnvoyOtelAls) isMeshConfig_ExtensionProvider_Provider() {}
func (*MeshConfig_ExtensionProvider_Aggregate) isMeshConfig_ExtensionProvider_Provider() {}
// Holds the name references to the providers that will be used by default
// in other Istio configuration resources if the provider is not specified.
//
// These names must match a provider defined in `extensionProviders` that is
// one of the supported tracing providers.
type MeshConfig_DefaultProviders struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the default provider(s) for tracing.
Tracing []string `protobuf:"bytes,1,rep,name=tracing,proto3" json:"tracing,omitempty"`
// Name of the default provider(s) for metrics.
Metrics []string `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
// Name of the default provider(s) for access logging.
AccessLogging []string `protobuf:"bytes,3,rep,name=access_logging,json=accessLogging,proto3" json:"access_logging,omitempty"`
}
func (x *MeshConfig_DefaultProviders) Reset() {
*x = MeshConfig_DefaultProviders{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_DefaultProviders) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_DefaultProviders) ProtoMessage() {}
func (x *MeshConfig_DefaultProviders) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_DefaultProviders.ProtoReflect.Descriptor instead.
func (*MeshConfig_DefaultProviders) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 6}
}
func (x *MeshConfig_DefaultProviders) GetTracing() []string {
if x != nil {
return x.Tracing
}
return nil
}
func (x *MeshConfig_DefaultProviders) GetMetrics() []string {
if x != nil {
return x.Metrics
}
return nil
}
func (x *MeshConfig_DefaultProviders) GetAccessLogging() []string {
if x != nil {
return x.AccessLogging
}
return nil
}
type MeshConfig_ProxyPathNormalization struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Normalization MeshConfig_ProxyPathNormalization_NormalizationType `protobuf:"varint,1,opt,name=normalization,proto3,enum=istio.mesh.v1alpha1.MeshConfig_ProxyPathNormalization_NormalizationType" json:"normalization,omitempty"`
}
func (x *MeshConfig_ProxyPathNormalization) Reset() {
*x = MeshConfig_ProxyPathNormalization{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ProxyPathNormalization) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ProxyPathNormalization) ProtoMessage() {}
func (x *MeshConfig_ProxyPathNormalization) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ProxyPathNormalization.ProtoReflect.Descriptor instead.
func (*MeshConfig_ProxyPathNormalization) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 7}
}
func (x *MeshConfig_ProxyPathNormalization) GetNormalization() MeshConfig_ProxyPathNormalization_NormalizationType {
if x != nil {
return x.Normalization
}
return MeshConfig_ProxyPathNormalization_DEFAULT
}
type MeshConfig_TLSConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional: the minimum TLS protocol version. The default minimum
// TLS version will be TLS 1.2. As servers may not be Envoy and be
// set to TLS 1.2 (e.g., workloads using mTLS without sidecars), the
// minimum TLS version for clients may also be TLS 1.2.
// In the current Istio implementation, the maximum TLS protocol version
// is TLS 1.3.
MinProtocolVersion MeshConfig_TLSConfig_TLSProtocol `protobuf:"varint,1,opt,name=min_protocol_version,json=minProtocolVersion,proto3,enum=istio.mesh.v1alpha1.MeshConfig_TLSConfig_TLSProtocol" json:"min_protocol_version,omitempty"`
// Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange.
// If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to
// [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto).
EcdhCurves []string `protobuf:"bytes,2,rep,name=ecdh_curves,json=ecdhCurves,proto3" json:"ecdh_curves,omitempty"`
// Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2.
// If not specified, the following cipher suites will be used:
// ```
// ECDHE-ECDSA-AES256-GCM-SHA384
// ECDHE-RSA-AES256-GCM-SHA384
// ECDHE-ECDSA-AES128-GCM-SHA256
// ECDHE-RSA-AES128-GCM-SHA256
// AES256-GCM-SHA384
// AES128-GCM-SHA256
// ```
CipherSuites []string `protobuf:"bytes,3,rep,name=cipher_suites,json=cipherSuites,proto3" json:"cipher_suites,omitempty"`
}
func (x *MeshConfig_TLSConfig) Reset() {
*x = MeshConfig_TLSConfig{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_TLSConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_TLSConfig) ProtoMessage() {}
func (x *MeshConfig_TLSConfig) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_TLSConfig.ProtoReflect.Descriptor instead.
func (*MeshConfig_TLSConfig) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 8}
}
func (x *MeshConfig_TLSConfig) GetMinProtocolVersion() MeshConfig_TLSConfig_TLSProtocol {
if x != nil {
return x.MinProtocolVersion
}
return MeshConfig_TLSConfig_TLS_AUTO
}
func (x *MeshConfig_TLSConfig) GetEcdhCurves() []string {
if x != nil {
return x.EcdhCurves
}
return nil
}
func (x *MeshConfig_TLSConfig) GetCipherSuites() []string {
if x != nil {
return x.CipherSuites
}
return nil
}
// Settings for the selected services.
type MeshConfig_ServiceSettings_Settings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If true, specifies that the client and service endpoints must reside in the same cluster.
// By default, in multi-cluster deployments, the Istio control plane assumes all service
// endpoints to be reachable from any client in any of the clusters which are part of the
// mesh. This configuration option limits the set of service endpoints visible to a client
// to be cluster scoped.
//
// There are some common scenarios when this can be useful:
//
// - A service (or group of services) is inherently local to the cluster and has local storage
// for that cluster. For example, the kube-system namespace (e.g. the Kube API Server).
// - A mesh administrator wants to slowly migrate services to Istio. They might start by first
// having services cluster-local and then slowly transition them to mesh-wide. They could do
// this service-by-service (e.g. mysvc.myns.svc.cluster.local) or as a group
// (e.g. *.myns.svc.cluster.local).
//
// By default Istio will consider kubernetes.default.svc (i.e. the API Server) as well as all
// services in the kube-system namespace to be cluster-local, unless explicitly overridden here.
ClusterLocal bool `protobuf:"varint,1,opt,name=cluster_local,json=clusterLocal,proto3" json:"cluster_local,omitempty"`
}
func (x *MeshConfig_ServiceSettings_Settings) Reset() {
*x = MeshConfig_ServiceSettings_Settings{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ServiceSettings_Settings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ServiceSettings_Settings) ProtoMessage() {}
func (x *MeshConfig_ServiceSettings_Settings) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ServiceSettings_Settings.ProtoReflect.Descriptor instead.
func (*MeshConfig_ServiceSettings_Settings) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 3, 0}
}
func (x *MeshConfig_ServiceSettings_Settings) GetClusterLocal() bool {
if x != nil {
return x.ClusterLocal
}
return false
}
type MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Sets the maximum size of a message body that the ext-authz filter will hold in memory.
// If maxRequestBytes is reached, and allowPartialMessage is false, Envoy will return a 413 (Payload Too Large).
// Otherwise the request will be sent to the provider with a partial message.
// Note that this setting will have precedence over the failOpen field, the 413 will be returned even when the
// failOpen is set to true.
MaxRequestBytes uint32 `protobuf:"varint,1,opt,name=max_request_bytes,json=maxRequestBytes,proto3" json:"max_request_bytes,omitempty"`
// When this field is true, ext-authz filter will buffer the message until maxRequestBytes is reached.
// The authorization request will be dispatched and no 413 HTTP error will be returned by the filter.
// A "x-envoy-auth-partial-body: false|true" metadata header will be added to the authorization request message
// indicating if the body data is partial.
AllowPartialMessage bool `protobuf:"varint,2,opt,name=allow_partial_message,json=allowPartialMessage,proto3" json:"allow_partial_message,omitempty"`
// If true, the body sent to the external authorization service in the gRPC authorization request is set with raw bytes
// in the [raw_body field](https://github.com/envoyproxy/envoy/blame/cffb095d59d7935abda12b9509bcd136808367bb/api/envoy/service/auth/v3/attribute_context.proto#L153).
// Otherwise, it will be filled with UTF-8 string in the [body field](https://github.com/envoyproxy/envoy/blame/cffb095d59d7935abda12b9509bcd136808367bb/api/envoy/service/auth/v3/attribute_context.proto#L147).
// This field only works with the envoyExtAuthzGrpc provider and has no effect for the envoyExtAuthzHttp provider.
PackAsBytes bool `protobuf:"varint,3,opt,name=pack_as_bytes,json=packAsBytes,proto3" json:"pack_as_bytes,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 0}
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) GetMaxRequestBytes() uint32 {
if x != nil {
return x.MaxRequestBytes
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) GetAllowPartialMessage() bool {
if x != nil {
return x.AllowPartialMessage
}
return false
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody) GetPackAsBytes() bool {
if x != nil {
return x.PackAsBytes
}
return false
}
type MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that implements the Envoy ext_authz HTTP authorization service.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// The maximum duration that the proxy will wait for a response from the provider (default timeout: 600s).
// When this timeout condition is met, the proxy marks the communication to the authorization service as failure.
// In this situation, the response sent back to the client will depend on the configured `failOpen` field.
Timeout *duration.Duration `protobuf:"bytes,9,opt,name=timeout,proto3" json:"timeout,omitempty"`
// Sets a prefix to the value of authorization request header *Path*.
// For example, setting this to "/check" for an original user request at path "/admin" will cause the
// authorization check request to be sent to the authorization service at the path "/check/admin" instead of "/admin".
PathPrefix string `protobuf:"bytes,3,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"`
// If true, the user request will be allowed even if the communication with the authorization service has failed,
// or if the authorization service has returned a HTTP 5xx error.
// Default is false and the request will be rejected with "Forbidden" response.
FailOpen bool `protobuf:"varint,4,opt,name=fail_open,json=failOpen,proto3" json:"fail_open,omitempty"`
// Sets the HTTP status that is returned to the client when there is a network error to the authorization service.
// The default status is "403" (HTTP Forbidden).
StatusOnError string `protobuf:"bytes,5,opt,name=status_on_error,json=statusOnError,proto3" json:"status_on_error,omitempty"`
// DEPRECATED. Use includeRequestHeadersInCheck instead.
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
IncludeHeadersInCheck []string `protobuf:"bytes,6,rep,name=include_headers_in_check,json=includeHeadersInCheck,proto3" json:"include_headers_in_check,omitempty"`
// List of client request headers that should be included in the authorization request sent to the authorization service.
// Note that in addition to the headers specified here following headers are included by default:
// 1. *Host*, *Method*, *Path* and *Content-Length* are automatically sent.
// 2. *Content-Length* will be set to 0 and the request will not have a message body. However, the authorization
// request can include the buffered client request body (controlled by includeRequestBodyInCheck setting),
// consequently the value of Content-Length of the authorization request reflects the size of its payload size.
//
// Exact, prefix and suffix matches are supported (similar to the
// [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule)
// except the presence match):
// - Exact match: "abc" will match on value "abc".
// - Prefix match: "abc*" will match on value "abc" and "abcd".
// - Suffix match: "*abc" will match on value "abc" and "xabc".
IncludeRequestHeadersInCheck []string `protobuf:"bytes,10,rep,name=include_request_headers_in_check,json=includeRequestHeadersInCheck,proto3" json:"include_request_headers_in_check,omitempty"`
// Set of additional fixed headers that should be included in the authorization request sent to the authorization service.
// Key is the header name and value is the header value.
// Note that client request of the same key or headers specified in includeRequestHeadersInCheck will be overridden.
IncludeAdditionalHeadersInCheck map[string]string `protobuf:"bytes,11,rep,name=include_additional_headers_in_check,json=includeAdditionalHeadersInCheck,proto3" json:"include_additional_headers_in_check,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// If set, the client request body will be included in the authorization request sent to the authorization service.
IncludeRequestBodyInCheck *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody `protobuf:"bytes,12,opt,name=include_request_body_in_check,json=includeRequestBodyInCheck,proto3" json:"include_request_body_in_check,omitempty"`
// List of headers from the authorization service that should be added or overridden in the original request and
// forwarded to the upstream when the authorization check result is allowed (HTTP code 200).
// If not specified, the original request will not be modified and forwarded to backend as-is.
// Note, any existing headers will be overridden.
//
// Exact, prefix and suffix matches are supported (similar to the
// [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule)
// except the presence match):
// - Exact match: "abc" will match on value "abc".
// - Prefix match: "abc*" will match on value "abc" and "abcd".
// - Suffix match: "*abc" will match on value "abc" and "xabc".
HeadersToUpstreamOnAllow []string `protobuf:"bytes,7,rep,name=headers_to_upstream_on_allow,json=headersToUpstreamOnAllow,proto3" json:"headers_to_upstream_on_allow,omitempty"`
// List of headers from the authorization service that should be forwarded to downstream when the authorization
// check result is not allowed (HTTP code other than 200).
// If not specified, all the authorization response headers, except *Authority (Host)* will be in the response to
// the downstream.
// When a header is included in this list, *Path*, *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are
// automatically added.
// Note, the body from the authorization service is always included in the response to downstream.
//
// Exact, prefix and suffix matches are supported (similar to the
// [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule)
// except the presence match):
// - Exact match: "abc" will match on value "abc".
// - Prefix match: "abc*" will match on value "abc" and "abcd".
// - Suffix match: "*abc" will match on value "abc" and "xabc".
HeadersToDownstreamOnDeny []string `protobuf:"bytes,8,rep,name=headers_to_downstream_on_deny,json=headersToDownstreamOnDeny,proto3" json:"headers_to_downstream_on_deny,omitempty"`
// List of headers from the authorization service that should be forwarded to downstream when the authorization
// check result is allowed (HTTP code 200).
// If not specified, the original response will not be modified and forwarded to downstream as-is.
// Note, any existing headers will be overridden.
//
// Exact, prefix and suffix matches are supported (similar to the
// [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule)
// except the presence match):
// - Exact match: "abc" will match on value "abc".
// - Prefix match: "abc*" will match on value "abc" and "abcd".
// - Suffix match: "*abc" will match on value "abc" and "xabc".
HeadersToDownstreamOnAllow []string `protobuf:"bytes,13,rep,name=headers_to_downstream_on_allow,json=headersToDownstreamOnAllow,proto3" json:"headers_to_downstream_on_allow,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 1}
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetTimeout() *duration.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetPathPrefix() string {
if x != nil {
return x.PathPrefix
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetFailOpen() bool {
if x != nil {
return x.FailOpen
}
return false
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetStatusOnError() string {
if x != nil {
return x.StatusOnError
}
return ""
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetIncludeHeadersInCheck() []string {
if x != nil {
return x.IncludeHeadersInCheck
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetIncludeRequestHeadersInCheck() []string {
if x != nil {
return x.IncludeRequestHeadersInCheck
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetIncludeAdditionalHeadersInCheck() map[string]string {
if x != nil {
return x.IncludeAdditionalHeadersInCheck
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetIncludeRequestBodyInCheck() *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody {
if x != nil {
return x.IncludeRequestBodyInCheck
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetHeadersToUpstreamOnAllow() []string {
if x != nil {
return x.HeadersToUpstreamOnAllow
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetHeadersToDownstreamOnDeny() []string {
if x != nil {
return x.HeadersToDownstreamOnDeny
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider) GetHeadersToDownstreamOnAllow() []string {
if x != nil {
return x.HeadersToDownstreamOnAllow
}
return nil
}
type MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that implements the Envoy ext_authz gRPC authorization service.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// The maximum duration that the proxy will wait for a response from the provider, this is the timeout for a specific request (default timeout: 600s).
// When this timeout condition is met, the proxy marks the communication to the authorization service as failure.
// In this situation, the response sent back to the client will depend on the configured `failOpen` field.
Timeout *duration.Duration `protobuf:"bytes,5,opt,name=timeout,proto3" json:"timeout,omitempty"`
// If true, the HTTP request or TCP connection will be allowed even if the communication with the authorization service has failed,
// or if the authorization service has returned a HTTP 5xx error.
// Default is false. For HTTP request, it will be rejected with 403 (HTTP Forbidden). For TCP connection, it will be closed immediately.
FailOpen bool `protobuf:"varint,3,opt,name=fail_open,json=failOpen,proto3" json:"fail_open,omitempty"`
// Sets the HTTP status that is returned to the client when there is a network error to the authorization service.
// The default status is "403" (HTTP Forbidden).
StatusOnError string `protobuf:"bytes,4,opt,name=status_on_error,json=statusOnError,proto3" json:"status_on_error,omitempty"`
// If set, the client request body will be included in the authorization request sent to the authorization service.
IncludeRequestBodyInCheck *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody `protobuf:"bytes,6,opt,name=include_request_body_in_check,json=includeRequestBodyInCheck,proto3" json:"include_request_body_in_check,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 2}
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetTimeout() *duration.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetFailOpen() bool {
if x != nil {
return x.FailOpen
}
return false
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetStatusOnError() string {
if x != nil {
return x.StatusOnError
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider) GetIncludeRequestBodyInCheck() *MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody {
if x != nil {
return x.IncludeRequestBodyInCheck
}
return nil
}
// Defines configuration for a Zipkin tracer.
type MeshConfig_ExtensionProvider_ZipkinTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that the Zipkin API.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,3,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
// Optional. A 128 bit trace id will be used in Istio.
// If true, will result in a 64 bit trace id being used.
Enable_64BitTraceId bool `protobuf:"varint,4,opt,name=enable_64bit_trace_id,json=enable64bitTraceId,proto3" json:"enable_64bit_trace_id,omitempty"`
// Optional. Specifies the endpoint of Zipkin API.
// The default value is "/api/v2/spans".
Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_ZipkinTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_ZipkinTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_ZipkinTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_ZipkinTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 3}
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetEnable_64BitTraceId() bool {
if x != nil {
return x.Enable_64BitTraceId
}
return false
}
func (x *MeshConfig_ExtensionProvider_ZipkinTracingProvider) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
// Defines configuration for a Lightstep tracer.
// Note: Lightstep has moved to OpenTelemetry-based integrations. Istio 1.15+
// will generate OpenTelemetry-compatible configuration when using this option.
type MeshConfig_ExtensionProvider_LightstepTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service for the Lightstep collector.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// The Lightstep access token.
AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,4,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_LightstepTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_LightstepTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_LightstepTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_LightstepTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 4}
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetAccessToken() string {
if x != nil {
return x.AccessToken
}
return ""
}
func (x *MeshConfig_ExtensionProvider_LightstepTracingProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
// Defines configuration for a Datadog tracer.
type MeshConfig_ExtensionProvider_DatadogTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service for the Datadog agent.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,3,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_DatadogTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_DatadogTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_DatadogTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_DatadogTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 5}
}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_DatadogTracingProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
// Defines configuration for a SkyWalking tracer.
type MeshConfig_ExtensionProvider_SkyWalkingTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service for the SkyWalking receiver.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "skywalking.default.svc.cluster.local" or "bar/skywalking.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. The SkyWalking OAP access token.
AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_SkyWalkingTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_SkyWalkingTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 6}
}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_SkyWalkingTracingProvider) GetAccessToken() string {
if x != nil {
return x.AccessToken
}
return ""
}
// Defines configuration for Stackdriver.
//
// WARNING: Stackdriver tracing uses OpenCensus configuration under the hood and, as a result, cannot be used
// alongside any OpenCensus provider configuration. This is due to a limitation in the implementation of OpenCensus
// driver in Envoy.
type MeshConfig_ExtensionProvider_StackdriverProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// debug enables trace output to stdout.
// $hide_from_docs
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Debug bool `protobuf:"varint,1,opt,name=debug,proto3" json:"debug,omitempty"`
// The global default max number of attributes per span.
// default is 200.
// $hide_from_docs
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
MaxNumberOfAttributes *wrappers.Int64Value `protobuf:"bytes,2,opt,name=max_number_of_attributes,json=maxNumberOfAttributes,proto3" json:"max_number_of_attributes,omitempty"`
// The global default max number of annotation events per span.
// default is 200.
// $hide_from_docs
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
MaxNumberOfAnnotations *wrappers.Int64Value `protobuf:"bytes,3,opt,name=max_number_of_annotations,json=maxNumberOfAnnotations,proto3" json:"max_number_of_annotations,omitempty"`
// The global default max number of message events per span.
// default is 200.
// $hide_from_docs
//
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
MaxNumberOfMessageEvents *wrappers.Int64Value `protobuf:"bytes,4,opt,name=max_number_of_message_events,json=maxNumberOfMessageEvents,proto3" json:"max_number_of_message_events,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,5,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
// Optional. Controls Stackdriver logging behavior.
Logging *MeshConfig_ExtensionProvider_StackdriverProvider_Logging `protobuf:"bytes,6,opt,name=logging,proto3" json:"logging,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) Reset() {
*x = MeshConfig_ExtensionProvider_StackdriverProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_StackdriverProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_StackdriverProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_StackdriverProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 7}
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetDebug() bool {
if x != nil {
return x.Debug
}
return false
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfAttributes() *wrappers.Int64Value {
if x != nil {
return x.MaxNumberOfAttributes
}
return nil
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfAnnotations() *wrappers.Int64Value {
if x != nil {
return x.MaxNumberOfAnnotations
}
return nil
}
// Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxNumberOfMessageEvents() *wrappers.Int64Value {
if x != nil {
return x.MaxNumberOfMessageEvents
}
return nil
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider) GetLogging() *MeshConfig_ExtensionProvider_StackdriverProvider_Logging {
if x != nil {
return x.Logging
}
return nil
}
// Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.
//
// WARNING: OpenCensusAgentTracingProviders should be used with extreme care. Configuration of
// OpenCensus providers CANNOT be changed during the course of proxy's lifetime due to a limitation
// in the implementation of OpenCensus driver in Envoy. This means only a single provider configuration
// may be used for OpenCensus at any given time for a proxy or group of proxies AND that any change to the provider
// configuration MUST be accompanied by a restart of all proxies that will use that configuration.
//
// NOTE: Stackdriver tracing uses OpenCensus configuration under the hood and, as a result, cannot be used
// alongside OpenCensus provider configuration.
type MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service for the OpenCensusAgent.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Specifies the set of context propagation headers used for distributed
// tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified,
// the proxy will attempt to read each header for each request and will
// write all headers.
Context []MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext `protobuf:"varint,3,rep,packed,name=context,proto3,enum=istio.mesh.v1alpha1.MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext" json:"context,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,4,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 8}
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetContext() []MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext {
if x != nil {
return x.Context
}
return nil
}
func (x *MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
type MeshConfig_ExtensionProvider_PrometheusMetricsProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MeshConfig_ExtensionProvider_PrometheusMetricsProvider) Reset() {
*x = MeshConfig_ExtensionProvider_PrometheusMetricsProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_PrometheusMetricsProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_PrometheusMetricsProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_PrometheusMetricsProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_PrometheusMetricsProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_PrometheusMetricsProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 9}
}
// Defines configuration for Envoy-based access logging that writes to
// local files (and/or standard streams).
type MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Path to a local file to write the access log entries.
// This may be used to write to streams, via `/dev/stderr` and `/dev/stdout`
// If unspecified, defaults to `/dev/stdout`.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// Optional. Allows overriding of the default access log format.
LogFormat *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat `protobuf:"bytes,2,opt,name=log_format,json=logFormat,proto3" json:"log_format,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 10}
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider) GetLogFormat() *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat {
if x != nil {
return x.LogFormat
}
return nil
}
// Defines configuration for an Envoy [Access Logging Service](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/grpc/v3/als.proto#grpc-access-log-service-als)
// integration for HTTP traffic.
type MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. The friendly name of the access log.
// Defaults:
// - "http_envoy_accesslog"
// - "listener_envoy_accesslog"
LogName string `protobuf:"bytes,3,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
// Optional. Additional filter state objects to log.
FilterStateObjectsToLog []string `protobuf:"bytes,4,rep,name=filter_state_objects_to_log,json=filterStateObjectsToLog,proto3" json:"filter_state_objects_to_log,omitempty"`
// Optional. Additional request headers to log.
AdditionalRequestHeadersToLog []string `protobuf:"bytes,5,rep,name=additional_request_headers_to_log,json=additionalRequestHeadersToLog,proto3" json:"additional_request_headers_to_log,omitempty"`
// Optional. Additional response headers to log.
AdditionalResponseHeadersToLog []string `protobuf:"bytes,6,rep,name=additional_response_headers_to_log,json=additionalResponseHeadersToLog,proto3" json:"additional_response_headers_to_log,omitempty"`
// Optional. Additional response trailers to log.
AdditionalResponseTrailersToLog []string `protobuf:"bytes,7,rep,name=additional_response_trailers_to_log,json=additionalResponseTrailersToLog,proto3" json:"additional_response_trailers_to_log,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 11}
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetLogName() string {
if x != nil {
return x.LogName
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetFilterStateObjectsToLog() []string {
if x != nil {
return x.FilterStateObjectsToLog
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetAdditionalRequestHeadersToLog() []string {
if x != nil {
return x.AdditionalRequestHeadersToLog
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetAdditionalResponseHeadersToLog() []string {
if x != nil {
return x.AdditionalResponseHeadersToLog
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider) GetAdditionalResponseTrailersToLog() []string {
if x != nil {
return x.AdditionalResponseTrailersToLog
}
return nil
}
// Defines configuration for an Envoy [Access Logging Service](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/grpc/v3/als.proto#grpc-access-log-service-als)
// integration for TCP traffic.
type MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. The friendly name of the access log.
// Defaults:
// - "tcp_envoy_accesslog"
// - "listener_envoy_accesslog"
LogName string `protobuf:"bytes,3,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
// Optional. Additional filter state objects to log.
FilterStateObjectsToLog []string `protobuf:"bytes,4,rep,name=filter_state_objects_to_log,json=filterStateObjectsToLog,proto3" json:"filter_state_objects_to_log,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 12}
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) GetLogName() string {
if x != nil {
return x.LogName
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider) GetFilterStateObjectsToLog() []string {
if x != nil {
return x.FilterStateObjectsToLog
}
return nil
}
// Defines configuration for an Envoy [OpenTelemetry (gRPC) Access Log](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/open_telemetry/v3/logs_service.proto)
type MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. The friendly name of the access log.
// Defaults:
// - "otel_envoy_accesslog"
LogName string `protobuf:"bytes,3,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
// Optional. Format for the proxy access log
// Empty value results in proxy's default access log format, following Envoy access logging formatting.
LogFormat *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat `protobuf:"bytes,4,opt,name=log_format,json=logFormat,proto3" json:"log_format,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 13}
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) GetLogName() string {
if x != nil {
return x.LogName
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider) GetLogFormat() *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat {
if x != nil {
return x.LogFormat
}
return nil
}
// Defines configuration for an OpenTelemetry tracing backend. Istio 1.16.1 or higher is needed.
type MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the OpenTelemetry endpoint that will receive OTLP traces.
// The format is `[<Namespace>/]<Hostname>`. The specification of `<Namespace>` is required only when it is insufficient
// to unambiguously resolve a service in the service registry. The `<Hostname>` is a fully qualified host name of a
// service defined by the Kubernetes service or ServiceEntry.
//
// Example: "otlp.default.svc.cluster.local" or "bar/otlp.example.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Optional. Controls the overall path length allowed in a reported span.
// NOTE: currently only controls max length of the path tag.
MaxTagLength uint32 `protobuf:"varint,3,opt,name=max_tag_length,json=maxTagLength,proto3" json:"max_tag_length,omitempty"`
// Optional. Specifies the configuration for exporting OTLP traces via HTTP.
// When empty, traces will be exported via gRPC.
//
// The following example shows how to configure the OpenTelemetry ExtensionProvider to export via HTTP:
//
// 1. Add/change the OpenTelemetry extension provider in `MeshConfig`
// ```yaml
// - name: otel-tracing
// opentelemetry:
// port: 443
// service: my.olly-backend.com
// http:
// path: "/api/otlp/traces"
// timeout: 10s
// headers:
// - name: "my-custom-header"
// value: "some value"
//
// ```
//
// 2. Deploy a `ServiceEntry` for the observability back-end
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: ServiceEntry
// metadata:
//
// name: my-olly-backend
//
// spec:
//
// hosts:
// - my.olly-backend.com
// ports:
// - number: 443
// name: https-port
// protocol: HTTPS
// resolution: DNS
// location: MESH_EXTERNAL
//
// ---
// apiVersion: networking.istio.io/v1alpha3
// kind: DestinationRule
// metadata:
//
// name: my-olly-backend
//
// spec:
//
// host: my.olly-backend.com
// trafficPolicy:
// portLevelSettings:
// - port:
// number: 443
// tls:
// mode: SIMPLE
//
// ```
Http *MeshConfig_ExtensionProvider_HttpService `protobuf:"bytes,4,opt,name=http,proto3" json:"http,omitempty"`
// Optional. Specifies the configuration for exporting OTLP traces via GRPC.
// When empty, traces will check whether HTTP is set.
// If not, traces will use default GRPC configurations.
//
// The following example shows how to configure the OpenTelemetry ExtensionProvider to export via GRPC:
//
// 1. Add/change the OpenTelemetry extension provider in `MeshConfig`
// ```yaml
// - name: opentelemetry
// opentelemetry:
// port: 8090
// service: tracing.example.com
// grpc:
// timeout: 10s
// initialMetadata:
// - name: "Authentication"
// value: "token-xxxxx"
//
// ```
//
// 2. Deploy a `ServiceEntry` for the observability back-end
// ```yaml
// apiVersion: networking.istio.io/v1alpha3
// kind: ServiceEntry
// metadata:
//
// name: tracing-grpc
//
// spec:
//
// hosts:
// - tracing.example.com
// ports:
// - number: 8090
// name: grpc-port
// protocol: GRPC
// resolution: DNS
// location: MESH_EXTERNAL
//
// ```
Grpc *MeshConfig_ExtensionProvider_GrpcService `protobuf:"bytes,7,opt,name=grpc,proto3" json:"grpc,omitempty"`
// Optional. Specifies [Resource Detectors](https://opentelemetry.io/docs/specs/otel/resource/sdk/)
// to be used by the OpenTelemetry Tracer. When multiple resources are provided, they are merged
// according to the OpenTelemetry [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#merge).
//
// The following example shows how to configure the Environment Resource Detector, that will
// read the attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES`:
//
// ```yaml
// - name: otel-tracing
// opentelemetry:
// port: 443
// service: my.olly-backend.com
// resourceDetectors:
// environment: {}
//
// ```
ResourceDetectors *MeshConfig_ExtensionProvider_ResourceDetectors `protobuf:"bytes,5,opt,name=resource_detectors,json=resourceDetectors,proto3" json:"resource_detectors,omitempty"`
// Optional. Configure a [Sampler](https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampler)
// to be used by the OpenTelemetry Tracer.
//
// Types that are assignable to Sampling:
//
// *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_
Sampling isMeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_Sampling `protobuf_oneof:"sampling"`
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) Reset() {
*x = MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 14}
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetMaxTagLength() uint32 {
if x != nil {
return x.MaxTagLength
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetHttp() *MeshConfig_ExtensionProvider_HttpService {
if x != nil {
return x.Http
}
return nil
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetGrpc() *MeshConfig_ExtensionProvider_GrpcService {
if x != nil {
return x.Grpc
}
return nil
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetResourceDetectors() *MeshConfig_ExtensionProvider_ResourceDetectors {
if x != nil {
return x.ResourceDetectors
}
return nil
}
func (m *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetSampling() isMeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_Sampling {
if m != nil {
return m.Sampling
}
return nil
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider) GetDynatraceSampler() *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler {
if x, ok := x.GetSampling().(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_); ok {
return x.DynatraceSampler
}
return nil
}
type isMeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_Sampling interface {
isMeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_Sampling()
}
type MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_ struct {
// The Dynatrace adaptive traffic management (ATM) sampler.
//
// Example configuration:
//
// ```yaml
// - name: otel-tracing
// opentelemetry:
// port: 443
// service: "{your-environment-id}.live.dynatrace.com"
// http:
// path: "/api/v2/otlp/v1/traces"
// timeout: 10s
// headers:
// - name: "Authorization"
// value: "Api-Token dt0c01."
// resourceDetectors:
// dynatrace: {}
// dynatraceSampler:
// tenant: "{your-environment-id}"
// clusterId: 1234
DynatraceSampler *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler `protobuf:"bytes,6,opt,name=dynatrace_sampler,json=dynatraceSampler,proto3,oneof"`
}
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_) isMeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_Sampling() {
}
// Defines configuration for an HTTP service that can be used by an Extension Provider.
// that does communication via HTTP.
type MeshConfig_ExtensionProvider_HttpService struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the path on the service.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// Optional. Specifies the timeout for the HTTP request.
// If not specified, the default is 3s.
Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
// Optional. Allows specifying custom HTTP headers that will be added
// to each HTTP request sent.
Headers []*MeshConfig_ExtensionProvider_HttpHeader `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_HttpService) Reset() {
*x = MeshConfig_ExtensionProvider_HttpService{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_HttpService) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_HttpService) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_HttpService) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_HttpService.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_HttpService) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 15}
}
func (x *MeshConfig_ExtensionProvider_HttpService) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *MeshConfig_ExtensionProvider_HttpService) GetTimeout() *duration.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *MeshConfig_ExtensionProvider_HttpService) GetHeaders() []*MeshConfig_ExtensionProvider_HttpHeader {
if x != nil {
return x.Headers
}
return nil
}
type MeshConfig_ExtensionProvider_HttpHeader struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. The HTTP header name.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// REQUIRED. The HTTP header value.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_HttpHeader) Reset() {
*x = MeshConfig_ExtensionProvider_HttpHeader{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_HttpHeader) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_HttpHeader) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_HttpHeader) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_HttpHeader.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_HttpHeader) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 16}
}
func (x *MeshConfig_ExtensionProvider_HttpHeader) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *MeshConfig_ExtensionProvider_HttpHeader) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
type MeshConfig_ExtensionProvider_ResourceDetectors struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Environment *MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector `protobuf:"bytes,1,opt,name=environment,proto3" json:"environment,omitempty"`
Dynatrace *MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector `protobuf:"bytes,2,opt,name=dynatrace,proto3" json:"dynatrace,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors) Reset() {
*x = MeshConfig_ExtensionProvider_ResourceDetectors{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_ResourceDetectors) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_ResourceDetectors.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_ResourceDetectors) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 17}
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors) GetEnvironment() *MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector {
if x != nil {
return x.Environment
}
return nil
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors) GetDynatrace() *MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector {
if x != nil {
return x.Dynatrace
}
return nil
}
// Defines configuration for an GRPC service that can be used by an Extension Provider.
// that does communication via GRPC.
type MeshConfig_ExtensionProvider_GrpcService struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional. Specifies the timeout for the GRPC request.
Timeout *duration.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"`
// Optional. Additional metadata to include in streams initiated to the GrpcService. This can be used for
// scenarios in which additional ad hoc authorization headers (e.g. “x-foo-bar: baz-key“) are to
// be injected.
InitialMetadata []*MeshConfig_ExtensionProvider_HttpHeader `protobuf:"bytes,2,rep,name=initial_metadata,json=initialMetadata,proto3" json:"initial_metadata,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_GrpcService) Reset() {
*x = MeshConfig_ExtensionProvider_GrpcService{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_GrpcService) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_GrpcService) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_GrpcService) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_GrpcService.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_GrpcService) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 18}
}
func (x *MeshConfig_ExtensionProvider_GrpcService) GetTimeout() *duration.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *MeshConfig_ExtensionProvider_GrpcService) GetInitialMetadata() []*MeshConfig_ExtensionProvider_HttpHeader {
if x != nil {
return x.InitialMetadata
}
return nil
}
// The following example configures zipkin-intranet provider for cluster-a, and cluster-c
// opentelemetry provider for cluster-b, zipkin provider for the rest.
// ```yaml
// aggregate:
//
// defaultProvider:
// name: zipkin
// uniqueProviders:
// - provider:
// name: zipkin-intranet
// clusters:
// - id: cluster-a
// - id: cluster-c
// - provider:
// name: opentelemetry
// clusters:
// - id: cluster-b
// - id: cluster-c
//
// ```
//
// NOTE: If a cluster refered different providers, the first provider refered will be used.
type MeshConfig_ExtensionProvider_AggregateProvider struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. The default provider to use when no unique provider is matched.
DefaultProvider *v1alpha1.ProviderRef `protobuf:"bytes,1,opt,name=default_provider,json=defaultProvider,proto3" json:"default_provider,omitempty"`
// Optional. List of unique providers that override the default provider.
UniqueProviders []*MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef `protobuf:"bytes,2,rep,name=unique_providers,json=uniqueProviders,proto3" json:"unique_providers,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider) Reset() {
*x = MeshConfig_ExtensionProvider_AggregateProvider{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_AggregateProvider) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_AggregateProvider) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_AggregateProvider.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_AggregateProvider) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 19}
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider) GetDefaultProvider() *v1alpha1.ProviderRef {
if x != nil {
return x.DefaultProvider
}
return nil
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider) GetUniqueProviders() []*MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef {
if x != nil {
return x.UniqueProviders
}
return nil
}
type MeshConfig_ExtensionProvider_StackdriverProvider_Logging struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Collection of tag names and tag expressions to include in the log
// entry. Conflicts are resolved by the tag name by overriding previously
// supplied values.
//
// Example:
//
// labels:
// path: request.url_path
// foo: request.headers['x-foo']
Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider_Logging) Reset() {
*x = MeshConfig_ExtensionProvider_StackdriverProvider_Logging{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider_Logging) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_StackdriverProvider_Logging) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider_Logging) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_StackdriverProvider_Logging.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_StackdriverProvider_Logging) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 7, 0}
}
func (x *MeshConfig_ExtensionProvider_StackdriverProvider_Logging) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
type MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to LogFormat:
//
// *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Text
// *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Labels
LogFormat isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat `protobuf_oneof:"log_format"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 10, 0}
}
func (m *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) GetLogFormat() isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat {
if m != nil {
return m.LogFormat
}
return nil
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) GetText() string {
if x, ok := x.GetLogFormat().(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Text); ok {
return x.Text
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat) GetLabels() *_struct.Struct {
if x, ok := x.GetLogFormat().(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Labels); ok {
return x.Labels
}
return nil
}
type isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat interface {
isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat()
}
type MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Text struct {
// Textual format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) may be
// used in the format. The [format string documentation](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-strings)
// provides more information.
//
// NOTE: Istio will insert a newline ('\n') on all formats (if missing).
//
// Example: `text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"`
Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
}
type MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Labels struct {
// JSON structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators)
// can be used as values for fields within the Struct. Values are rendered
// as strings, numbers, or boolean values, as appropriate
// (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is
// supported for some command operators (e.g. `FILTER_STATE` or `DYNAMIC_METADATA`).
// Use `labels: {}` for default envoy JSON log format.
//
// Example:
// ```
// labels:
//
// status: "%RESPONSE_CODE%"
// message: "%LOCAL_REPLY_BODY%"
//
// ```
Labels *_struct.Struct `protobuf:"bytes,2,opt,name=labels,proto3,oneof"`
}
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Text) isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat() {
}
func (*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Labels) isMeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_LogFormat() {
}
type MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Textual format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) may be
// used in the format. The [format string documentation](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-strings)
// provides more information.
// Alias to `body` field in [Open Telemetry](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/open_telemetry/v3/logs_service.proto)
// Example: `text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"`
Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
// Optional. Additional attributes that describe the specific event occurrence.
// Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators)
// can be used as values for fields within the Struct. Values are rendered
// as strings, numbers, or boolean values, as appropriate
// (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is
// supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA).
// Alias to `attributes` field in [Open Telemetry](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/open_telemetry/v3/logs_service.proto)
//
// Example:
// ```
// labels:
//
// status: "%RESPONSE_CODE%"
// message: "%LOCAL_REPLY_BODY%"
//
// ```
Labels *_struct.Struct `protobuf:"bytes,2,opt,name=labels,proto3" json:"labels,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) Reset() {
*x = MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 13, 0}
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) GetText() string {
if x != nil {
return x.Text
}
return ""
}
func (x *MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat) GetLabels() *_struct.Struct {
if x != nil {
return x.Labels
}
return nil
}
type MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. The Dynatrace customer's tenant identifier.
//
// The value can be obtained from the Istio deployment page in Dynatrace.
Tenant string `protobuf:"bytes,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
// REQUIRED. The identifier of the cluster in the Dynatrace platform.
// The cluster here is Dynatrace-specific concept and not related to the cluster concept in Istio/Envoy.
//
// The value can be obtained from the Istio deployment page in Dynatrace.
ClusterId int32 `protobuf:"varint,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
// Optional. Number of sampled spans per minute to be used
// when the adaptive value cannot be obtained from the Dynatrace API.
//
// A default value of `1000` is used when:
//
// - `rootSpansPerMinute` is unset
// - `rootSpansPerMinute` is set to 0
RootSpansPerMinute uint32 `protobuf:"varint,3,opt,name=root_spans_per_minute,json=rootSpansPerMinute,proto3" json:"root_spans_per_minute,omitempty"`
// Optional. Dynatrace HTTP API to obtain sampling configuration.
//
// When not provided, the Dynatrace Sampler will re-use the configuration from the OpenTelemetryTracingProvider HTTP Exporter
// (`service`, `port` and `http`), including the access token.
HttpService *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi `protobuf:"bytes,4,opt,name=http_service,json=httpService,proto3" json:"http_service,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) Reset() {
*x = MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 14, 0}
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) GetTenant() string {
if x != nil {
return x.Tenant
}
return ""
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) GetClusterId() int32 {
if x != nil {
return x.ClusterId
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) GetRootSpansPerMinute() uint32 {
if x != nil {
return x.RootSpansPerMinute
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler) GetHttpService() *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi {
if x != nil {
return x.HttpService
}
return nil
}
type MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. Specifies the Dynatrace environment to obtain the sampling configuration.
// The format is `<Hostname>`, where `<Hostname>` is the fully qualified Dynatrace environment
// host name defined in the ServiceEntry.
//
// Example: "{your-environment-id}.live.dynatrace.com".
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// REQUIRED. Specifies the port of the service.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// REQUIRED. Specifies sampling configuration URI.
Http *MeshConfig_ExtensionProvider_HttpService `protobuf:"bytes,3,opt,name=http,proto3" json:"http,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) Reset() {
*x = MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) ProtoMessage() {
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[41]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 14, 0, 0}
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi) GetHttp() *MeshConfig_ExtensionProvider_HttpService {
if x != nil {
return x.Http
}
return nil
}
// OpenTelemetry Environment Resource Detector.
// The resource detector reads attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES`
// and adds them to the OpenTelemetry resource.
//
// See: [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#specifying-resource-information-via-an-environment-variable)
type MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector) Reset() {
*x = MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[42]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 17, 0}
}
// Dynatrace Resource Detector.
// The resource detector reads from the Dynatrace enrichment files
// and adds host/process related attributes to the OpenTelemetry resource.
//
// See: [Enrich ingested data with Dynatrace-specific dimensions](https://docs.dynatrace.com/docs/shortlink/enrichment-files)
type MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector) Reset() {
*x = MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[43]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 17, 1}
}
type MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRED. The unique provider to use when a proxy is matched.
Provider *v1alpha1.ProviderRef `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
// Optional. List of clusters that will use the provider.
Clusters []*MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef `protobuf:"bytes,2,rep,name=clusters,proto3" json:"clusters,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) Reset() {
*x = MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[44]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 19, 0}
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) GetProvider() *v1alpha1.ProviderRef {
if x != nil {
return x.Provider
}
return nil
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef) GetClusters() []*MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef {
if x != nil {
return x.Clusters
}
return nil
}
type MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// REQUIRE. Id of the cluster, will be used as proxy selector.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Optional. Name of the cluster, won't be used as selector currently, just for more readability.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// Optional. Region of the cluster, won't be used as selector currently, just for more readability.
Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) Reset() {
*x = MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef{}
mi := &file_mesh_v1alpha1_config_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) ProtoMessage() {}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) ProtoReflect() protoreflect.Message {
mi := &file_mesh_v1alpha1_config_proto_msgTypes[45]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef.ProtoReflect.Descriptor instead.
func (*MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) Descriptor() ([]byte, []int) {
return file_mesh_v1alpha1_config_proto_rawDescGZIP(), []int{0, 5, 19, 1}
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef) GetRegion() string {
if x != nil {
return x.Region
}
return ""
}
var File_mesh_v1alpha1_config_proto protoreflect.FileDescriptor
var file_mesh_v1alpha1_config_proto_rawDesc = []byte{
0x0a, 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, 0x12, 0x13, 0x69, 0x73,
0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 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, 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, 0x2a, 0x6e, 0x65, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2f,
0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69,
0x6e, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2f, 0x76, 0x69, 0x72, 0x74,
0x75, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x22, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61,
0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x6c, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x6c, 0x69,
0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74,
0x12, 0x39, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e,
0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x41, 0x20,
0x01, 0x28, 0x05, 0x52, 0x16, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e,
0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x70,
0x72, 0x6f, 0x78, 0x79, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x74, 0x74, 0x70, 0x50,
0x6f, 0x72, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x57, 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
0x12, 0x6f, 0x0a, 0x0d, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76,
0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
0x68, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x43, 0x50, 0x53, 0x65,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x54, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c,
0x69, 0x76, 0x65, 0x52, 0x0c, 0x74, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76,
0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6c, 0x61,
0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73,
0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73,
0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
0x6d, 0x0a, 0x17, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x35, 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, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
0x6c, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x15, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x29,
0x0a, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73,
0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67,
0x12, 0x26, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x66,
0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x4c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x18, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x46, 0x6f,
0x72, 0x6d, 0x61, 0x74, 0x12, 0x61, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c,
0x6f, 0x67, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x31, 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, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x63, 0x6f,
0x64, 0x69, 0x6e, 0x67, 0x52, 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x45,
0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c,
0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08,
0x52, 0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x41, 0x63, 0x63,
0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a,
0x1a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x6c,
0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x38, 0x20, 0x01, 0x28,
0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x4c,
0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e,
0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x6d, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f,
0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x11,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 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, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72,
0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x15, 0x6f, 0x75, 0x74,
0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x12, 0x6a, 0x0a, 0x16, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72,
0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x42, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x34, 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, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66,
0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x14, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e,
0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x48,
0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d,
0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x18, 0x2b, 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, 0x75, 0x74, 0x6f, 0x4d, 0x74, 0x6c, 0x73, 0x12, 0x21,
0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69,
0x6e, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69,
0x6e, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x09, 0x52,
0x12, 0x74, 0x72, 0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x6c, 0x69, 0x61,
0x73, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 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, 0x2e, 0x43, 0x65,
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63,
0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a,
0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x6f, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09,
0x52, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x12, 0x48, 0x0a, 0x21, 0x64, 0x65, 0x66, 0x61,
0x75, 0x6c, 0x74, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x6f, 0x18, 0x20, 0x20,
0x03, 0x28, 0x09, 0x52, 0x1d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x72, 0x74,
0x75, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
0x54, 0x6f, 0x12, 0x4a, 0x0a, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65,
0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x6f, 0x18, 0x21, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x12, 0x25,
0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65,
0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74,
0x79, 0x5f, 0x6c, 0x62, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f,
0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x33, 0x2e, 0x4c,
0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e,
0x63, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x11, 0x6c, 0x6f, 0x63, 0x61,
0x6c, 0x69, 0x74, 0x79, 0x4c, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a,
0x10, 0x64, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74,
0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x6e, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61,
0x74, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x68, 0x32, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 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, 0x2e, 0x48,
0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f,
0x68, 0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
0x39, 0x0a, 0x19, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74,
0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2c, 0x20, 0x01,
0x28, 0x09, 0x52, 0x16, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74,
0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x6f, 0x75,
0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17,
0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53,
0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x69,
0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
0x68, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42,
0x02, 0x18, 0x01, 0x52, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
0x73, 0x12, 0x5a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 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, 0x2e, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0f, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x52, 0x0a,
0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65,
0x75, 0x73, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x18, 0x33, 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, 0x15, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x4d, 0x65, 0x72, 0x67,
0x65, 0x12, 0x5f, 0x0a, 0x1c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x65, 0x72, 0x74,
0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x18, 0x36, 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, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43,
0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x12, 0x32, 0x0a, 0x02, 0x63, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
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, 0x2e,
0x43, 0x41, 0x52, 0x02, 0x63, 0x61, 0x12, 0x62, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x39, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x11, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18,
0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x13, 0x64, 0x69, 0x73,
0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73,
0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d,
0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x62,
0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63,
0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x65,
0x0a, 0x12, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x2e, 0x50, 0x72, 0x6f, 0x78,
0x79, 0x50, 0x61, 0x74, 0x68, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x11, 0x70, 0x61, 0x74, 0x68, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f,
0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c,
0x70, 0x68, 0x61, 0x33, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, 0x16,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x74, 0x72, 0x79,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x46, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6d,
0x54, 0x4c, 0x53, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x68, 0x4d, 0x54, 0x4c, 0x53, 0x12, 0x4c,
0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x40,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
0x0b, 0x74, 0x6c, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0xad, 0x01, 0x0a,
0x15, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4e, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 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, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72,
0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65,
0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x11,
0x0a, 0x0d, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10,
0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x4e, 0x59, 0x10, 0x01,
0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x2a, 0x14, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x5f,
0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x1a, 0x8d, 0x01, 0x0a,
0x14, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x39, 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, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x66,
0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04,
0x6d, 0x6f, 0x64, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b,
0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x00, 0x12, 0x0d, 0x0a,
0x09, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x48, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x1a, 0xaf, 0x01, 0x0a,
0x0f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61,
0x12, 0x12, 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
0x03, 0x70, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x62,
0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x0f, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55,
0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65,
0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x53, 0x69,
0x67, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x64,
0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72,
0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x63, 0x65,
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xae,
0x01, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
0x67, 0x73, 0x12, 0x54, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 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, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08,
0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x1a, 0x2f,
0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a,
0xd4, 0x01, 0x0a, 0x02, 0x43, 0x41, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x12, 0x4f, 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
0x61, 0x33, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74, 0x74,
0x69, 0x6e, 0x67, 0x73, 0x52, 0x0b, 0x74, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x73, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x64, 0x5f,
0x73, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x74, 0x69,
0x6f, 0x64, 0x53, 0x69, 0x64, 0x65, 0x1a, 0xf9, 0x40, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x8b, 0x01, 0x0a, 0x14, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x61,
0x75, 0x74, 0x68, 0x7a, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x58, 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,
0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x74, 0x74,
0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6e, 0x76,
0x6f, 0x79, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x48, 0x74, 0x74, 0x70, 0x12, 0x8b,
0x01, 0x0a, 0x14, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x75, 0x74,
0x68, 0x7a, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 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, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x75,
0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x70, 0x63, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6e, 0x76, 0x6f, 0x79,
0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x47, 0x72, 0x70, 0x63, 0x12, 0x61, 0x0a, 0x06,
0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 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, 0x2e, 0x45, 0x78,
0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e,
0x5a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x7a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x12,
0x6e, 0x0a, 0x09, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x65, 0x70, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x4a, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x65, 0x70, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x02,
0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x65, 0x70, 0x12,
0x64, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x48, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x54, 0x72, 0x61, 0x63, 0x69,
0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x64, 0x61,
0x74, 0x61, 0x64, 0x6f, 0x67, 0x12, 0x69, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72,
0x69, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 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, 0x2e, 0x45, 0x78, 0x74, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74,
0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
0x12, 0x76, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x08,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73,
0x75, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x70,
0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x6d, 0x0a, 0x0a, 0x73, 0x6b, 0x79, 0x77,
0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 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, 0x2e, 0x45, 0x78,
0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e,
0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x6b, 0x79,
0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x76, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x74,
0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e,
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, 0x2e,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00,
0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12,
0x6d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x4b, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75,
0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x12, 0x81,
0x01, 0x0a, 0x15, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c,
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, 0x2e,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73,
0x73, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12,
0x65, 0x6e, 0x76, 0x6f, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c,
0x6f, 0x67, 0x12, 0x74, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x68, 0x74, 0x74, 0x70,
0x5f, 0x61, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 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, 0x2e, 0x45, 0x78, 0x74, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x6e,
0x76, 0x6f, 0x79, 0x48, 0x74, 0x74, 0x70, 0x47, 0x72, 0x70, 0x63, 0x56, 0x33, 0x4c, 0x6f, 0x67,
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x6f,
0x79, 0x48, 0x74, 0x74, 0x70, 0x41, 0x6c, 0x73, 0x12, 0x71, 0x0a, 0x0d, 0x65, 0x6e, 0x76, 0x6f,
0x79, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x61, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x4b, 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,
0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x54, 0x63, 0x70, 0x47, 0x72, 0x70, 0x63, 0x56,
0x33, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b,
0x65, 0x6e, 0x76, 0x6f, 0x79, 0x54, 0x63, 0x70, 0x41, 0x6c, 0x73, 0x12, 0x77, 0x0a, 0x0e, 0x65,
0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x6f, 0x74, 0x65, 0x6c, 0x5f, 0x61, 0x6c, 0x73, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x4f, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x4f, 0x70, 0x65, 0x6e,
0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x4f, 0x74, 0x65,
0x6c, 0x41, 0x6c, 0x73, 0x12, 0x64, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,
0x65, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x67, 0x67, 0x72,
0x65, 0x67, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52,
0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0xab, 0x01, 0x0a, 0x25, 0x45,
0x6e, 0x76, 0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x68,
0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x42, 0x6f, 0x64, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73,
0x12, 0x32, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61,
0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x61, 0x73, 0x5f,
0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x63,
0x6b, 0x41, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0xfa, 0x07, 0x0a, 0x26, 0x45, 0x6e, 0x76,
0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72,
0x74, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70,
0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74,
0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x5f,
0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c,
0x4f, 0x70, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6f,
0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x18,
0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f,
0x69, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02,
0x18, 0x01, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
0x72, 0x73, 0x49, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x46, 0x0a, 0x20, 0x69, 0x6e, 0x63,
0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61,
0x64, 0x65, 0x72, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0a, 0x20,
0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x43, 0x68, 0x65, 0x63,
0x6b, 0x12, 0xcb, 0x01, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x64,
0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x7d, 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,
0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x74, 0x74,
0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64,
0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x65, 0x61, 0x64, 0x65,
0x72, 0x73, 0x49, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1f,
0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
0x6c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12,
0x99, 0x01, 0x0a, 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63,
0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79,
0x52, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x42, 0x6f, 0x64, 0x79, 0x49, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x3e, 0x0a, 0x1c, 0x68,
0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65,
0x61, 0x6d, 0x5f, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x03, 0x28,
0x09, 0x52, 0x18, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x55, 0x70, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x4f, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x40, 0x0a, 0x1d, 0x68,
0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x79, 0x18, 0x08, 0x20, 0x03,
0x28, 0x09, 0x52, 0x19, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x44, 0x6f, 0x77,
0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x6e, 0x44, 0x65, 0x6e, 0x79, 0x12, 0x42, 0x0a,
0x1e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x6f, 0x77, 0x6e,
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18,
0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f,
0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x6e, 0x41, 0x6c, 0x6c, 0x6f,
0x77, 0x1a, 0x52, 0x0a, 0x24, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x64, 0x64, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xec, 0x02, 0x0a, 0x26, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x45,
0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f,
0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33,
0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x4f, 0x70, 0x65, 0x6e,
0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x99, 0x01, 0x0a, 0x1d, 0x69, 0x6e, 0x63,
0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64,
0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x57, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75,
0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x49, 0x6e, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x1a, 0xb2, 0x01, 0x0a, 0x15, 0x5a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18,
0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e,
0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x36, 0x34, 0x62,
0x69, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x36, 0x34, 0x62, 0x69, 0x74, 0x54, 0x72,
0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x91, 0x01, 0x0a, 0x18, 0x4c, 0x69,
0x67, 0x68, 0x74, 0x73, 0x74, 0x65, 0x70, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74,
0x61, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0c, 0x6d, 0x61, 0x78, 0x54, 0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x6c, 0x0a,
0x16, 0x44, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x67,
0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d,
0x61, 0x78, 0x54, 0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x6c, 0x0a, 0x19, 0x53,
0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67,
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x8f, 0x05, 0x0a, 0x13, 0x53, 0x74,
0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x12, 0x18, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x58, 0x0a, 0x18, 0x6d,
0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15,
0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x5f, 0x0a, 0x1c, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f,
0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x4f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x6c, 0x65,
0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54,
0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x67,
0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61,
0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
0x67, 0x1a, 0xb7, 0x01, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x71, 0x0a,
0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x59, 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, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x61, 0x62,
0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xd4, 0x02, 0x0a, 0x1e,
0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18,
0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x77, 0x0a, 0x07,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x5d, 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, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74,
0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e,
0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x67,
0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d,
0x61, 0x78, 0x54, 0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x65, 0x0a, 0x0c, 0x54,
0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55,
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11,
0x57, 0x33, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x58,
0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x42, 0x49, 0x4e, 0x10,
0x02, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45,
0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x58, 0x54, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x42, 0x33,
0x10, 0x04, 0x1a, 0x1b, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a,
0x8b, 0x02, 0x0a, 0x1a, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63,
0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
0x74, 0x68, 0x12, 0x75, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x56, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x46,
0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x09,
0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0x62, 0x0a, 0x09, 0x4c, 0x6f, 0x67,
0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x31, 0x0a, 0x06,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42,
0x0c, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0x87, 0x03,
0x0a, 0x1a, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x48, 0x74, 0x74, 0x70, 0x47, 0x72, 0x70, 0x63, 0x56,
0x33, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f,
0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f,
0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x1b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f,
0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x74, 0x6f,
0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x66, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x6f,
0x4c, 0x6f, 0x67, 0x12, 0x48, 0x0a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1d,
0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x12, 0x4a, 0x0a,
0x22, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f,
0x6c, 0x6f, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61,
0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x12, 0x4c, 0x0a, 0x23, 0x61, 0x64, 0x64,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x5f, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x67,
0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65,
0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x1a, 0xa2, 0x01, 0x0a, 0x19, 0x45, 0x6e, 0x76, 0x6f,
0x79, 0x54, 0x63, 0x70, 0x47, 0x72, 0x70, 0x63, 0x56, 0x33, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70,
0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c,
0x0a, 0x1b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6f,
0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x04, 0x20,
0x03, 0x28, 0x09, 0x52, 0x17, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65,
0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x1a, 0xb4, 0x02, 0x0a,
0x1d, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65,
0x74, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18,
0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08,
0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x6c, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x78, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x5f, 0x66,
0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 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, 0x2e, 0x45, 0x78, 0x74,
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45,
0x6e, 0x76, 0x6f, 0x79, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
0x79, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67,
0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61,
0x74, 0x1a, 0x50, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65,
0x78, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x62,
0x65, 0x6c, 0x73, 0x1a, 0xcc, 0x07, 0x0a, 0x1c, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65,
0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f,
0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x6c, 0x65,
0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54,
0x61, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x51, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x53, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x51, 0x0a, 0x04, 0x67,
0x72, 0x70, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x47, 0x72, 0x70,
0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x12, 0x72,
0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63,
0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 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, 0x2e, 0x45, 0x78, 0x74, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52,
0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x64, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61, 0x63, 0x65,
0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5f,
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, 0x2e,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x44,
0x79, 0x6e, 0x61, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x48,
0x00, 0x52, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x61, 0x6d, 0x70,
0x6c, 0x65, 0x72, 0x1a, 0xa0, 0x03, 0x0a, 0x10, 0x44, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61, 0x63,
0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12,
0x31, 0x0a, 0x15, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x5f, 0x70, 0x65,
0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12,
0x72, 0x6f, 0x6f, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75,
0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6c, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x74, 0x72,
0x61, 0x63, 0x65, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x74,
0x72, 0x61, 0x63, 0x65, 0x41, 0x70, 0x69, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x1a, 0x8f, 0x01, 0x0a, 0x0c, 0x44, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61,
0x63, 0x65, 0x41, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70,
0x6f, 0x72, 0x74, 0x12, 0x51, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x3d, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69,
0x6e, 0x67, 0x1a, 0xae, 0x01, 0x0a, 0x0b, 0x48, 0x74, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x56, 0x0a, 0x07, 0x68,
0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 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, 0x2e, 0x45, 0x78,
0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e,
0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64,
0x65, 0x72, 0x73, 0x1a, 0x36, 0x0a, 0x0a, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65,
0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xd0, 0x02, 0x0a, 0x11,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72,
0x73, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5f, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x76,
0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x7b, 0x0a, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61,
0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x44, 0x79,
0x6e, 0x61, 0x74, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44,
0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61,
0x63, 0x65, 0x1a, 0x1d, 0x0a, 0x1b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x1a, 0x1b, 0x0a, 0x19, 0x44, 0x79, 0x6e, 0x61, 0x74, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xab,
0x01, 0x0a, 0x0b, 0x47, 0x72, 0x70, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x33,
0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x12, 0x67, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 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, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x69, 0x6e, 0x69,
0x74, 0x69, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xf7, 0x03, 0x0a,
0x11, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x12, 0x50, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69,
0x73, 0x74, 0x69, 0x6f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76,
0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x52, 0x65, 0x66, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f,
0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x55, 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,
0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xc2, 0x01, 0x0a, 0x11, 0x55, 0x6e, 0x69, 0x71,
0x75, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x66, 0x12, 0x41, 0x0a,
0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x25, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72,
0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69,
0x64, 0x65, 0x72, 0x52, 0x65, 0x66, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x12, 0x6a, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x4e, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52,
0x65, 0x66, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x48, 0x0a, 0x0a,
0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
0x65, 0x72, 0x1a, 0x6d, 0x0a, 0x10, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67,
0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
0x67, 0x1a, 0xef, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x61, 0x74, 0x68, 0x4e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a, 0x0d,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x48, 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, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x61, 0x74, 0x68, 0x4e, 0x6f,
0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x72, 0x6d,
0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x6e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x11,
0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08,
0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45,
0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x53,
0x48, 0x45, 0x53, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f,
0x41, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x45,
0x53, 0x10, 0x04, 0x1a, 0xf1, 0x01, 0x0a, 0x09, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x67, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x35, 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,
0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x4c, 0x53, 0x50, 0x72,
0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x63,
0x64, 0x68, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0a, 0x65, 0x63, 0x64, 0x68, 0x43, 0x75, 0x72, 0x76, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63,
0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73,
0x22, 0x35, 0x0a, 0x0b, 0x54, 0x4c, 0x53, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12,
0x0c, 0x0a, 0x08, 0x54, 0x4c, 0x53, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x0b, 0x0a,
0x07, 0x54, 0x4c, 0x53, 0x56, 0x31, 0x5f, 0x32, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4c,
0x53, 0x56, 0x31, 0x5f, 0x33, 0x10, 0x02, 0x22, 0x4a, 0x0a, 0x15, 0x49, 0x6e, 0x67, 0x72, 0x65,
0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65,
0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x43,
0x54, 0x10, 0x03, 0x22, 0x26, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4d,
0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x01, 0x22, 0x27, 0x0a, 0x11, 0x41,
0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53,
0x4f, 0x4e, 0x10, 0x01, 0x22, 0x32, 0x0a, 0x0f, 0x48, 0x32, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64,
0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x5f, 0x4e, 0x4f,
0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55,
0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x31, 0x10, 0x32, 0x4a, 0x04,
0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04,
0x4a, 0x04, 0x08, 0x30, 0x10, 0x31, 0x4a, 0x04, 0x08, 0x19, 0x10, 0x1a, 0x4a, 0x04, 0x08, 0x1e,
0x10, 0x1f, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04,
0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13,
0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x14, 0x10, 0x15, 0x4a, 0x04, 0x08, 0x15,
0x10, 0x16, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x4a, 0x04, 0x08, 0x1d, 0x10, 0x1e, 0x4a, 0x04,
0x08, 0x35, 0x10, 0x36, 0x4a, 0x04, 0x08, 0x25, 0x10, 0x26, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27,
0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x63,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x6d, 0x69, 0x78, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65,
0x63, 0x6b, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x13, 0x6d, 0x69, 0x78, 0x65, 0x72,
0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x15,
0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x63,
0x68, 0x65, 0x63, 0x6b, 0x73, 0x52, 0x1a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d,
0x69, 0x78, 0x65, 0x72, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
0x73, 0x52, 0x16, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
0x66, 0x61, 0x69, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x52, 0x25, 0x73, 0x69, 0x64, 0x65, 0x63,
0x61, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f,
0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79,
0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x11, 0x72,
0x64, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79,
0x52, 0x0d, 0x6d, 0x69, 0x78, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52,
0x1f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73,
0x69, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b,
0x52, 0x0c, 0x73, 0x64, 0x73, 0x5f, 0x75, 0x64, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x52, 0x11,
0x73, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x64, 0x65, 0x6c, 0x61,
0x79, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x64, 0x73, 0x5f, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x73, 0x64, 0x73, 0x5f, 0x75,
0x73, 0x65, 0x5f, 0x6b, 0x38, 0x73, 0x5f, 0x73, 0x61, 0x5f, 0x6a, 0x77, 0x74, 0x52, 0x1a, 0x74,
0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x72, 0x61, 0x69, 0x6e,
0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62,
0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x52,
0x18, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x61,
0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6f, 0x72,
0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x22, 0x81, 0x02, 0x0a, 0x0d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e,
0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61,
0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63,
0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61,
0x74, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x59, 0x0a, 0x10, 0x6d, 0x61, 0x74,
0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53,
0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x61, 0x62,
0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x18, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16,
0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
0x68, 0x61, 0x33, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x4c, 0x53, 0x53, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0b, 0x74, 0x6c, 0x73, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
0x67, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64,
0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e,
0x32, 0x1d, 0x2e, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31,
0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
0x13, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x0b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65,
0x73, 0x2a, 0x20, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a,
0x10, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52,
0x59, 0x10, 0x00, 0x42, 0x1c, 0x5a, 0x1a, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x2e, 0x69, 0x6f, 0x2f,
0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_mesh_v1alpha1_config_proto_rawDescOnce sync.Once
file_mesh_v1alpha1_config_proto_rawDescData = file_mesh_v1alpha1_config_proto_rawDesc
)
func file_mesh_v1alpha1_config_proto_rawDescGZIP() []byte {
file_mesh_v1alpha1_config_proto_rawDescOnce.Do(func() {
file_mesh_v1alpha1_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_mesh_v1alpha1_config_proto_rawDescData)
})
return file_mesh_v1alpha1_config_proto_rawDescData
}
var file_mesh_v1alpha1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_mesh_v1alpha1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
var file_mesh_v1alpha1_config_proto_goTypes = []any{
(Resource)(0), // 0: istio.mesh.v1alpha1.Resource
(MeshConfig_IngressControllerMode)(0), // 1: istio.mesh.v1alpha1.MeshConfig.IngressControllerMode
(MeshConfig_AuthPolicy)(0), // 2: istio.mesh.v1alpha1.MeshConfig.AuthPolicy
(MeshConfig_AccessLogEncoding)(0), // 3: istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding
(MeshConfig_H2UpgradePolicy)(0), // 4: istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicy
(MeshConfig_OutboundTrafficPolicy_Mode)(0), // 5: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode
(MeshConfig_InboundTrafficPolicy_Mode)(0), // 6: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.Mode
(MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider_TraceContext)(0), // 7: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
(MeshConfig_ProxyPathNormalization_NormalizationType)(0), // 8: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
(MeshConfig_TLSConfig_TLSProtocol)(0), // 9: istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
(*MeshConfig)(nil), // 10: istio.mesh.v1alpha1.MeshConfig
(*LabelSelector)(nil), // 11: istio.mesh.v1alpha1.LabelSelector
(*LabelSelectorRequirement)(nil), // 12: istio.mesh.v1alpha1.LabelSelectorRequirement
(*ConfigSource)(nil), // 13: istio.mesh.v1alpha1.ConfigSource
(*Certificate)(nil), // 14: istio.mesh.v1alpha1.Certificate
(*MeshConfig_OutboundTrafficPolicy)(nil), // 15: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
(*MeshConfig_InboundTrafficPolicy)(nil), // 16: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
(*MeshConfig_CertificateData)(nil), // 17: istio.mesh.v1alpha1.MeshConfig.CertificateData
(*MeshConfig_ServiceSettings)(nil), // 18: istio.mesh.v1alpha1.MeshConfig.ServiceSettings
(*MeshConfig_CA)(nil), // 19: istio.mesh.v1alpha1.MeshConfig.CA
(*MeshConfig_ExtensionProvider)(nil), // 20: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
(*MeshConfig_DefaultProviders)(nil), // 21: istio.mesh.v1alpha1.MeshConfig.DefaultProviders
(*MeshConfig_ProxyPathNormalization)(nil), // 22: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
(*MeshConfig_TLSConfig)(nil), // 23: istio.mesh.v1alpha1.MeshConfig.TLSConfig
(*MeshConfig_ServiceSettings_Settings)(nil), // 24: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationRequestBody)(nil), // 25: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationHttpProvider)(nil), // 26: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
(*MeshConfig_ExtensionProvider_EnvoyExternalAuthorizationGrpcProvider)(nil), // 27: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
(*MeshConfig_ExtensionProvider_ZipkinTracingProvider)(nil), // 28: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
(*MeshConfig_ExtensionProvider_LightstepTracingProvider)(nil), // 29: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
(*MeshConfig_ExtensionProvider_DatadogTracingProvider)(nil), // 30: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
(*MeshConfig_ExtensionProvider_SkyWalkingTracingProvider)(nil), // 31: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
(*MeshConfig_ExtensionProvider_StackdriverProvider)(nil), // 32: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
(*MeshConfig_ExtensionProvider_OpenCensusAgentTracingProvider)(nil), // 33: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
(*MeshConfig_ExtensionProvider_PrometheusMetricsProvider)(nil), // 34: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider)(nil), // 35: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
(*MeshConfig_ExtensionProvider_EnvoyHttpGrpcV3LogProvider)(nil), // 36: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyTcpGrpcV3LogProvider)(nil), // 37: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider)(nil), // 38: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider)(nil), // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
(*MeshConfig_ExtensionProvider_HttpService)(nil), // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
(*MeshConfig_ExtensionProvider_HttpHeader)(nil), // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
(*MeshConfig_ExtensionProvider_ResourceDetectors)(nil), // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
(*MeshConfig_ExtensionProvider_GrpcService)(nil), // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
(*MeshConfig_ExtensionProvider_AggregateProvider)(nil), // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider
nil, // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
(*MeshConfig_ExtensionProvider_StackdriverProvider_Logging)(nil), // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
nil, // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat)(nil), // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_EnvoyOpenTelemetryLogProvider_LogFormat)(nil), // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler)(nil), // 50: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_DynatraceApi)(nil), // 51: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
(*MeshConfig_ExtensionProvider_ResourceDetectors_EnvironmentResourceDetector)(nil), // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
(*MeshConfig_ExtensionProvider_ResourceDetectors_DynatraceResourceDetector)(nil), // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
(*MeshConfig_ExtensionProvider_AggregateProvider_UniqueProviderRef)(nil), // 54: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.UniqueProviderRef
(*MeshConfig_ExtensionProvider_AggregateProvider_ClusterRef)(nil), // 55: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.ClusterRef
nil, // 56: istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
(*duration.Duration)(nil), // 57: google.protobuf.Duration
(*v1alpha3.ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 58: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
(*ProxyConfig)(nil), // 59: istio.mesh.v1alpha1.ProxyConfig
(*wrappers.BoolValue)(nil), // 60: google.protobuf.BoolValue
(*v1alpha3.LocalityLoadBalancerSetting)(nil), // 61: istio.networking.v1alpha3.LocalityLoadBalancerSetting
(*v1alpha3.HTTPRetry)(nil), // 62: istio.networking.v1alpha3.HTTPRetry
(*v1alpha3.ClientTLSSettings)(nil), // 63: istio.networking.v1alpha3.ClientTLSSettings
(*wrappers.Int64Value)(nil), // 64: google.protobuf.Int64Value
(*v1alpha1.ProviderRef)(nil), // 65: istio.telemetry.v1alpha1.ProviderRef
(*_struct.Struct)(nil), // 66: google.protobuf.Struct
}
var file_mesh_v1alpha1_config_proto_depIdxs = []int32{
57, // 0: istio.mesh.v1alpha1.MeshConfig.connect_timeout:type_name -> google.protobuf.Duration
57, // 1: istio.mesh.v1alpha1.MeshConfig.protocol_detection_timeout:type_name -> google.protobuf.Duration
58, // 2: istio.mesh.v1alpha1.MeshConfig.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
1, // 3: istio.mesh.v1alpha1.MeshConfig.ingress_controller_mode:type_name -> istio.mesh.v1alpha1.MeshConfig.IngressControllerMode
3, // 4: istio.mesh.v1alpha1.MeshConfig.access_log_encoding:type_name -> istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding
59, // 5: istio.mesh.v1alpha1.MeshConfig.default_config:type_name -> istio.mesh.v1alpha1.ProxyConfig
15, // 6: istio.mesh.v1alpha1.MeshConfig.outbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy
16, // 7: istio.mesh.v1alpha1.MeshConfig.inbound_traffic_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy
13, // 8: istio.mesh.v1alpha1.MeshConfig.config_sources:type_name -> istio.mesh.v1alpha1.ConfigSource
60, // 9: istio.mesh.v1alpha1.MeshConfig.enable_auto_mtls:type_name -> google.protobuf.BoolValue
17, // 10: istio.mesh.v1alpha1.MeshConfig.ca_certificates:type_name -> istio.mesh.v1alpha1.MeshConfig.CertificateData
61, // 11: istio.mesh.v1alpha1.MeshConfig.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
57, // 12: istio.mesh.v1alpha1.MeshConfig.dns_refresh_rate:type_name -> google.protobuf.Duration
4, // 13: istio.mesh.v1alpha1.MeshConfig.h2_upgrade_policy:type_name -> istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicy
14, // 14: istio.mesh.v1alpha1.MeshConfig.certificates:type_name -> istio.mesh.v1alpha1.Certificate
18, // 15: istio.mesh.v1alpha1.MeshConfig.service_settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings
60, // 16: istio.mesh.v1alpha1.MeshConfig.enable_prometheus_merge:type_name -> google.protobuf.BoolValue
60, // 17: istio.mesh.v1alpha1.MeshConfig.verify_certificate_at_client:type_name -> google.protobuf.BoolValue
19, // 18: istio.mesh.v1alpha1.MeshConfig.ca:type_name -> istio.mesh.v1alpha1.MeshConfig.CA
20, // 19: istio.mesh.v1alpha1.MeshConfig.extension_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider
21, // 20: istio.mesh.v1alpha1.MeshConfig.default_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.DefaultProviders
11, // 21: istio.mesh.v1alpha1.MeshConfig.discovery_selectors:type_name -> istio.mesh.v1alpha1.LabelSelector
22, // 22: istio.mesh.v1alpha1.MeshConfig.path_normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization
62, // 23: istio.mesh.v1alpha1.MeshConfig.default_http_retry_policy:type_name -> istio.networking.v1alpha3.HTTPRetry
23, // 24: istio.mesh.v1alpha1.MeshConfig.mesh_mTLS:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
23, // 25: istio.mesh.v1alpha1.MeshConfig.tls_defaults:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig
56, // 26: istio.mesh.v1alpha1.LabelSelector.matchLabels:type_name -> istio.mesh.v1alpha1.LabelSelector.MatchLabelsEntry
12, // 27: istio.mesh.v1alpha1.LabelSelector.matchExpressions:type_name -> istio.mesh.v1alpha1.LabelSelectorRequirement
63, // 28: istio.mesh.v1alpha1.ConfigSource.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
0, // 29: istio.mesh.v1alpha1.ConfigSource.subscribed_resources:type_name -> istio.mesh.v1alpha1.Resource
5, // 30: istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.mode:type_name -> istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode
6, // 31: istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.mode:type_name -> istio.mesh.v1alpha1.MeshConfig.InboundTrafficPolicy.Mode
24, // 32: istio.mesh.v1alpha1.MeshConfig.ServiceSettings.settings:type_name -> istio.mesh.v1alpha1.MeshConfig.ServiceSettings.Settings
63, // 33: istio.mesh.v1alpha1.MeshConfig.CA.tls_settings:type_name -> istio.networking.v1alpha3.ClientTLSSettings
57, // 34: istio.mesh.v1alpha1.MeshConfig.CA.request_timeout:type_name -> google.protobuf.Duration
26, // 35: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider
27, // 36: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_ext_authz_grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider
28, // 37: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.zipkin:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider
29, // 38: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.lightstep:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider
30, // 39: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.datadog:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider
32, // 40: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.stackdriver:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider
33, // 41: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opencensus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider
31, // 42: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.skywalking:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.SkyWalkingTracingProvider
39, // 43: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.opentelemetry:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider
34, // 44: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.prometheus:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.PrometheusMetricsProvider
35, // 45: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_file_access_log:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider
36, // 46: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_http_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider
37, // 47: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_tcp_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider
38, // 48: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.envoy_otel_als:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider
44, // 49: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.aggregate:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider
8, // 50: istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.normalization:type_name -> istio.mesh.v1alpha1.MeshConfig.ProxyPathNormalization.NormalizationType
9, // 51: istio.mesh.v1alpha1.MeshConfig.TLSConfig.min_protocol_version:type_name -> istio.mesh.v1alpha1.MeshConfig.TLSConfig.TLSProtocol
57, // 52: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.timeout:type_name -> google.protobuf.Duration
45, // 53: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_additional_headers_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.IncludeAdditionalHeadersInCheckEntry
25, // 54: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
57, // 55: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.timeout:type_name -> google.protobuf.Duration
25, // 56: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider.include_request_body_in_check:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody
64, // 57: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_attributes:type_name -> google.protobuf.Int64Value
64, // 58: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_annotations:type_name -> google.protobuf.Int64Value
64, // 59: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.max_number_of_message_events:type_name -> google.protobuf.Int64Value
46, // 60: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.logging:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging
7, // 61: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.context:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext
48, // 62: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat
49, // 63: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.log_format:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat
40, // 64: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
43, // 65: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.grpc:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService
42, // 66: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.resource_detectors:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors
50, // 67: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.dynatrace_sampler:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler
57, // 68: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.timeout:type_name -> google.protobuf.Duration
41, // 69: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService.headers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
52, // 70: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.environment:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector
53, // 71: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.dynatrace:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector
57, // 72: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.timeout:type_name -> google.protobuf.Duration
41, // 73: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.GrpcService.initial_metadata:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpHeader
65, // 74: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.default_provider:type_name -> istio.telemetry.v1alpha1.ProviderRef
54, // 75: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.unique_providers:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.UniqueProviderRef
47, // 76: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.labels:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider.Logging.LabelsEntry
66, // 77: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
66, // 78: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat.labels:type_name -> google.protobuf.Struct
51, // 79: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.http_service:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi
40, // 80: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi.http:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.HttpService
65, // 81: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.UniqueProviderRef.provider:type_name -> istio.telemetry.v1alpha1.ProviderRef
55, // 82: istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.UniqueProviderRef.clusters:type_name -> istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.AggregateProvider.ClusterRef
83, // [83:83] is the sub-list for method output_type
83, // [83:83] is the sub-list for method input_type
83, // [83:83] is the sub-list for extension type_name
83, // [83:83] is the sub-list for extension extendee
0, // [0:83] is the sub-list for field type_name
}
func init() { file_mesh_v1alpha1_config_proto_init() }
func file_mesh_v1alpha1_config_proto_init() {
if File_mesh_v1alpha1_config_proto != nil {
return
}
file_mesh_v1alpha1_proxy_proto_init()
file_mesh_v1alpha1_config_proto_msgTypes[7].OneofWrappers = []any{
(*MeshConfig_CertificateData_Pem)(nil),
(*MeshConfig_CertificateData_SpiffeBundleUrl)(nil),
}
file_mesh_v1alpha1_config_proto_msgTypes[10].OneofWrappers = []any{
(*MeshConfig_ExtensionProvider_EnvoyExtAuthzHttp)(nil),
(*MeshConfig_ExtensionProvider_EnvoyExtAuthzGrpc)(nil),
(*MeshConfig_ExtensionProvider_Zipkin)(nil),
(*MeshConfig_ExtensionProvider_Lightstep)(nil),
(*MeshConfig_ExtensionProvider_Datadog)(nil),
(*MeshConfig_ExtensionProvider_Stackdriver)(nil),
(*MeshConfig_ExtensionProvider_Opencensus)(nil),
(*MeshConfig_ExtensionProvider_Skywalking)(nil),
(*MeshConfig_ExtensionProvider_Opentelemetry)(nil),
(*MeshConfig_ExtensionProvider_Prometheus)(nil),
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLog)(nil),
(*MeshConfig_ExtensionProvider_EnvoyHttpAls)(nil),
(*MeshConfig_ExtensionProvider_EnvoyTcpAls)(nil),
(*MeshConfig_ExtensionProvider_EnvoyOtelAls)(nil),
(*MeshConfig_ExtensionProvider_Aggregate)(nil),
}
file_mesh_v1alpha1_config_proto_msgTypes[29].OneofWrappers = []any{
(*MeshConfig_ExtensionProvider_OpenTelemetryTracingProvider_DynatraceSampler_)(nil),
}
file_mesh_v1alpha1_config_proto_msgTypes[38].OneofWrappers = []any{
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Text)(nil),
(*MeshConfig_ExtensionProvider_EnvoyFileAccessLogProvider_LogFormat_Labels)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mesh_v1alpha1_config_proto_rawDesc,
NumEnums: 10,
NumMessages: 47,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mesh_v1alpha1_config_proto_goTypes,
DependencyIndexes: file_mesh_v1alpha1_config_proto_depIdxs,
EnumInfos: file_mesh_v1alpha1_config_proto_enumTypes,
MessageInfos: file_mesh_v1alpha1_config_proto_msgTypes,
}.Build()
File_mesh_v1alpha1_config_proto = out.File
file_mesh_v1alpha1_config_proto_rawDesc = nil
file_mesh_v1alpha1_config_proto_goTypes = nil
file_mesh_v1alpha1_config_proto_depIdxs = nil
}